An enumeration type defines an ordered set of distinct enumeration literals, for example a list of states or an alphabet of characters. Numeric types provide a means of performing exact or approximate numerical computations. Exact computations use integer types, which denote sets of consecutive integers. Approximate computations use either fixed point types, with absolute bounds on the error, or floating point types, with relative bounds on the error. The numeric types Integer, Float, and Duration are predefined.
Composite types allow definitions of structured objects with related components.
The composite types in the language include arrays and records. An array is an object with indexed components of the same type. A record is an object with named components of possibly different types. Task and protected types are also forms of composite types. Record, task, and protected types may have special components called discriminants which parameterize the type.