The following complex types have been identified.

All complex types can be composed from Any other types even from themselves by using those and the operators.


T, U, ...; are placeholders for any types, those MUST be specifically declared on usage

[T]ListList of elements with type T eachList
{N::T}AttrSetAttrSet where member N references value of type TAttrSet
T->ULambdaA function that takes a single argument of type T and returns a value of type Ulambda

More details how to use complex types in the corresponding chapters