Module Univ

module Univ: sig .. end
An extensible "universal" variant type.

Every type id (Type_equal.Id.t) corresponds to one branch of the variant type.


type t 
val type_id_name : t -> string
val create : 'a Type_equal.Id.t -> 'a -> t
val does_match : t -> 'a Type_equal.Id.t -> bool
does_match t id returns true iff t was created by create id v.
val match_ : t -> 'a Type_equal.Id.t -> 'a 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
val sexp_of_t : t -> Sexplib.Sexp.t

does_match t id returns true iff t was created by create id v.

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.