Streams is an I/O library designed to eventually
replace the current I/O facilities based on using
Handles. The main advantage is its strong modular
design using typeclasses. It consists of small
independent modules, each implementing one type of
stream (file, memory buffer, pipe, etc.) or one
part of common stream functionality (buffering,
char encoding, locking, etc.). 3rd-party librarie
can easily add new stream types and new common
functionality. Other benefits of the new library
include support for streams functioning in any
monad, Hugs and GHC compatibility, high speed, and
an easy migration path from the existing I/O
library. It is heavily based on the HVIO module
written by John Goerzen.