re-opening a closed stdin?

Simon Marlow
Mon, 25 Nov 2002 10:09:01 -0000

> "Simon Marlow" <> writes:
> > One reason, I think, is lazy I/O(*).  It's to stop you accidentally
> [...]
> > (*) kill it! die! die!
> So you want
>   main =3D 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