module Make: functor (Item : ItemEq) -> functor (Domain : Domain) -> sig end
Functor building an implementation of the Solve structure given a
variable set and a domain.
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
.