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