sig
  type eqs = t
  val iter : Solution.DEP.eqs -> (Fact.Equal.t -> unit) -> Term.t -> unit
  val fold :
    Solution.DEP.eqs -> (Fact.Equal.t -> '-> 'a) -> Term.t -> '-> 'a
  val for_all : Solution.DEP.eqs -> (Fact.Equal.t -> bool) -> Term.t -> bool
  val exists : Solution.DEP.eqs -> (Fact.Equal.t -> bool) -> Term.t -> bool
  val choose :
    Solution.DEP.eqs -> (Fact.Equal.t -> bool) -> Term.t -> Fact.Equal.t
end