sig
type 'a var = 'a Var.t
type (+'ty, +'a) t
val empty : ('a, 'b) Var.Subst.t
val is_empty : ('a, 'b) Var.Subst.t -> bool
val size : ('a, 'b) Var.Subst.t -> int
val singleton : 'ty Var.Subst.var -> 'a -> ('ty, 'a) Var.Subst.t
val add :
subst:('ty, 'a) Var.Subst.t ->
'ty Var.Subst.var -> 'a -> ('ty, 'a) Var.Subst.t
val add_list :
subst:('ty, 'a) Var.Subst.t ->
'ty Var.Subst.var list -> 'a list -> ('ty, 'a) Var.Subst.t
val concat :
('ty, 'a) Var.Subst.t ->
into:('ty, 'a) Var.Subst.t -> ('ty, 'a) Var.Subst.t
val of_list : 'ty Var.Subst.var list -> 'a list -> ('ty, 'a) Var.Subst.t
val remove :
subst:('ty, 'a) Var.Subst.t -> 'ty Var.Subst.var -> ('ty, 'a) Var.Subst.t
val deref_rec :
subst:('ty, 'ty Var.Subst.var) Var.Subst.t ->
'ty Var.Subst.var -> 'ty Var.Subst.var
val find_deref_rec :
subst:('ty, 'ty Var.Subst.var) Var.Subst.t ->
'ty Var.Subst.var -> 'ty Var.Subst.var option
val rename_var :
('a, 'a Var.Subst.var) Var.Subst.t ->
'a Var.Subst.var -> ('a, 'a Var.Subst.var) Var.Subst.t * 'a Var.Subst.var
val mem : subst:('ty, 'a) Var.Subst.t -> 'ty Var.Subst.var -> bool
val find : subst:('ty, 'a) Var.Subst.t -> 'ty Var.Subst.var -> 'a option
val find_exn : subst:('ty, 'a) Var.Subst.t -> 'ty Var.Subst.var -> 'a
val find_or :
subst:('ty, 'a) Var.Subst.t -> default:'a -> 'ty Var.Subst.var -> 'a
val map : f:('a -> 'b) -> ('ty, 'a) Var.Subst.t -> ('ty, 'b) Var.Subst.t
val to_list : ('ty, 'a) Var.Subst.t -> ('ty Var.Subst.var * 'a) list
val to_seq : ('ty, 'a) Var.Subst.t -> ('ty Var.Subst.var * 'a) Sequence.t
val print : 'a CCFormat.printer -> ('b, 'a) Var.Subst.t CCFormat.printer
end