A type constructor is applied to a type or another type constructor, depending on its kind, similarly to how functions are applied to arguments at the term level. C T
applies the type constructor C
to the type T
. Type application associates to the left, so the type A B C
is the same as the type (A B) C
.