Всем привет!
Никак не могу понять почему течет память в программе.
test :: () -> ()
test () = test ()
main = putStrLn.show $ test ()
Эксперементами установил, что если сделать так: test () = 1 `seq` test (), то все нормально, т.е. программа крутится в бесконечном цикле, объем занимаемой памяти остается постоянным. Но если поменять 1 на значение какого-то другого типа (даже на 1::Int), память расходуется очень быстро.
Кто-нибудь может объяснить такое поведение? Похоже на баг. Версия GHC 6.12.1