Allow Undecidable Instances

Brief Explanation

There are no restrictions on the form of instance declarations (see FlexibleInstances). Implementations ensure termination by making context reduction fail if it exceeds some depth limit.



Allow Undecidable Instances


  • allows safe instances that would be rejected by conservative termination checks (see FlexibleInstances).
  • offered by GHC and Hugs with appropriate options for several years.
  • experience has shown that increasing the depth limit rarely makes a difference in which programs are accepted.


  • the boundary between legal and illegal programs is unclear, and possibly implementation-dependent.
Last modified 14 years ago Last modified on Feb 19, 2006 1:14:14 AM