Composite types

A composite type is the result of applying a type constructor to one or more type arguments.

For example, the composite type list<int32> is the result of applying the type constructor list<T> to the type argument T=int32.