A fast and extensible input/output stream design

The stream input and output functions are designed for high speed buffered character or octet operation. Many of the character and byte stream functions may be compiled inline, improving performance. User defined streams can be easily created by defining new stream classes and appropriate methods - streams are standard-objects and their behavior is defined by methods on documented generic functions. The 'Gray Streams' de facto standard is largely supported, but only for effectively unbuffered streams.