Module Goals.List


module List: sig .. end

val forall : ?select:('a list -> 'a * 'a list) -> ('a -> Goals.t) -> 'a list -> Goals.t
forall ?select g [x1;x2;...;xn] is g x1 &&~ g x2 &&~ ... &&~ g xn, i.e. returns the conjunctive iteration of goal g on list a.
val exists : ?select:('a list -> 'a * 'a list) -> ('a -> Goals.t) -> 'a list -> Goals.t
exists ?select g [x1;x2;...;xn] is g x1 ||~ g x2 ||~ ... ||~ g xn, i.e. returns the disjunctive iteration of goal g on list a.
val member : Var.Fd.t -> int list -> Goals.t
member v l returns the disjunctive iteration of the instantiation of the variable v to the values in the integer list l. Defined by fun v l -> exists (fun x -> create (fun () -> Fd.unify v x)) l.
val labeling : Var.Fd.t list -> Goals.t
Standard labeling, i.e. conjunctive non-deterministic instantiation of a list of variables. Defined as forall indomain.