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 karrow : ('a * kind) list -> 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 -> string
print and print_kind convert a kind to a textual representation.
val print_kind : kind -> PPrint.document
val equal : kind -> kind -> bool
equal tests the equality of two kinds.