Vladimir N. Silyaev wrote: > If you felt interested, please look into the attached file io.ml. This looks like a good start to me; what do others think? I have two questions about it: First, I think that rather than having to hard-code the use of the UTF8 module in an application in order to handle UTF-8 characters, it would be more useful to be able to specify encodings using string arguments; the choice of encoding is often determined by reading a configuration file. Would there be a way to support this? Second, I'm wondering if this design can be adapted to accommodate non-blocking I/O. The 'get' function has to return a character, but on a non-blocking socket, there might not be any character to return. I've attached a sketch of an approach that might be more suitable for non-blocking I/O; I'd like to add it to your design, but I'm having trouble figuring out how. I would be very interested in your thoughts on this. Ben