Enum.Make
Creates a new enumerated type.
declare ?package name
declares a new element of the enumeration.
Fails if the name is already declared.
val declare : ?package:string -> string -> t
declare ?package name
declares a new element of the enumeration.
Fails if the name is already declared.
val read : ?package:string -> string -> t
read ?package name
reads the element from its textual representation.
Fails if the name doesn't represent a previously declared element of the enumeration.
If name
is unqualified then package
is used as the package name. The package
itself defaults to "user"
.
See also of_string s
from the Stringable
interface which is equal to read s
val unknown : t
unknown
is the placeholder for unknown element.
val is_unknown : t -> bool
is_unknown t
is true if t
is unknown
.
domain
the type class implementing the domain structure.
Each enumeration type forms a flat domain with the unknown
element at the bottom.
val persistent : t persistent
persistent
the persistance type class.
The enumeration types are persistent and are derived from the KB.Name.persistent
type class, i.e., they are represented as 63-bit numbers.
val hash : t -> int
the hash value of the enum
val members : unit -> t list
members ()
the list of all members of the enumeration type.
include Base.Comparable.S with type t := t
val comparator : (t, comparator_witness) Base__.Comparator.comparator
include Core_kernel.Binable.S with type t := t
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_t : t Bin_prot.Type_class.t
include Core_kernel.Pretty_printer.S with type t := t
val pp : Base__.Formatter.t -> t -> unit