Skip to content
  • Simon Peyton Jones's avatar
    Improved specialisation of recursive groups · 78260da4
    Simon Peyton Jones authored
    This patch significantly improves the way in which recursive groups
    are specialised.  This turns out ot be very important when specilising
    the bindings that (now) emerge from instance declarations.
    
    Consider
        let rec { f x = ...g x'...
                ; g y = ...f y'.... }
        in f 'a'
    Here we specialise 'f' at Char; but that is very likely to lead to 
    a specialisation of 'g' at Char.  We must do the latter, else the
    whole point of specialisation is lost.  This was not happening before.
    
    The whole thing is desribed in 
        Note [Specialising a recursive group]
    
    
    Simon
    78260da4