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.