[Haskell-cafe] Expanding do notation
greenrd at greenrd.org
Sat Jan 7 11:54:25 EST 2006
David F. Place wrote:
> Hi All,
> Is there a program for expanding 'do' notation? I am trying to
> understand why the following code (from the Fannkuch entry) doesn't
> hold onto the list 'p' causing a space leak.
You can desugar (i.e. expand) the do notation relatively easily, but
that won't tell you what optimisations are being performed (e.g. code
rearrangements) if any. Of course the compiler can't perform IO actions
in the wrong order - but it can in principle generate code which
generates a value from p early on, and then p can be garbage collected.
I have no idea whether that's what's happening here, though.
More information about the Haskell-Cafe