Yes. In general we should put in a checker that insists what is added to, and taken from the infoset is only the set of specific types we want.
For example, I found that hexBinary was being put into the infoset as a string of hex-digit characters, not as an Array[Byte]. At least for some of the forms of hexBinary. This is now only Array[Byte] (I think)
We have to decide what the set of things is. For example, I have been trying to use java.lang.Number and subtypes thereof, but both java.lang.BigInteger and scala.BigInt are subtypes of java.lang.Number. Similarly decimal. For calendars are we using the wrapped DFDLCalendar, or raw underlying one?