1. at_lower(++N) 2. at_higher(++N) 3. at_absolute_priority(++N)
where N is an integer. This specifies the priority the CHR rules will be executed at if the specified constraint is the active constraint. at_lower and at_higher specifies that the priority is N lower or higher than the default CHR priority, and for at_absolute_priority, it is the actual priority.
Note that a predicate declared as a CHR constraint should not appear as a normal ECLiPSe predicate. Any such definition of the predicate in the user's program would be replaced by the CHR definition.
:- constraints leq/2. :- op(700, xfx, leq). X leq Y <=> \+nonground(X), \+nonground(Y) | X @=< Y. X leq X <=> true.