type 'a ttype 'a tis the type of objects, where each object is part of an equivalence class that is associated with a single value of type'a.
include Base.Invariant.S1 with type 'a t := 'a t
val invariant : ('a -> unit) -> 'a t -> unit
val create : 'a -> 'a tcreate vreturns a new object in its own equivalence class that has valuev.
val get : 'a t -> 'aget treturns the value of the class oft.
val set : 'a t -> 'a -> Base.Unit.tset t vsets the value of the class ofttov.
val same_class : 'a t -> 'a t -> Base.Bool.tsame_class t1 t2returns true ifft1andt2are in the same equivalence class.
val union : 'a t -> 'a t -> Base.Unit.tunion t1 t2makes the class oft1and the class oft2be the same (if they are already equal, then nothing changes). The value of the combined class is the value oft1ort2; it is unspecified which. Afterunion t1 t2, it will always be the case thatsame_class t1 t2.
module Private : sig ... end