For CHR constraints the four standard ports
are defined:
- call
- A new constraint is called and becomes active.
- exit
- An active constraint exits: it has either been inserted in the store
after trying all rules or has been removed from the constraint store.
- fail
- An active constraint fails.
- redo
- An active constraint starts looking for an alternative solution.
In addition to the above ports, CHR constraints have five additional
ports:
- wake
- A suspended constraint is woken and becomes active.
- insert
- An active constraint has tried all rules and is suspended in the
constraint store.
- remove
- An active or passive constraint is removed from the constraint store.
- try
- An active constraint tries a rule with possibly some passive
constraints. The try port is entered just before committing to the rule.
- apply
- An active constraint commits to a rule with possibly some passive
constraints. The apply port is entered just after committing to the
rule.