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 constructorC
to the typeT
.Type application associates to the left, so the typeA B C
is the same as the type(A B) C
.