
22 Nov
2002
22 Nov
'02
5:03 p.m.
"Simon Marlow"
One reason, I think, is lazy I/O(*). It's to stop you accidentally
[...]
(*) kill it! die! die!
So you want main = readFile "/dev/zero" >> return () to terminate violantly rather than terminate peacefully? :) Seriously, I understand that the IO monad is the most intuitive and robust when it is strict. But sometimes it is also nice if one could map a file to a lazy string.