
11 Aug
2003
11 Aug
'03
5:44 a.m.
Hi, the following "toy" program has a strange behaviour, when compiling with ghc5.04.3 an no optimisation (-O0) module Main(main) where import System.IO.Unsafe main = case unsafePerformIO (print "test") of () -> main ok, probably I use unsafePerformIO in an "unsafe" way and so on, but executing the program prints infinitely often "test" on the screen, but I think it would be correct to do so one time? I think it has something to do with exporting main, because the following program module Main(main) where import System.IO.Unsafe main = seq f (return ()) f = case unsafePerformIO (print "test") of () -> f behaves ok. Does someone, what's the reason for this? Thanks, David