ReadP package:base

This is a module 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 module 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.
Lift the standard readPrec and readListPrec functions through the type constructor.
Lift the standard readPrec function through the type constructor.
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)]
Proposed replacement for readsPrec using new-style parsers (GHC only).
readPrec function for an application of the type constructor based on readPrec and readListPrec functions for the argument type.
readPrec function for an application of the type constructor based on readPrec and readListPrec functions for the argument types.