8.4.1 Ports
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.