> "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

Reply via email to