Module Kind

module Kind: sig .. end
as_arrow k transforms the kind k to an n-ary arrow kind. This is permitted for every kind k. A non-arrow kind is viewed as an arrow kind of arity 0.

type kind = 
| KTerm
| KType
| KPerm
| KArrow of kind * kind
val as_arrow : kind -> kind list * kind
as_arrow k transforms the kind k to an n-ary arrow kind. This is permitted for every kind k. A non-arrow kind is viewed as an arrow kind of arity 0.
val arity : kind -> int
arity k is the arity of k, viewed as an arrow kind.
val print_kind : kind -> PPrint.document
print_kind converts a kind to a textual representation.