Fix constructor-specialisation bug
authorsimonpj@microsoft.com <unknown>
Thu, 4 May 2006 11:21:31 +0000 (11:21 +0000)
committersimonpj@microsoft.com <unknown>
Thu, 4 May 2006 11:21:31 +0000 (11:21 +0000)
commit64f00b23e172aae40609b5deca87f83aa6f5447a
treefa74005c8ab62af39273e64e52d067538c34ecba
parent381b1a6243eba79b27e089a0ad677d82c8955165
Fix constructor-specialisation bug

The constructor-specialisation optimisation was not dealing with the case
of
(letrec ... in f) a1 a2

We need to apply constructor specialisation in the letrec; previously
we were leaving it untouched on the grounds that the function part of
an application is almost always a variable.

But in fact, float-in immediately precedes SpecConstr, so we can get
these odd-looking applications.
compiler/specialise/SpecConstr.lhs