The type-system of MxL consists of the following types:
|Name||Super type||Description and Notes|
|Object||-||Each element of the data model is of type Object|
|String||Object||Each character sequence encapsulated in quotation marks is a value of type, e.g.
|Number||Object||Represents both integers and decimals, e.g.
|Date||Object||A date consisting of day, month, and year. Can be constructed by the date-function and the date’s string representation. The current date can be determined by the global identifier
|Map||Object||A dynamic collection of key-value-pairs. The constructor is written as
This type can be parameterized to determine its key and value types, e.g., the type
The Sequence-type can be parameterized to determine its inner structure, e.g., the type
|Entity||Structure||The type entity is the base type for all user-defined entity types (e.g., Project, Customer, etc.) An entity is represented as a complex object, i.e. an object with attributes and/or references to other objects.|
|Sequence||Object||A sequence of values, written as
The Sequence-type can be parameterized to determine the type of the sequence’s element, e.g. the type
|Function||Object||Because the language allows higher-order functions, there are objects of type Function. Anonymous functions can be written as
This type can be parameterized to determine the function’s signature (parameter types and return type), e.g. the type
|Type||Object||A meta-type objects representing types.|
The following picture shows an overview of all basic types of MxL in form of an UML class diagram: