[project @ 2001-07-20 10:08:56 by simonpj]
authorsimonpj <unknown>
Fri, 20 Jul 2001 10:08:56 +0000 (10:08 +0000)
committersimonpj <unknown>
Fri, 20 Jul 2001 10:08:56 +0000 (10:08 +0000)
commitdebd4f60f37ca2658f3470a343476542253760ab
tree9b79405010dc862590db6318f8d77707218aed60
parent98a74c9da8b10a3ba8fa2c261c2e26970c56a811
[project @ 2001-07-20 10:08:56 by simonpj]
--------------------------------------------
Hack around an infelicity in the simplifier
-------------------------------------------

Use 3 iterations of the simplifier (instead of the previous 2)
because otherwise we land up with huge dead expressions.
Reason: an infelicity in the simpifier.

      let k = BIG in foldr k z xs
 ==>  let k = BIG in letrec go = \xs -> ...(k x).... in go xs
 ==>  let k = BIG in letrec go = \xs -> ...(BIG x).... in go xs
 Don't stop now!

I couldn't see an easy way to make the simplifier avoid this
big intermediate, so I hacked round it like this.
ghc/compiler/main/DriverState.hs