[Haskell-cafe] types and number of evaluation steps

Roman Cheplyaka roma at ro-che.info
Sat Feb 18 17:55:27 CET 2012

It doesn't matter. Laziness would be affected if, for instance,
something is not evaluated without CSE and is evaluated with it.

In your example either all or none of 'a' and 'b' get evaluated,
depending on whether the top-level expression is evaluated.

* Victor Gorokgov <me at rkit.pp.ru> [2012-02-18 18:23:19+0400]
> example = a + b + a + b
> exampleCSE = x + x
>   where x = a + b
> With CSE we are introducing new thunk: x.
> 18.02.2012 17:38, Roman Cheplyaka пишет:
> >* Holger Siegel<holgersiegel74 at yahoo.de>  [2012-02-18 12:52:08+0100]
> >>You cannot. Common subexpression elimination is done by GHC very
> >>conservatively, because it can not only affect impure programs: it can
> >>also affects strictness/lazyness and worsen memory usage of pure code.
> >>Like the HaskellWiki says: "If you care about CSE, do it by hand."
> >How can it affect strictness or laziness?

Roman I. Cheplyaka :: http://ro-che.info/

More information about the Haskell-Cafe mailing list