[Haskell-cafe] Re: Diagnosing stack overflow

Joe Buehler aspam at cox.net
Fri Aug 17 10:32:27 EDT 2007

Matthew Brecknell wrote:

> The key point of the example is that foldl itself doesn't need any of
> the intermediate values of the accumulator, so these just build up into
> a deeply-nested unevaluated thunk. When print finally demands an
> integer, the run-time pushes a stack frame for each level of parentheses
> it enters as it tries to evaluate the thunk. Too many parentheses leads
> to a stack overflow. Of course, the solution to the example is to use

What is the point in building this huge thunk if it can't be evaluated
without a stack overflow?  Could the runtime do partial evaluation
to keep the thunk size down or would that cause semantic breakage?

Joe Buehler

More information about the Haskell-Cafe mailing list