The low-level primitives used to implement the suspension and waking of goals are also available to the user, and explicit suspension handling together with the attributed variable data type represents an extremely powerful tool for implementing constraint propagation and similar algorithms. These primitives may not be the easiest ones to use, but they are instrumental in providing higher-level constraints with the desired operational behaviours.