P1.Enum
type t = enum
val equal : t -> t -> bool
Any notion of equality is allowed, as long as it is an equivalence relation, and that if a == b, then equal a b.
a == b
equal a b
val compare : t -> t -> int
compare is a total order, and should be compatible with equal.
compare
val hash : t -> int
hash requires that equal values have the same hash.
hash
val pretty : Stdlib.Format.formatter -> t -> unit