• simonpj@microsoft.com's avatar
    Fix Trac #2985: generating superclasses and recursive dictionaries · c04a5fe3
    simonpj@microsoft.com authored
    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.
    
    c04a5fe3
TcSimplify.lhs 116 KB