8.8 Compiler Errors and Warnings
In this section we summarize the most important error and warning messages of the CHR compiler.
8.8.1 CHR Compiler Errors
- Type clash
- for variable ... in rule ...
This error indicates an inconsistency between declared types; a variable can not belong to two types. See static type checking. 
- Invalid functor
- in head ... of rule ...
This error indicates an inconsistency between a declared type and the use of a functor in a rule. See static type checking. 
- Cyclic alias
- definition: ... == ...
You have defined a type alias in terms of itself, either directly or indirectly. 
- Ambiguous type aliases
- 
You have defined two overlapping type aliases. 
- Multiple definitions
- for type
You have defined the same type multiple times. 
- Non-ground type
- in constraint definition: ...
You have declared a non-ground type for a constraint argument. 
- Could not find type definition
- for ...
You have used an undefined type in a type declaration. 
- Illegal mode/type declaration
- 
You have used invalid syntax in a constraint declaration. 
- Constraint multiply defined
- 
There is more than one declaration for the same constraint. 
- Undeclared constraint
- ... in head of ...
You have used an undeclared constraint in the head of a rule. This often indicates a misspelled constraint name or wrong number of arguments. 
- Invalid pragma
- ... in ... Pragma should not be a variable.
You have used a variable as a pragma in a rule. This is not allowed. 
- Invalid identifier
- ... in pragma passive in ...
You have used an identifier in a passive pragma that does not correspond to an identifier in the head of the rule. Likely the identifier name is misspelled. 
- Unknown pragma
- ... in ...
You have used an unknown pragma in a rule. Likely the pragma is misspelled or not supported. 
- Something unexpected
- happened in the CHR compiler
You have most likely bumped into a bug in the CHR compiler. Please contact Tom Schrijvers to notify him of this error.