以下の2つの foldl, foldr の [1..5000000] の計算結果で、
t05l.hs: act n = foldl (+) 0 [1..n]
t05r.hs: act n = foldr (+) 0 [1..n]
t05l.hs, t05r.hs:
main = do
n' <- getArgs
let n = read (n' !!0)
putStrLn (show (act n))

>ghc -O2 --make {t05r.hs | t05l.hs} -prof -auto-all -caf-all -fforce-recomp

>t05l 5000000
12500002500000

>t05r +RTS -K100M -RTS 5000000
Stack space overflow: current size 100000000 bytes.
Use `+RTS -Ksize -RTS' to increase it.

>t05r +RTS -K800M -RTS 5000000
12500002500000

が得られた。
何かで、foldl のヒープの使用が、 foldr ではスタックの使用に変わったようなもの。。。
というようなことを聞いた不確かな記憶があるのですが、
サンクとはどのような情報をどのような形で保持しているのでしょうか?