Module Var


module Var: sig .. end

Constrained, Attributed, Finite Domain Variables



module type ATTR = sig .. end
Signature of the Attribute of a Domain Variable.
module Attr: ATTR 
  with type domain = Domain.t and type elt = Domain.elt
module SetAttr: ATTR 
  with type domain = SetDomain.t and type elt = SetDomain.S.t

type ('a, 'b) concrete =
| Unk of 'a
| Val of 'b (*Concrete type of the value of finite domain variables.*)
module type BASICFD = sig .. end
Common variables module signature.
module type FD = sig .. end
Extended signature for finite domain variable (with added functions irrelevant to set variables).
module Fd: FD 
 with
     type domain = Domain.t
     and type elt = Domain.elt
     and type attr = Attr.t
     and type event = Attr.event
Concrete finite domain variable module.
module SetFd: BASICFD 
 with
     type domain = SetDomain.t
     and type elt = SetDomain.S.t
     and type attr = SetAttr.t
     and type event = SetAttr.event
Concrete integer set variable module.