[GHC] #2985: Bogus superclass dictionary with equality constraints

GHC trac at galois.com
Fri Jan 30 10:37:22 EST 2009


#2985: Bogus superclass dictionary with equality constraints
-----------------------------------------------+----------------------------
    Reporter:  simonpj                         |        Owner:  igloo           
        Type:  merge                           |       Status:  new             
    Priority:  normal                          |    Milestone:  6.10.2          
   Component:  Compiler                        |      Version:  6.10.1          
    Severity:  normal                          |   Resolution:                  
    Keywords:                                  |   Difficulty:  Unknown         
    Testcase:  indexed-types/should_run/T2985  |           Os:  Unknown/Multiple
Architecture:  Unknown/Multiple                |  
-----------------------------------------------+----------------------------
Changes (by simonpj):

  * testcase:  => indexed-types/should_run/T2985
  * owner:  => igloo
  * type:  bug => merge

Comment:

 Excellent bug. Fixed by
 {{{
 Fri Jan 30 07:27:38 PST 2009  simonpj at microsoft.com
   * Fix Trac #2985: generating superclasses and recursive dictionaries

   The Note [Recursive instances and superclases] explains the subtle
   issues to do with generating the bindings for superclasses when
   we compile an instance declaration, at least if we want to do the
   clever "recursive superclass" idea from the SYB3 paper.

   The old implementation of tcSimplifySuperClasses stumbled when
   type equalities entered the picture (details in the Note); this
   patch fixes the problem using a slightly hacky trick.  When we
   re-engineer the constraint solver we'll want to keep an eye on
   this.

   Probably worth merging to the 6.10 branch.
 }}}
 Worth merging.

 Simon

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2985#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the Glasgow-haskell-bugs mailing list