Improved specialisation of recursive groups
authorsimonpj@microsoft.com <unknown>
Wed, 3 Sep 2008 11:56:29 +0000 (11:56 +0000)
committersimonpj@microsoft.com <unknown>
Wed, 3 Sep 2008 11:56:29 +0000 (11:56 +0000)
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


No differences found