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.