The delay of a goal G(X) on a variable X, creates a circular dependency, modelled by a compound '$ATTR'/2. To access and modify such attributed variables we have introduced the utility predicates deref/2 and bind/2 which are usually not needed in a constraint logic programming implementation. We do not implement the full constraint logic programming schema. For example the bind/2 predicate is not able to alias variables.
The following attrvars predicates are provided: