sig
type t = Var.t Var.Map.t
type var = Var.t
type var_container = Var.Set.t
val empty : t
val singleton : var -> var -> t
val of_list : (var * var) list -> t
val avoid : var_container -> var_container -> t
val pp : Format.formatter -> t -> unit
val to_string : t -> string
val apply : t -> var -> var
val partition : t -> t * t
val strip : t -> t
val mk_free_subst : var_container -> var_container -> t
val mk_ex_subst : var_container -> var_container -> t
end