> "Simon Marlow" <[EMAIL PROTECTED]> writes: > > > 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.
It is nice, but it introduces too many problems. What happens to any I/O errors encountered by the lazy I/O? They have to be discarded, which means you can't effectively use lazy I/O for robust applications anyway. Cheers, Simon _______________________________________________ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users