  Constraint Handling Rules (CHR) have provided a realistic solution to an
over-arching problem in many fields that deal with constraint logic
programming: how to combine recursive functions or relations with constraints
while avoiding non-termination problems. This paper focuses on some other
benefits that CHR, specifically their implementation in SICStus Prolog, have
provided to computational linguists working on grammar design tools. CHR rules
are applied by means of a subsumption check and this check is made only when
their variables are instantiated or bound. The former functionality is at best
difficult to simulate using more primitive coroutining statements such as
SICStus when/2, and the latter simply did not exist in any form before CHR.
  For the sake of providing a case study in how these can be applied to grammar
development, we consider the Attribute Logic Engine (ALE), a Prolog
preprocessor for logic programming with typed feature structures, and its
extension to a complete grammar development system for Head-driven Phrase
Structure Grammar (HPSG), a popular constraint-based linguistic theory that
uses typed feature structures. In this context, CHR can be used not only to
extend the constraint language of feature structure descriptions to include
relations in a declarative way, but also to provide support for constraints
with complex antecedents and constraints on the co-occurrence of feature values
that are necessary to interpret the type system of HPSG properly.
