[Haskell-cafe] Problems with strictness analysis?

Matthew Brecknell haskell at brecknell.org
Mon Nov 3 18:35:34 EST 2008

Don Stewart:
> "Optimisations" enable strictness analysis.

Luke Palmer:
> I was actually being an annoying purist.  "f is strict" means "f _|_ =
> _|_", so strictness is a semantic idea, not an operational one.
> Optimizations can change operation, but must preserve semantics.

Henning Thielemann:
> Maybe I missed the point, but the optimization seems correct to me. 
> [...]

I guess the obvious clarification to make here is that strictness
analysis doesn't make non-strict functions strict. It is about
determining which functions are already strict. The *optimisation* is to
transform call-by-need into call-by-value (or something like that). But
that's an *operational* matter, as Luke points out. To preserve
*semantics*, that transformation can only be allowed for functions which
are already strict. Hence the need for strictness analysis as part of

So everybody is right. :-)

More information about the Haskell-Cafe mailing list