The parcom-lib package

Parcom provides parser combinator functionality in a string-type-agnostic way;
it supports strict ByteStrings (with Word8 tokens) and any list type (with
the element type as the token type) out-of-the-box, including plain old String.
Any other stream-of-tokens type can be hooked into the library; unlike Parsec,
none of the built-in parsers assumes char-like tokens.