module type Solver = sig end
module I: ItemEq
Structure representing the items.
module D: Domain
Structure representing the domain.
type item
Type of the items.
type domain
Type of the domain.
type assign = item -> domain
Type of an assignment.
type system = item -> assign -> domain
Type of a system of equations.
type equation = item * (assign -> domain)
Type of an equation.
val solve : system ->
item list -> (item, domain) Hashtbl.t
solve s l
solves the given system s
of equations at
least for the variables given by l
.