[ library(ech) | Reference Manual | Alphabetic Index ]

# option(++Option, ++On_or_Off)

Specify options for controlling ech compilation

Option
  Option Name (Atom)
On_or_Off
  If Option should be on ('on') or off ('off'), or an integer between 1 and 11

## Description

Allows the user to set options that affect the way the CHRs are compiled. These options can be turned on or off, with the default state being on. The options controls if certain run-time safety checks are performed or not. With the option off, the associated safety check will not be generated for the CHR code when compiled. Such code can run more efficiently, but can lead to incorrect behaviour that the checks would have been able to prevent.

check_guard_bindings
  When executing a guard in a CHR rule, checks are performed so that if a guard goal attemps to touch a global variable (i.e. a variable which occurs in the rule head), the guard will fail. With this option set to `off', then the checks are not performed.
already_in_store
  Before adding a user-defined CHR constraint to the constraint store, a check is performed to see if the particular constraint (i.e. with exactly the same variables) is already in the store. If this option is set to `off', then the check is not performed. The user can explicitly check if a constraint is in store by the in_chrstore/1 predicate.
chr_priority
  On_or_Off is an integer between 1 and 11, specifying the default priority for CHR constraints generated by the compiler. It also specifies the priority that at_lower/at_higher declarations will be calculated from in the constraints/1 declarations. Note that all priorities are determined at the point of the constraint declaration and is not affected by any subsequent changes in chr_priority.

### Modules

This predicate is sensitive to its module context (tool predicate, see @/2).