-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | A simple applicative parser
--   
--   A simple applicative parser in Parsec style
@package appar
@version 0.1.4

-- | Simple Applicative parser whose input is strict
--   ByteString. The usage is the same as parsec.
--   
--   Parsec 3 provides features which Parsec 2 does not provide:
--   
--   
--   
- Applicative style
--   
- ByteString as input
--   
--   
--   But Haskell Platform includes Parsec 2, not Parsec 3. Installing
--   Parsec 3 to Haskell Platform environment makes it mess. So, this
--   library was implemented.
module Text.Appar.ByteString

-- | Parser synonym for strict ByteString.
type Parser = MkParser ByteString

-- | Run a parser.
parse :: Input inp => MkParser inp a -> inp -> Maybe a

-- | char c parses a single character c. Returns the
--   parsed character.
char :: Input inp => Char -> MkParser inp Char

-- | This parser succeeds for any character. Returns the parsed character.
anyChar :: Input inp => MkParser inp Char

-- | oneOf cs succeeds if the current character is in the supplied
--   list of characters cs. Returns the parsed character.
oneOf :: Input inp => String -> MkParser inp Char

-- | As the dual of oneOf, noneOf cs succeeds if the
--   current character not in the supplied list of characters
--   cs. Returns the parsed character.
noneOf :: Input inp => String -> MkParser inp Char

-- | Parses a letter or digit (a character between '0' and '9'). Returns
--   the parsed character.
alphaNum :: Input inp => MkParser inp Char

-- | Parses a digit. Returns the parsed character.
digit :: Input inp => MkParser inp Char

-- | Parses a hexadecimal digit (a digit or a letter between 'a' and 'f' or
--   'A' and 'F'). Returns the parsed character.
hexDigit :: Input inp => MkParser inp Char

-- | Parses a white space character (any character which satisfies
--   isSpace) Returns the parsed character.
space :: Input inp => MkParser inp Char

-- | string s parses a sequence of characters given by s.
--   Returns the parsed string
string :: Input inp => String -> MkParser inp String

-- | The parser try p behaves like parser p, except that it pretends that
--   it hasn't consumed any input when an error occurs.
try :: MkParser inp a -> MkParser inp a

-- | choice ps tries to apply the parsers in the list ps
--   in order, until one of them succeeds. Returns the value of the
--   succeeding parser.
choice :: [MkParser inp a] -> MkParser inp a

-- | option x p tries to apply parser p. If p
--   fails without consuming input, it returns the value x,
--   otherwise the value returned by p.
option :: a -> MkParser inp a -> MkParser inp a

-- | skipMany p applies the parser p zero or more
--   times, skipping its result.
skipMany :: MkParser inp a -> MkParser inp ()

-- | skipSome p applies the parser p one or more
--   times, skipping its result.
skipSome :: MkParser inp a -> MkParser inp ()

-- | sepBy1 p sep parses one or more occurrences of
--   p, separated by sep. Returns a list of values
--   returned by p.
sepBy1 :: MkParser inp a -> MkParser inp b -> MkParser inp [a]

-- | manyTill p end applies parser p zero or more
--   times until parser end succeeds. Returns the list of values
--   returned by p.
manyTill :: MkParser inp a -> MkParser inp b -> MkParser inp [a]

-- | An infix synonym for fmap.
(<$>) :: Functor f => (a -> b) -> f a -> f b

-- | Replace all locations in the input with the same value. The default
--   definition is fmap . const, but this may be
--   overridden with a more efficient version.
(<$) :: Functor f => forall a b. a -> f b -> f a

-- | Sequential application.
(<*>) :: Applicative f => forall a b. f (a -> b) -> f a -> f b

-- | Sequence actions, discarding the value of the first argument.
(*>) :: Applicative f => forall a b. f a -> f b -> f b

-- | Sequence actions, discarding the value of the second argument.
(<*) :: Applicative f => forall a b. f a -> f b -> f a

-- | A variant of <*> with the arguments reversed.
(<**>) :: Applicative f => f a -> f (a -> b) -> f b

-- | An associative binary operation
(<|>) :: Alternative f => forall a. f a -> f a -> f a

-- | One or more.
some :: Alternative f => forall a. f a -> f [a]

-- | Zero or more.
many :: Alternative f => forall a. f a -> f [a]

-- | Lift a value.
pure :: Applicative f => forall a. a -> f a
data MkParser inp a
P :: (inp -> (Maybe a, inp)) -> MkParser inp a

-- | Getting the internal parser.
runParser :: MkParser inp a -> inp -> (Maybe a, inp)

-- | The class for parser input.
class Eq inp => Input inp
car :: Input inp => inp -> Char
cdr :: Input inp => inp -> inp
nil :: Input inp => inp
isNil :: Input inp => inp -> Bool

-- | The parser satisfy f succeeds for any character for which the
--   supplied function f returns True. Returns the
--   character that is actually parsed.
satisfy :: Input inp => (Char -> Bool) -> MkParser inp Char

