Haven\'t seen this \"feature\" anywhere else. I know that the 32nd bit is used for garbage collection. But why is it that way only for ints and not for the other basic types
It's not exactly "used for garbage collection." It's used for internally distinguishing between a pointer and an unboxed integer.