Shammer's Philosophy

My private adversaria

Both 0 and 1 are not integer on Lisp?

I found a wonder point on Lisp. Comparing a valuable type returned unexpected result. This unexpected thing happened when comparing the type of 1 and 2. I expected the type of them is equal. But this is not correct.

? (equal (type-of 1) (type-of 2))
NIL
? 

In detail, (type-of 0) and (type-of 1) return BIT. The result of type-of with other numbers bigger than 2 returns INTEGER.

? (type-of 0)
BIT
? (type-of 1)
BIT
? (type-of 2)
(INTEGER 0 1152921504606846975)
? (type-of 3)
(INTEGER 0 1152921504606846975)
? (type-of 65537)
(INTEGER 0 1152921504606846975)
? (type-of 1152921504606846975)
(INTEGER 0 1152921504606846975)
? (type-of 2000000000000000000)
(INTEGER 1152921504606846976)
?

Should be careful if comparing the type of valuables.