Module type Var.ATTR

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 -> domain
dom a returns the integer domain of an attribute.
val on_refine : event
Event occuring when a variable is changed, i.e. its domain modified.
val on_subst : event
Event occuring when a variable is instantiated.
val on_min : event
val on_max : event
Event occuring when the lower (resp. upper) bound of a variable decreases.
val fprint : Pervasives.out_channel -> t -> unit
fprint chan a prints attribute a on channel chan.
val min : t -> elt
val max : t -> elt
min a (resp. max a) returns the lower (resp. upper) bound of a.
val member : t -> elt -> bool
member a n tests if n belongs to dom a.
val id : t -> int
id a returns a unique integer identifying the attribute a.
val constraints_number : t -> int
constraints_number a returns the number of different constraints attached to a.
val size : t -> int
size a returns the number of integer values in the domain of a.