{-# LANGUAGE Safe #-}

-- |
--
-- Module      :  Text.ParserCombinators.ReadP
-- Copyright   :  (c) The University of Glasgow 2002
-- License     :  BSD-style (see the file libraries/base/LICENSE)
--
-- Maintainer  :  libraries@haskell.org
-- Stability   :  provisional
-- Portability :  non-portable (local universal quantification)
--
-- 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\".

module Text.ParserCombinators.ReadP
    (-- *  The 'ReadP' type
     ReadP,
     -- *  Primitive operations
     get,
     look,
     (+++),
     (<++),
     gather,
     -- *  Other operations
     pfail,
     eof,
     satisfy,
     char,
     string,
     munch,
     munch1,
     skipSpaces,
     choice,
     count,
     between,
     option,
     optional,
     many,
     many1,
     skipMany,
     skipMany1,
     sepBy,
     sepBy1,
     endBy,
     endBy1,
     chainr,
     chainl,
     chainl1,
     chainr1,
     manyTill,
     -- *  Running a parser
     ReadS,
     readP_to_S,
     readS_to_P,
     -- *  Properties
     -- $properties
     ) where

import GHC.Internal.Text.ParserCombinators.ReadP