Module Kind.Make

Parameters

Signature

val create : string -> t Machine.t

create name creates a kind with the given name. If a kind with the given name already exists, then returns that kind.

In other terms, create interns name in the Kind module and together with the name function establishes an isomorphism (bijection) between the set of names (strings) and the set of kinds.

val name : t -> string Machine.t

name k returns the symbolic name of the kind k

include Value with type t := t and type 'a m := 'a Machine.t

to_value x injects x into the value domain

of_value v project the value v to the abstract domain of t