  We consider the application of Constraint Handling Rules (CHR) for the
specification of type inference systems, such as that used by Haskell.
Confluence of CHR guarantees that the answer provided by type inference is
correct and consistent. The standard method for establishing confluence relies
on an assumption that the CHR program is terminating. However, many examples in
practice give rise to non-terminating CHR programs, rendering this method
inapplicable. Despite no guarantee of termination or confluence, the Glasgow
Haskell Compiler (GHC) supports options that allow the user to proceed with
type inference anyway, e.g. via the use of the UndecidableInstances flag. In
this paper we formally identify and verify a set of relaxed criteria, namely
range-restrictedness, local confluence, and ground termination, that ensure the
consistency of CHR-based type inference that maps to potentially
non-terminating CHR programs.
