#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

Reply via email to