The equality and comparison predicates on gnu.math.UByte, gnu.math.UInt and gnu.math.ULong require that they are compared with objects of the same type. This results in situations, where numbers with identical print representations are not equal (in the sense of both "equal?" and "=") to each other, and where the "less than" operator behaves counter-intuitively: > (define b0 (gnu.math.UByte:valueOf (as byte 241))) > (= b0 241) #f > (< b0 242) #f Is there any particular reason for such behavior?