The Java programming language defines types and divides them
into two categories,
the primitive types
double, and the reference types,
which are class types, interface types, array types, and the null type.
The types of the XL programming language are those types of the Java
programming language, plus intersection types.
This specification sometimes refers to type affixes.
They are used to form names with a common prefix or suffix
for different types. The type affix of a type
is defined as follows:
T is a primitive type,
then the type affix is the name of that type, but having the first
letter capitalized. E.g, the type affix of the type
T is a reference type.
Then its type affix is
In addition, for each type a type letter is defined. The type letter is
a for reference types,
i for the other types.