Just as values are built using data constructors, types are built fromtype constructors.Nullary type constructors likeNat
,Int
,Float
are already types, but other type constructors likeList
and->
(seebuilt-in type constructors)take type parameters in order to yield types.List
is a unary type constructor, so it takes one type (the type of the list elements), and->
is a binary type constructor.List Nat
is a type andNat -> Int
is a type.