ReadP package:ghc-internal

This is a library of parser combinators, originally written by Koen Claessen. It parses all alternatives in parallel, so it never keeps hold of the beginning of the input string, a common source of space leaks with other parsers. The (+++) choice combinator is genuinely commutative; it makes no difference which branch is "shorter".
This library defines parser combinators for precedence parsing.
readParen True p parses what p parses, but surrounded with parentheses. readParen False p parses what p parses, but optionally surrounded with parentheses.
Proposed replacement for readsPrec using new-style parsers (GHC only).
Converts a parser into a Haskell ReadS-style function. This is the main way in which you can "run" a ReadP parser: the expanded type is readP_to_S :: ReadP a -> String -> [(a,String)]