-- | Simple Applicative parser whose input is lazy
--   ByteString. The usage is the same as parsec.
--   
--   Parsec 3 provides features which Parsec 2 does not provide:
--   
--   
--   
- Applicative style
--   
- ByteString as input
--   
--   
--   But Haskell Platform includes Parsec 2, not Parsec 3. Installing
--   Parsec 3 to Haskell Platform environment makes it mess. So, this
--   library was implemented.
module Text.Appar.LazyByteString

-- | Parser synonym for strict ByteString.
type Parser = MkParser ByteString

-- | Run a parser.
parse :: Input inp => MkParser inp a -> inp -> Maybe a

-- | char c parses a single character c. Returns the
--   parsed character.
char :: Input inp => Char -> MkParser inp Char

-- | This parser succeeds for any character. Returns the parsed character.
anyChar :: Input inp => MkParser inp Char

-- | oneOf cs succeeds if the current character is in the supplied
--   list of characters cs. Returns the parsed character.
oneOf :: Input inp => String -> MkParser inp Char

-- | As the dual of oneOf, noneOf cs succeeds if the
--   current character not in the supplied list of characters
--   cs. Returns the parsed character.
noneOf :: Input inp => String -> MkParser inp Char

-- | Parses a letter or digit (a character between '0' and '9'). Returns
--   the parsed character.
alphaNum :: Input inp => MkParser inp Char

-- | Parses a digit. Returns the parsed character.
digit :: Input inp => MkParser inp Char

-- | Parses a hexadecimal digit (a digit or a letter between 'a' and 'f' or
--   'A' and 'F'). Returns the parsed character.
hexDigit :: Input inp => MkParser inp Char

-- | Parses a white space character (any character which satisfies
--   isSpace) Returns the parsed character.
space :: Input inp => MkParser inp Char

-- | string s parses a sequence of characters given by s.
--   Returns the parsed string
string :: Input inp => String -> MkParser inp String

-- | The parser try p behaves like parser p, except that it pretends that
--   it hasn't consumed any input when an error occurs.
try :: MkParser inp a -> MkParser inp a

-- | choice ps tries to apply the parsers in the list ps
--   in order, until one of them succeeds. Returns the value of the
--   succeeding parser.
choice :: [MkParser inp a] -> MkParser inp a

-- | option x p tries to apply parser p. If p
--   fails without consuming input, it returns the value x,
--   otherwise the value returned by p.
option :: a -> MkParser inp a -> MkParser inp a

-- | skipMany p applies the parser p zero or more
--   times, skipping its result.
skipMany :: MkParser inp a -> MkParser inp ()

-- | skipSome p applies the parser p one or more
--   times, skipping its result.
skipSome :: MkParser inp a -> MkParser inp ()

-- | sepBy1 p sep parses one or more occurrences of
--   p, separated by sep. Returns a list of values
--   returned by p.
sepBy1 :: MkParser inp a -> MkParser inp b -> MkParser inp [a]

-- | manyTill p end applies parser p zero or more
--   times until parser end succeeds. Returns the list of values
--   returned by p.
manyTill :: MkParser inp a -> MkParser inp b -> MkParser inp [a]

-- | An infix synonym for fmap.
(<$>) :: Functor f => (a -> b) -> f a -> f b

-- | Replace all locations in the input with the same value. The default
--   definition is fmap . const, but this may be
--   overridden with a more efficient version.
(<$) :: Functor f => forall a b. a -> f b -> f a

-- | Sequential application.
(<*>) :: Applicative f => forall a b. f (a -> b) -> f a -> f b

-- | Sequence actions, discarding the value of the first argument.
(*>) :: Applicative f => forall a b. f a -> f b -> f b

-- | Sequence actions, discarding the value of the second argument.
(<*) :: Applicative f => forall a b. f a -> f b -> f a

-- | A variant of <*> with the arguments reversed.
(<**>) :: Applicative f => f a -> f (a -> b) -> f b

-- | An associative binary operation
(<|>) :: Alternative f => forall a. f a -> f a -> f a

-- | One or more.
some :: Alternative f => forall a. f a -> f [a]

-- | Zero or more.
many :: Alternative f => forall a. f a -> f [a]

-- | Lift a value.
pure :: Applicative f => forall a. a -> f a
data MkParser inp a
P :: (inp -> (Maybe a, inp)) -> MkParser inp a

-- | Getting the internal parser.
runParser :: MkParser inp a -> inp -> (Maybe a, inp)

-- | The class for parser input.
class Eq inp => Input inp
car :: Input inp => inp -> Char
cdr :: Input inp => inp -> inp
nil :: Input inp => inp
isNil :: Input inp => inp -> Bool

-- | The parser satisfy f succeeds for any character for which the
--   supplied function f returns True. Returns the
--   character that is actually parsed.
satisfy :: Input inp => (Char -> Bool) -> MkParser inp Char

-- | Simple Applicative parser whose input is String. The
--   usage is the same as parsec.
--   
--   Parsec 3 provides features which Parsec 2 does not provide:
--   
--   
--   
- Applicative style
--   
- ByteString as input
--   
--   
--   But Haskell Platform includes Parsec 2, not Parsec 3. Installing
--   Parsec 3 to Haskell Platform environment makes it mess. So, this
--   library was implemented.
module Text.Appar.String

-- | Parser synonym for String.
type Parser = MkParser String

-- | Run a parser.
parse :: Input inp => MkParser inp a -> inp -> Maybe a

-- | char c parses a single character c. Returns the
--   parsed character.
char :: Input inp => Char -> MkParser inp Char

-- | This parser succeeds for any character. Returns the parsed character.
anyChar :: Input inp => MkParser inp Char

-- | oneOf cs succeeds if the current character is in the supplied
--   list of characters cs. Returns the parsed character.
oneOf :: Input inp => String -> MkParser inp Char

-- | As the dual of oneOf, noneOf cs succeeds if the
--   current character not in the supplied list of characters
--   cs. Returns the parsed character.
noneOf :: Input inp => String -> MkParser inp Char

-- | Parses a letter or digit (a character between '0' and '9'). Returns
--   the parsed character.
alphaNum :: Input inp => MkParser inp Char

-- | Parses a digit. Returns the parsed character.
digit :: Input inp => MkParser inp Char

-- | Parses a hexadecimal digit (a digit or a letter between 'a' and 'f' or
--   'A' and 'F'). Returns the parsed character.
hexDigit :: Input inp => MkParser inp Char

-- | Parses a white space character (any character which satisfies
--   isSpace) Returns the parsed character.
space :: Input inp => MkParser inp Char

-- | string s parses a sequence of characters given by s.
--   Returns the parsed string
string :: Input inp => String -> MkParser inp String

-- | The parser try p behaves like parser p, except that it pretends that
--   it hasn't consumed any input when an error occurs.
try :: MkParser inp a -> MkParser inp a

-- | choice ps tries to apply the parsers in the list ps
--   in order, until one of them succeeds. Returns the value of the
--   succeeding parser.
choice :: [MkParser inp a] -> MkParser inp a

-- | option x p tries to apply parser p. If p
--   fails without consuming input, it returns the value x,
--   otherwise the value returned by p.
option :: a -> MkParser inp a -> MkParser inp a

-- | skipMany p applies the parser p zero or more
--   times, skipping its result.
skipMany :: MkParser inp a -> MkParser inp ()

-- | skipSome p applies the parser p one or more
--   times, skipping its result.
skipSome :: MkParser inp a -> MkParser inp ()

-- | sepBy1 p sep parses one or more occurrences of
--   p, separated by sep. Returns a list of values
--   returned by p.
sepBy1 :: MkParser inp a -> MkParser inp b -> MkParser inp [a]

-- | manyTill p end applies parser p zero or more
--   times until parser end succeeds. Returns the list of values
--   returned by p.
manyTill :: MkParser inp a -> MkParser inp b -> MkParser inp [a]

-- | An infix synonym for fmap.
(<$>) :: Functor f => (a -> b) -> f a -> f b

-- | Replace all locations in the input with the same value. The default
--   definition is fmap . const, but this may be
--   overridden with a more efficient version.
(<$) :: Functor f => forall a b. a -> f b -> f a

-- | Sequential application.
(<*>) :: Applicative f => forall a b. f (a -> b) -> f a -> f b

-- | Sequence actions, discarding the value of the first argument.
(*>) :: Applicative f => forall a b. f a -> f b -> f b

-- | Sequence actions, discarding the value of the second argument.
(<*) :: Applicative f => forall a b. f a -> f b -> f a

-- | A variant of <*> with the arguments reversed.
(<**>) :: Applicative f => f a -> f (a -> b) -> f b

-- | An associative binary operation
(<|>) :: Alternative f => forall a. f a -> f a -> f a

-- | One or more.
some :: Alternative f => forall a. f a -> f [a]

-- | Zero or more.
many :: Alternative f => forall a. f a -> f [a]

-- | Lift a value.
pure :: Applicative f => forall a. a -> f a
data MkParser inp a
P :: (inp -> (Maybe a, inp)) -> MkParser inp a

-- | Getting the internal parser.
runParser :: MkParser inp a -> inp -> (Maybe a, inp)

-- | The class for parser input.
class Eq inp => Input inp
car :: Input inp => inp -> Char
cdr :: Input inp => inp -> inp
nil :: Input inp => inp
isNil :: Input inp => inp -> Bool

-- | The parser satisfy f succeeds for any character for which the
--   supplied function f returns True. Returns the
--   character that is actually parsed.
satisfy :: Input inp => (Char -> Bool) -> MkParser inp Char
