The types:
// categorical void unit // addressing byte size address offset // logic bool // inexact integers tiny short int long vlong utiny ushort uint ulong uvlong // exact integers int8 int16 int32 int64 uint8 uint16 uint32 uint64 // floating point float double ldouble // character char uchar // string string ustringare defined in the standard library at the top level. Except for the addressing types, there is module containing the functions acting on the type for each type, with the same name except that the first letter is upper case: thus module Long contains all the operations on type long. Bool, Int, Double, Char and String are opened in the library so the operators for the corresponding types are available at the top level. Don't expect "1L + 1L" to work unless you first "open Long;" in your program!