sig
type id = ID.t
type 'a t = private { id : MetaVar.id; mutable deref : 'a option; }
val make : name:string -> 'a MetaVar.t
val id : 'a MetaVar.t -> MetaVar.id
val equal : 'a MetaVar.t -> 'a MetaVar.t -> bool
val deref : 'a MetaVar.t -> 'a option
val can_bind : 'a MetaVar.t -> bool
val bound : 'a MetaVar.t -> bool
val bind : var:'a MetaVar.t -> 'a -> unit
val rebind : var:'a MetaVar.t -> 'a -> unit
val update : f:('a -> 'b) -> 'a MetaVar.t -> 'b MetaVar.t
val print : Format.formatter -> 'a MetaVar.t -> unit
val to_string : 'a MetaVar.t -> string
end