sig
  module S : Solution.SET0
  module Infsys :
    sig
      type e = S.t
      val current : unit -> e
      val initialize : e -> unit
      val finalize : unit -> e
      val abstract : Term.t -> unit
      val merge : Fact.Equal.t -> unit
      val propagate : Fact.Equal.t -> unit
      val dismerge : Fact.Diseq.t -> unit
      val propagate_diseq : Fact.Diseq.t -> unit
      val branch : unit -> unit
      val normalize : unit -> unit
    end
end