Don't dump floated bindings just outside a lambda
authorsimonpj@microsoft.com <unknown>
Fri, 2 Feb 2007 15:54:52 +0000 (15:54 +0000)
committersimonpj@microsoft.com <unknown>
Fri, 2 Feb 2007 15:54:52 +0000 (15:54 +0000)
commit2f41dd510a893312dfaa0d652f448cc3a045eb88
tree50c283f309f29430f985c2026978d69b53015a22
parent9832b556cc8ea22508926f67c628f12eea3bd38b
Don't dump floated bindings just outside a lambda

We do not want the FloatOut pass to transform
f = \x. e
to
f = let lvl = ... in \x.e

The arity pinned on f isn't right any more; and see
Note [Floating out of RHSs].

Core Lint is now spotting the arity lossage (for a letrec), which is
how I spotted this bug.

I also re-jigged the code around floatBind; it's a bit tidier now.
compiler/simplCore/FloatOut.lhs