Allow Undecidable Instances
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.
- Undecidable instances in the GHC User's guide.
- 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.