I'm relatively new to ocaml and very new to this list. Browsing thru recent discussion about standard IO structure, I felt that discussion was cycled over what signature of the "universal" class should look like, so it would satisfy all possible needs. However looks like prospective users, of this new IO, have rather contradictive requirements to the IO in general. And I'm thinking could standard IO only to provide basic signature of the IO modules and framework for layered IO. Doing so additional functionality could be added incrementally, without affection core IO and achieving interoperability between different libraries which are using that IO. Last day or two I was playing with ocaml and ocaml module system, and sketched some variant of basic IO. This sketch based on imperative streams, where stream is module parameterized by the symbol type. However blocked based IO is also supported, test code includes naive functors to translate from a block based IO to a stream IO. If you felt interested, please look into the attached file io.ml. In the file you would found wrappers for Pervasive file IO, rudimentary socket I/O, naive UTF8 filter and generic I/O algorithms. At the end of file there are several test cases to exercise I/O extensibility. File is self sufficient example and one should be able to compile it or run in the toplevel. Regards, Vladimir