sig
module I : ItemEq
module D : Domain
type item
and domain
and assign = Solve.Solver.item -> Solve.Solver.domain
and system =
Solve.Solver.item -> Solve.Solver.assign -> Solve.Solver.domain
and equation =
Solve.Solver.item * (Solve.Solver.assign -> Solve.Solver.domain)
val solve :
Solve.Solver.system ->
Solve.Solver.item list ->
(Solve.Solver.item, Solve.Solver.domain) Hashtbl.t
end