Компиляция Haskell с -O2 значительно увеличивает использование памяти

Эта простая программа выполняется в постоянном пространстве памяти при компиляции без флагов с помощью ghc:

import Data.List
f x = x*x
g a = foldl' (+) (f a) [1..(1073741824-1)]
main = do putStrLn $ show $ foldl' (+) 0 $ map g [0,1]

При компиляции с ghc -O2 использование памяти превышает системные ресурсы (8 ГБ).

Изменение основного на:

main = do putStrLn $ show $ foldl' (+) 0 [g 0, g 1]

облегчает проблему, так что, похоже, что-то связано с картой.

Может кто-нибудь объяснить поведение и, возможно, как обойти это?

Версия GHC: Glasgow Haskell Compiler, версия 7.4.1, этап 2, загруженный GHC версии 7.4.1

Ответы на вопрос(2)

Ваш ответ на вопрос