sig
  type t
  val sprint : Matcher.Subst.t -> string
  val instantiate : Matcher.Subst.t -> Matcher.Terms.t -> Matcher.Terms.t
  val to_list : Matcher.Subst.t -> (Matcher.var * Matcher.Terms.t) list
end