[project @ 2000-05-24 11:39:48 by simonpj]
authorsimonpj <unknown>
Wed, 24 May 2000 11:39:48 +0000 (11:39 +0000)
committersimonpj <unknown>
Wed, 24 May 2000 11:39:48 +0000 (11:39 +0000)
commit6e04c7e8ce404d4c2552e7118f1ece20b2632e92
treee166f207e85d61d55c1c142cb9906e7476811b9e
parent27c253536ba2eeae99e6b5e07a9c5ec7bd2f063b
[project @ 2000-05-24 11:39:48 by simonpj]
MERGE 4.07

* When float outwards (full laziness) remember to
  switch off the demand flag.  Else we wrongly
  can transform
\x -> let y __D = (...) in y+x
  into
let y __D = (...)
in \x -> y+x
  In the latter, y is not necessarily demanded;
  it depends whether the function is called.  We
  should switch off the demand flag.

  The fix is right at the bottom in SetLevels.subst_id_info
ghc/compiler/simplCore/SetLevels.lhs