module type ATTR =sig..end
Signature of the Attribute of a Domain Variable. A module
endowed with this type is required to build finite domain variables.
Domain and SetDomain are suitable domain modules.
type t
Type of attributes.
type domain
Type of domains stored in attributes.
type elt
Type of element of domains.
type event
Type of events (modifications on variables) on which to suspend.
val dom : t -> domaindom a returns the integer domain of an attribute.
val on_refine : eventEvent occuring when a variable is changed, i.e. its domain modified.
val on_subst : eventEvent occuring when a variable is instantiated.
val on_min : event
val on_max : eventEvent occuring when the lower (resp. upper) bound of a variable decreases.
val fprint : Stdlib.out_channel -> t -> unitfprint chan a prints attribute a on channel chan.
val min : t -> elt
val max : t -> eltmin a (resp. max a) returns the lower (resp. upper) bound of a.
val member : t -> elt -> boolmember a n tests if n belongs to dom a.
val id : t -> intid a returns a unique integer identifying the attribute a.
val constraints_number : t -> intconstraints_number a returns the number of different constraints
attached to a.
val size : t -> intsize a returns the number of integer values in the domain of a.