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