An extensible "universal" variant type.
Every type id (Type_equal.Id.t
) corresponds to one branch of the variant type.
include sig ... end
val sexp_of_t : t ‑> Sexplib.Sexp.t
val type_id_name : t ‑> Core_kernel__.Import.string
val type_id_uid : t ‑> Type_equal.Id.Uid.t
val create : 'a Type_equal.Id.t ‑> 'a ‑> t
val does_match : t ‑> _ Type_equal.Id.t ‑> Core_kernel__.Import.bool
does_match t id
returns true
iff t
was created by create id v
.
val match_ : t ‑> 'a Type_equal.Id.t ‑> 'a Core_kernel__.Import.option
match_ t id
returns Some v
if t
was created by create id v
, and returns None
otherwise.
match_exn t id
returns v
if t
was created by create id v
, and raises
otherwise.
val match_exn : t ‑> 'a Type_equal.Id.t ‑> 'a
module View : sig ... end