Domain variables may have attributes from other modules, as well as
blocked goals, attached to them. However, the CLPFD propagation phase
runs to completion before invoking handlers for such attributes and
resuming such blocked goals. This could mean in particular that upon
completion of the propagation phase, attribute handlers and blocked
goals for multiple variables are ready to execute. For details, see
verify_attributes/3 hook at lib-atts.
fd_purge(X) (see Forgetting Constraints) does not affect
attributes of other modules, or blocked goals.
Please note: the garbage collector will preserve all variables with attached attributes or blocked goals.