#4259: Relax restrictions on type family instance overlap
----------------------------------------+-----------------------------------
Reporter: lilac | Owner:
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Compiler (Type checker) | Version: 6.12.1
Keywords: | Testcase:
Blockedby: 4232 | Difficulty:
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: None/Unknown
----------------------------------------+-----------------------------------
Comment(by chak):
We are always going to miss out on some systems that are, in fact,
confluent. IIRC we don't know whether the system is terminating before we
know whether it is confluent. Hence, a general check for confluence for
family instances is undecidable. All that we can hope to achieve is a
conservative syntactic criterion that ensures confluence (and hence
indirectly, termination). I chose the currently implemented criterion
because it is simple (as in, easily explained) and can be implemented
efficiently in the context of separate compilation.
Maybe there is a more permissive syntactic criterion that we can use, but
I believe it must be simple (and hence, not fragile) and we need to make
sure we can implement it efficiently in an incremental fashion (due to the
incremental loading of modules, and hence, extension of the rule set).
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4259#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs