[project @ 2001-10-03 13:58:50 by simonpj]
authorsimonpj <unknown>
Wed, 3 Oct 2001 13:58:51 +0000 (13:58 +0000)
committersimonpj <unknown>
Wed, 3 Oct 2001 13:58:51 +0000 (13:58 +0000)
commitf659cb97f97051c2a5fa443e2baaa13fb5db87b9
tree318b6b18e3580ae446edc29f3d4161d15086ab31
parent4a1e12a1edfd959c133d922b1adc733c137610d7
[project @ 2001-10-03 13:58:50 by simonpj]
---------------------
Clear up infelicities
---------------------
CorePrep, CoreUtils, SimplUtils
LiberateCase (wibbles only)

* Previously CorePrep was floating LocalIds to top level, which
  breaks the invariant that after CorePrep all top level Ids are
  GlobalIds.  But it didn't really need to, and this pass makes it
  so.  It's much tidier now.

* Make CorePrep do eta expansion on partial applications
x = foldr f y  ==>   x = \ys -> foldr f y ys
  (This used to be done in the simplifier, but now the
  simplifier only eta expands where there is at least one
  lambda already.)

* Omit CoreUtils.etaReduce.  (Never called.)

* Improve CoreUtils.etaExpand, so that it doesn't add gratuitous
  beta redexes.
ghc/compiler/coreSyn/CorePrep.lhs
ghc/compiler/coreSyn/CoreUtils.lhs
ghc/compiler/simplCore/LiberateCase.lhs
ghc/compiler/simplCore/SimplUtils.lhs