An algebraic type constructor. Note that such constructors are used to build terms, and not types, e.g. consider the following:
type 'a list = Nil | Cons of 'a * 'a t, then
Cons are the constructors, while
list would be a type constant of arity 1 used to name the type.
val arity : t -> int * int
Returns the arity of a constructor.