SmallIntegers is the kindOf: Integers in Smalltalk. They typically are optimized in any decent Smalltalk implementation. SmallIntegers are limited in range (as opposite to Integers, whose range is only limited by memory available).
Typical optimization is to present SmallIntegers in object pointer e.g. some pointers to objects can be recognized as being SmallIntegers and treated with low level host system opcodes (addition, multiplication etc). The good thing about SmallIntegers is their dynamic conversion to Integers when their value goes out of range. The good thing about Smalltalk is that Integers never overflow. :) -- PavelPerikov.