[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.