Parsec is designed from scratch as an industrial-strength parser
library.  It is simple, safe, well documented (on the package homepage),
has extensive libraries and good error messages, and is also fast.  It
is defined as a monad transformer that can be stacked on arbitrary
monads, and it is also parametric in the input stream type.

WWW: http://www.cs.uu.nl/~daan/parsec.html
