On 11 January 2005 09:00, Sebastian Sylvan wrote: > On Mon, 10 Jan 2005 17:12:44 -0000, Simon Marlow > <[EMAIL PROTECTED]> wrote: > >> Not a problem. Have you looked at the streams proposal? >> > > I've missed most of the discussion on this, so if someone could just > clarify the reasons for a few things I find peculiar: > > * Prefixing function names with their types, not necessary with > qualified imports.
I agree with this. > * Why not put isEOS in the InputStream class since it doesn't make > sense for OutputStreams? I think so, and there's a comment to that effect in the prototype code. > * Why not introduce an additional class BufferedStream containing the > the Buffering-functions (instead of having them in Stream and > resorting to weird failure-patterns for non-buffered streams): > setBufferMode :: s -> BufferMode -> IO () > getBufferMode :: s -> IO BufferMode > flush :: s -> IO () > sync :: s -> IO Bool > Where setBufferMode is not allowed to "fail" (by returning False). If > for some reason it does fail an exception is thrown. Same thing with > getBufferMode. It will return a Buffering or throw an exception (not > return "NoBuffering" instead of a failure). The prototype code has a separate Buffered class, with TextOutputStream an instance of it. I've been wondering whether having a generic buffering layer might be possible/desirable too, so you could do buffered binary I/O. Anyway, it would be good to record comments and suggestions like this on the wiki page (http://www.haskell.org/hawiki/HaskellStreamIO). Cheers, Simon _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
