{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE LambdaCase #-}

module Text.Parsec.Free where

import                    Control.Applicative hiding (many)
import                    Control.Monad
import                    Control.Monad.Cont.Class
import                    Control.Monad.Error.Class
import                    Control.Monad.Free
import                    Control.Monad.IO.Class
import                    Control.Monad.Reader.Class
import                    Control.Monad.State.Class
import                    Control.Monad.Trans.Class
import qualified "parsec" Text.Parsec.Pos as P
import qualified "parsec" Text.Parsec.Prim as P

newtype ParsecDSL s u m a = ParsecDSL {
    forall s u (m :: * -> *) a.
ParsecDSL s u m a -> Free (ParsecF s u m) a
runParsecDSL :: Free (ParsecF s u m) a
    }
    deriving (forall a b. a -> ParsecDSL s u m b -> ParsecDSL s u m a
forall a b. (a -> b) -> ParsecDSL s u m a -> ParsecDSL s u m b
forall s u (m :: * -> *) a b.
a -> ParsecDSL s u m b -> ParsecDSL s u m a
forall s u (m :: * -> *) a b.
(a -> b) -> ParsecDSL s u m a -> ParsecDSL s u m b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: forall a b. a -> ParsecDSL s u m b -> ParsecDSL s u m a
$c<$ :: forall s u (m :: * -> *) a b.
a -> ParsecDSL s u m b -> ParsecDSL s u m a
fmap :: forall a b. (a -> b) -> ParsecDSL s u m a -> ParsecDSL s u m b
$cfmap :: forall s u (m :: * -> *) a b.
(a -> b) -> ParsecDSL s u m a -> ParsecDSL s u m b
Functor, forall a. a -> ParsecDSL s u m a
forall a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m a
forall a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m b
forall a b.
ParsecDSL s u m (a -> b) -> ParsecDSL s u m a -> ParsecDSL s u m b
forall a b c.
(a -> b -> c)
-> ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m c
forall s u (m :: * -> *). Functor (ParsecDSL s u m)
forall s u (m :: * -> *) a. a -> ParsecDSL s u m a
forall s u (m :: * -> *) a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m a
forall s u (m :: * -> *) a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m b
forall s u (m :: * -> *) a b.
ParsecDSL s u m (a -> b) -> ParsecDSL s u m a -> ParsecDSL s u m b
forall s u (m :: * -> *) a b c.
(a -> b -> c)
-> ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m c
forall (f :: * -> *).
Functor f
-> (forall a. a -> f a)
-> (forall a b. f (a -> b) -> f a -> f b)
-> (forall a b c. (a -> b -> c) -> f a -> f b -> f c)
-> (forall a b. f a -> f b -> f b)
-> (forall a b. f a -> f b -> f a)
-> Applicative f
<* :: forall a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m a
$c<* :: forall s u (m :: * -> *) a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m a
*> :: forall a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m b
$c*> :: forall s u (m :: * -> *) a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m b
liftA2 :: forall a b c.
(a -> b -> c)
-> ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m c
$cliftA2 :: forall s u (m :: * -> *) a b c.
(a -> b -> c)
-> ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m c
<*> :: forall a b.
ParsecDSL s u m (a -> b) -> ParsecDSL s u m a -> ParsecDSL s u m b
$c<*> :: forall s u (m :: * -> *) a b.
ParsecDSL s u m (a -> b) -> ParsecDSL s u m a -> ParsecDSL s u m b
pure :: forall a. a -> ParsecDSL s u m a
$cpure :: forall s u (m :: * -> *) a. a -> ParsecDSL s u m a
Applicative, forall a. a -> ParsecDSL s u m a
forall a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m b
forall a b.
ParsecDSL s u m a -> (a -> ParsecDSL s u m b) -> ParsecDSL s u m b
forall s u (m :: * -> *). Applicative (ParsecDSL s u m)
forall s u (m :: * -> *) a. a -> ParsecDSL s u m a
forall s u (m :: * -> *) a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m b
forall s u (m :: * -> *) a b.
ParsecDSL s u m a -> (a -> ParsecDSL s u m b) -> ParsecDSL s u m b
forall (m :: * -> *).
Applicative m
-> (forall a b. m a -> (a -> m b) -> m b)
-> (forall a b. m a -> m b -> m b)
-> (forall a. a -> m a)
-> Monad m
return :: forall a. a -> ParsecDSL s u m a
$creturn :: forall s u (m :: * -> *) a. a -> ParsecDSL s u m a
>> :: forall a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m b
$c>> :: forall s u (m :: * -> *) a b.
ParsecDSL s u m a -> ParsecDSL s u m b -> ParsecDSL s u m b
>>= :: forall a b.
ParsecDSL s u m a -> (a -> ParsecDSL s u m b) -> ParsecDSL s u m b
$c>>= :: forall s u (m :: * -> *) a b.
ParsecDSL s u m a -> (a -> ParsecDSL s u m b) -> ParsecDSL s u m b
Monad)

instance Alternative (ParsecDSL s u m) where
    empty :: forall a. ParsecDSL s u m a
empty = forall s u (m :: * -> *) a. ParsecDSL s u m a
parserZero
    <|> :: forall a.
ParsecDSL s u m a -> ParsecDSL s u m a -> ParsecDSL s u m a
(<|>) = forall s u (m :: * -> *) a.
ParsecDSL s u m a -> ParsecDSL s u m a -> ParsecDSL s u m a
parserPlus

#if __GLASGOW_HASKELL__ >= 808
instance MonadFail (ParsecDSL s u m) where
    fail :: forall a. String -> ParsecDSL s u m a
fail String
_ = forall s u (m :: * -> *) a. ParsecDSL s u m a
parserZero
#endif

instance MonadPlus (ParsecDSL s u m) where
    mzero :: forall a. ParsecDSL s u m a
mzero = forall s u (m :: * -> *) a. ParsecDSL s u m a
parserZero
    mplus :: forall a.
ParsecDSL s u m a -> ParsecDSL s u m a -> ParsecDSL s u m a
mplus = forall s u (m :: * -> *) a.
ParsecDSL s u m a -> ParsecDSL s u m a -> ParsecDSL s u m a
parserPlus

instance (MonadReader r m) => MonadReader r (ParsecDSL s u m) where
    ask :: ParsecDSL s u m r
ask = forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall r (m :: * -> *). MonadReader r m => m r
ask
    -- local f p = ParsecDSL $ \s -> local f (runParsecDSL p s)
    local :: forall a. (r -> r) -> ParsecDSL s u m a -> ParsecDSL s u m a
local r -> r
f ParsecDSL s u m a
p = forall a. HasCallStack => String -> a
error String
"NYI Free.MonadReader"

-- I'm presuming the user might want a separate, non-backtracking
-- state aside from the Parsec user state.
instance (MonadState s m) => MonadState s (ParsecDSL s' u m) where
    get :: ParsecDSL s' u m s
get = forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall s (m :: * -> *). MonadState s m => m s
get
    put :: s -> ParsecDSL s' u m ()
put = forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s (m :: * -> *). MonadState s m => s -> m ()
put

instance (MonadCont m) => MonadCont (ParsecDSL s u m) where
    callCC :: forall a b.
((a -> ParsecDSL s u m b) -> ParsecDSL s u m a)
-> ParsecDSL s u m a
callCC (a -> ParsecDSL s u m b) -> ParsecDSL s u m a
f = forall a. HasCallStack => String -> a
error String
"NYI Free.callCC"

instance (MonadError e m) => MonadError e (ParsecDSL s u m) where
    throwError :: forall a. e -> ParsecDSL s u m a
throwError = forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError
    ParsecDSL s u m a
p catchError :: forall a.
ParsecDSL s u m a -> (e -> ParsecDSL s u m a) -> ParsecDSL s u m a
`catchError` e -> ParsecDSL s u m a
h = forall a. HasCallStack => String -> a
error String
"NYI Free.catchError"

instance MonadTrans (ParsecDSL s u) where
    lift :: forall (m :: * -> *) a. Monad m => m a -> ParsecDSL s u m a
lift m a
m = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a. m a -> (a -> r) -> ParsecF s u m r
Peffect m a
m forall a. a -> a
id

instance MonadIO m => MonadIO (ParsecDSL s u m) where
    liftIO :: forall a. IO a -> ParsecDSL s u m a
liftIO = forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO

data ParsecF s u m r
    = forall a. Plifted (P.ParsecT s u m a) (a -> r)
    | Preturn r
    | Pbind r
    | forall a. Peffect (m a) (a -> r)
    | forall a. Pquiet (ParsecDSL s u m a) (a -> r)

    | PgetState (u -> r)
    | PputState u r
    | PmodifyState (u -> u) r
    | PgetPosition (P.SourcePos -> r)
    | PsetPosition P.SourcePos r
    | PgetInput (s -> r)
    | PsetInput s r
    | PgetParserState (P.State s u -> r)
    | PsetParserState (P.State s u) (P.State s u -> r)
    | PupdateParserState (P.State s u -> P.State s u) (P.State s u -> r)

    | forall t. (P.Stream s m t, Eq t)
      => Ptokens ([t] -> String) (P.SourcePos -> [t] -> P.SourcePos)
                [t] ([t] -> r)
    | forall t a. P.Stream s m t
      => PtokenPrimEx (t -> String) (P.SourcePos -> t -> s -> P.SourcePos)
                     (Maybe (P.SourcePos -> t -> s -> u -> u))
                     (t -> Maybe a) (a -> r)

    | P.Stream s m Char => PalphaNum (Char -> r)
    | P.Stream s m Char => PanyChar (Char -> r)
    | forall t. (Show t, P.Stream s m t) => PanyToken (t -> r)
    | P.Stream s m Char => Pchar Char r
    | P.Stream s m Char => Pcrlf (Char -> r)
    | P.Stream s m Char => Pdigit (Char -> r)
    | P.Stream s m Char => PendOfLine (Char -> r)
    | forall t. (Show t, P.Stream s m t) => Peof r
    | P.Stream s m Char => PhexDigit (Char -> r)
    | P.Stream s m Char => Pletter (Char -> r)
    | P.Stream s m Char => Plower (Char -> r)
    | P.Stream s m Char => Pnewline (Char -> r)
    | P.Stream s m Char => PnoneOf [Char] (Char -> r)
    | P.Stream s m Char => PoctDigit (Char -> r)
    | P.Stream s m Char => PoneOf [Char] (Char -> r)
    | PparserFail String
    | PparserZero
    | P.Stream s m Char => Psatisfy (Char -> Bool) (Char -> r)
    | P.Stream s m Char => Pspace (Char -> r)
    | P.Stream s m Char => Pspaces r
    | P.Stream s m Char => Pstring String r
    | P.Stream s m Char => Ptab (Char -> r)
    | P.Stream s m Char => Pupper (Char -> r)
    | Punexpected String

    | forall a. PparserPlus (ParsecDSL s u m a) (ParsecDSL s u m a) (a -> r)
    | forall a. Plabel (ParsecDSL s u m a) String (a -> r)
    | forall a. Plabels (ParsecDSL s u m a) [String] (a -> r)
    | forall a. Ptry (ParsecDSL s u m a) (a -> r)
    | forall a. Pchainl (ParsecDSL s u m a) (ParsecDSL s u m (a -> a -> a)) a (a -> r)
    | forall a. Pchainl1 (ParsecDSL s u m a) (ParsecDSL s u m (a -> a -> a)) (a -> r)
    | forall a. Pchainr (ParsecDSL s u m a) (ParsecDSL s u m (a -> a -> a)) a (a -> r)
    | forall a. Pchainr1 (ParsecDSL s u m a) (ParsecDSL s u m (a -> a -> a)) (a -> r)
    | forall a. Pchoice [ParsecDSL s u m a] (a -> r)
    | forall a. Pcount Int (ParsecDSL s u m a) ([a] -> r)
    | forall a. PlookAhead (ParsecDSL s u m a) (a -> r)
    | forall a. Pmany (ParsecDSL s u m a) ([a] -> r)
    | forall a. Pmany1 (ParsecDSL s u m a) ([a] -> r)
    | forall a. PmanyAccum (a -> [a] -> [a]) (ParsecDSL s u m a) ([a] -> r)
    | forall a. Show a => PnotFollowedBy (ParsecDSL s u m a) r
    | forall a. Poption a (ParsecDSL s u m a) (a -> r)
    | forall a. PoptionMaybe (ParsecDSL s u m a) (Maybe a -> r)
    | forall a. Poptional (ParsecDSL s u m a) r
    | forall a. PskipMany (ParsecDSL s u m a) r
    | forall a. PskipMany1 (ParsecDSL s u m a) r
    | forall end a. PmanyTill (ParsecDSL s u m a) (ParsecDSL s u m end) ([a] -> r)
    | forall open close a. Pbetween (ParsecDSL s u m open) (ParsecDSL s u m close)
                               (ParsecDSL s u m a) (a -> r)
    | forall sep a. PendBy (ParsecDSL s u m a) (ParsecDSL s u m sep) ([a] -> r)
    | forall sep a. PendBy1 (ParsecDSL s u m a) (ParsecDSL s u m sep) ([a] -> r)
    | forall sep a. PsepBy (ParsecDSL s u m a) (ParsecDSL s u m sep) ([a] -> r)
    | forall sep a. PsepBy1 (ParsecDSL s u m a) (ParsecDSL s u m sep) ([a] -> r)
    | forall sep a. PsepEndBy (ParsecDSL s u m a) (ParsecDSL s u m sep) ([a] -> r)
    | forall sep a. PsepEndBy1 (ParsecDSL s u m a) (ParsecDSL s u m sep) ([a] -> r)

    | Pidentifier (ParsecDSL s u m String) (String -> r)
    | Preserved (ParsecDSL s u m ()) String r
    | Poperator (ParsecDSL s u m String) (String -> r)
    | PreservedOp (ParsecDSL s u m ()) String r
    | PcharLiteral (ParsecDSL s u m Char) (Char -> r)
    | PstringLiteral (ParsecDSL s u m String) (String -> r)
    | Pnatural (ParsecDSL s u m Integer) (Integer -> r)
    | Pinteger (ParsecDSL s u m Integer) (Integer -> r)
    | Pfloat (ParsecDSL s u m Double) (Double -> r)
    | PnaturalOrFloat (ParsecDSL s u m (Either Integer Double))
                      (Either Integer Double -> r)
    | Pdecimal (ParsecDSL s u m Integer) (Integer -> r)
    | Phexadecimal (ParsecDSL s u m Integer) (Integer -> r)
    | Poctal (ParsecDSL s u m Integer) (Integer -> r)
    | Psymbol (ParsecDSL s u m String) String (String -> r)
    | forall a. Plexeme (ParsecDSL s u m a) (a -> r)
    | PwhiteSpace (ParsecDSL s u m ()) r
    | forall a. Pparens (ParsecDSL s u m a) (a -> r)
    | forall a. Pbraces (ParsecDSL s u m a) (a -> r)
    | forall a. Pangles (ParsecDSL s u m a) (a -> r)
    | forall a. Pbrackets (ParsecDSL s u m a) (a -> r)
    | forall a. Psquares (ParsecDSL s u m a) (a -> r)
    | Psemi (ParsecDSL s u m String) (String -> r)
    | Pcomma (ParsecDSL s u m String) (String -> r)
    | Pcolon (ParsecDSL s u m String) (String -> r)
    | Pdot (ParsecDSL s u m String) (String -> r)
    | forall a. PsemiSep (ParsecDSL s u m [a]) ([a] -> r)
    | forall a. PsemiSep1 (ParsecDSL s u m [a]) ([a] -> r)
    | forall a. PcommaSep (ParsecDSL s u m [a]) ([a] -> r)
    | forall a. PcommaSep1 (ParsecDSL s u m [a]) ([a] -> r)

instance Functor (ParsecF s u m) where
    fmap :: forall a b. (a -> b) -> ParsecF s u m a -> ParsecF s u m b
fmap a -> b
f = \case
        Plifted ParsecT s u m a
p a -> a
k            -> forall s u (m :: * -> *) r a.
ParsecT s u m a -> (a -> r) -> ParsecF s u m r
Plifted ParsecT s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Preturn a
x              -> forall s u (m :: * -> *) r. r -> ParsecF s u m r
Preturn (a -> b
f a
x)
        Pbind a
r                -> forall s u (m :: * -> *) r. r -> ParsecF s u m r
Pbind (a -> b
f a
r)
        Peffect m a
m a -> a
k            -> forall s u (m :: * -> *) r a. m a -> (a -> r) -> ParsecF s u m r
Peffect m a
m (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pquiet ParsecDSL s u m a
p a -> a
k             -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Pquiet ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)

        PgetState u -> a
k            -> forall s u (m :: * -> *) r. (u -> r) -> ParsecF s u m r
PgetState (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. u -> a
k)
        PputState u
u a
r          -> forall s u (m :: * -> *) r. u -> r -> ParsecF s u m r
PputState u
u (a -> b
f a
r)
        PmodifyState u -> u
g a
r       -> forall s u (m :: * -> *) r. (u -> u) -> r -> ParsecF s u m r
PmodifyState u -> u
g (a -> b
f a
r)
        PgetPosition SourcePos -> a
k         -> forall s u (m :: * -> *) r. (SourcePos -> r) -> ParsecF s u m r
PgetPosition (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. SourcePos -> a
k)
        PsetPosition SourcePos
p a
r       -> forall s u (m :: * -> *) r. SourcePos -> r -> ParsecF s u m r
PsetPosition SourcePos
p (a -> b
f a
r)
        PgetInput s -> a
k            -> forall s u (m :: * -> *) r. (s -> r) -> ParsecF s u m r
PgetInput (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. s -> a
k)
        PsetInput s
s a
r          -> forall s u (m :: * -> *) r. s -> r -> ParsecF s u m r
PsetInput s
s (a -> b
f a
r)
        PgetParserState State s u -> a
k      -> forall s u (m :: * -> *) r. (State s u -> r) -> ParsecF s u m r
PgetParserState (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. State s u -> a
k)
        PsetParserState State s u
s State s u -> a
k    -> forall s u (m :: * -> *) r.
State s u -> (State s u -> r) -> ParsecF s u m r
PsetParserState State s u
s (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. State s u -> a
k)
        PupdateParserState State s u -> State s u
g State s u -> a
k -> forall s u (m :: * -> *) r.
(State s u -> State s u) -> (State s u -> r) -> ParsecF s u m r
PupdateParserState State s u -> State s u
g (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. State s u -> a
k)

        Ptokens [t] -> String
a SourcePos -> [t] -> SourcePos
b [t]
c [t] -> a
k        -> forall s u (m :: * -> *) r t.
(Stream s m t, Eq t) =>
([t] -> String)
-> (SourcePos -> [t] -> SourcePos)
-> [t]
-> ([t] -> r)
-> ParsecF s u m r
Ptokens [t] -> String
a SourcePos -> [t] -> SourcePos
b [t]
c (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [t] -> a
k)
        PtokenPrimEx t -> String
a SourcePos -> t -> s -> SourcePos
b Maybe (SourcePos -> t -> s -> u -> u)
c t -> Maybe a
d a -> a
k -> forall s u (m :: * -> *) r t a.
Stream s m t =>
(t -> String)
-> (SourcePos -> t -> s -> SourcePos)
-> Maybe (SourcePos -> t -> s -> u -> u)
-> (t -> Maybe a)
-> (a -> r)
-> ParsecF s u m r
PtokenPrimEx t -> String
a SourcePos -> t -> s -> SourcePos
b Maybe (SourcePos -> t -> s -> u -> u)
c t -> Maybe a
d (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)

        PalphaNum Char -> a
k            -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
PalphaNum (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        PanyChar Char -> a
k             -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
PanyChar (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        PanyToken t -> a
k            -> forall s u (m :: * -> *) r t.
(Show t, Stream s m t) =>
(t -> r) -> ParsecF s u m r
PanyToken (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. t -> a
k)
        Pchar Char
x a
r              -> forall s u (m :: * -> *) r.
Stream s m Char =>
Char -> r -> ParsecF s u m r
Pchar Char
x (a -> b
f a
r)
        Pcrlf Char -> a
k                -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pcrlf (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        Pdigit Char -> a
k               -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pdigit (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        PendOfLine Char -> a
k           -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
PendOfLine (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        Peof a
r                 -> forall s u (m :: * -> *) r t.
(Show t, Stream s m t) =>
r -> ParsecF s u m r
Peof (a -> b
f a
r)
        PhexDigit Char -> a
k            -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
PhexDigit (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        Pletter Char -> a
k              -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pletter (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        Plower Char -> a
k               -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Plower (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        Pnewline Char -> a
k             -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pnewline (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        PnoneOf String
xs Char -> a
k           -> forall s u (m :: * -> *) r.
Stream s m Char =>
String -> (Char -> r) -> ParsecF s u m r
PnoneOf String
xs (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        PoctDigit Char -> a
k            -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
PoctDigit (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        PoneOf String
xs Char -> a
k            -> forall s u (m :: * -> *) r.
Stream s m Char =>
String -> (Char -> r) -> ParsecF s u m r
PoneOf String
xs (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        PparserFail String
s          -> forall s u (m :: * -> *) r. String -> ParsecF s u m r
PparserFail String
s
        ParsecF s u m a
PparserZero            -> forall s u (m :: * -> *) r. ParsecF s u m r
PparserZero
        Psatisfy Char -> Bool
g Char -> a
k           -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> Bool) -> (Char -> r) -> ParsecF s u m r
Psatisfy Char -> Bool
g (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        Pspace Char -> a
k               -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pspace (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        Pspaces a
r              -> forall s u (m :: * -> *) r. Stream s m Char => r -> ParsecF s u m r
Pspaces (a -> b
f a
r)
        Pstring String
x a
r            -> forall s u (m :: * -> *) r.
Stream s m Char =>
String -> r -> ParsecF s u m r
Pstring String
x (a -> b
f a
r)
        Ptab Char -> a
k                 -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Ptab (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        Pupper Char -> a
k               -> forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pupper (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        Punexpected String
s          -> forall s u (m :: * -> *) r. String -> ParsecF s u m r
Punexpected String
s

        PparserPlus ParsecDSL s u m a
p ParsecDSL s u m a
q a -> a
k      -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a
-> ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
PparserPlus ParsecDSL s u m a
p ParsecDSL s u m a
q (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Plabel ParsecDSL s u m a
p String
a a -> a
k           -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> String -> (a -> r) -> ParsecF s u m r
Plabel ParsecDSL s u m a
p String
a (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Plabels ParsecDSL s u m a
p [String]
a a -> a
k          -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> [String] -> (a -> r) -> ParsecF s u m r
Plabels ParsecDSL s u m a
p [String]
a (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Ptry ParsecDSL s u m a
p a -> a
k               -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Ptry ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pchainl ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q a
a a -> a
k        -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a)
-> a
-> (a -> r)
-> ParsecF s u m r
Pchainl ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q a
a (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pchainl1 ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q a -> a
k         -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a) -> (a -> r) -> ParsecF s u m r
Pchainl1 ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pchainr ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q a
a a -> a
k        -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a)
-> a
-> (a -> r)
-> ParsecF s u m r
Pchainr ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q a
a (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pchainr1 ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q a -> a
k         -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a) -> (a -> r) -> ParsecF s u m r
Pchainr1 ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pchoice [ParsecDSL s u m a]
xs a -> a
k           -> forall s u (m :: * -> *) r a.
[ParsecDSL s u m a] -> (a -> r) -> ParsecF s u m r
Pchoice [ParsecDSL s u m a]
xs (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pcount Int
n ParsecDSL s u m a
p [a] -> a
k           -> forall s u (m :: * -> *) r a.
Int -> ParsecDSL s u m a -> ([a] -> r) -> ParsecF s u m r
Pcount Int
n ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PlookAhead ParsecDSL s u m a
p a -> a
k         -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
PlookAhead ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pmany ParsecDSL s u m a
p [a] -> a
k              -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> ([a] -> r) -> ParsecF s u m r
Pmany ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        Pmany1 ParsecDSL s u m a
p [a] -> a
k             -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> ([a] -> r) -> ParsecF s u m r
Pmany1 ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PmanyAccum a -> [a] -> [a]
g ParsecDSL s u m a
p [a] -> a
k       -> forall s u (m :: * -> *) r a.
(a -> [a] -> [a])
-> ParsecDSL s u m a -> ([a] -> r) -> ParsecF s u m r
PmanyAccum a -> [a] -> [a]
g ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PnotFollowedBy ParsecDSL s u m a
p a
r     -> forall s u (m :: * -> *) r a.
Show a =>
ParsecDSL s u m a -> r -> ParsecF s u m r
PnotFollowedBy ParsecDSL s u m a
p (a -> b
f a
r)
        Poption a
a ParsecDSL s u m a
p a -> a
k          -> forall s u (m :: * -> *) r a.
a -> ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Poption a
a ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        PoptionMaybe ParsecDSL s u m a
p Maybe a -> a
k       -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (Maybe a -> r) -> ParsecF s u m r
PoptionMaybe ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe a -> a
k)
        Poptional ParsecDSL s u m a
p a
r          -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> r -> ParsecF s u m r
Poptional ParsecDSL s u m a
p (a -> b
f a
r)
        PskipMany ParsecDSL s u m a
p a
r          -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> r -> ParsecF s u m r
PskipMany ParsecDSL s u m a
p (a -> b
f a
r)
        PskipMany1 ParsecDSL s u m a
p a
r         -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> r -> ParsecF s u m r
PskipMany1 ParsecDSL s u m a
p (a -> b
f a
r)
        PmanyTill ParsecDSL s u m a
p ParsecDSL s u m end
e [a] -> a
k        -> forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PmanyTill ParsecDSL s u m a
p ParsecDSL s u m end
e (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        Pbetween ParsecDSL s u m open
o ParsecDSL s u m close
c ParsecDSL s u m a
p a -> a
k       -> forall s u (m :: * -> *) r open close a.
ParsecDSL s u m open
-> ParsecDSL s u m close
-> ParsecDSL s u m a
-> (a -> r)
-> ParsecF s u m r
Pbetween ParsecDSL s u m open
o ParsecDSL s u m close
c ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        PendBy ParsecDSL s u m a
p ParsecDSL s u m sep
s [a] -> a
k           -> forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PendBy ParsecDSL s u m a
p ParsecDSL s u m sep
s (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PendBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s [a] -> a
k          -> forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PendBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PsepBy ParsecDSL s u m a
p ParsecDSL s u m sep
s [a] -> a
k           -> forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PsepBy ParsecDSL s u m a
p ParsecDSL s u m sep
s (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PsepBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s [a] -> a
k          -> forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PsepBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PsepEndBy ParsecDSL s u m a
p ParsecDSL s u m sep
s [a] -> a
k        -> forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PsepEndBy ParsecDSL s u m a
p ParsecDSL s u m sep
s (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PsepEndBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s [a] -> a
k       -> forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PsepEndBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)

        Pidentifier ParsecDSL s u m String
t String -> a
k        -> forall s u (m :: * -> *) r.
ParsecDSL s u m String -> (String -> r) -> ParsecF s u m r
Pidentifier ParsecDSL s u m String
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> a
k)
        Preserved ParsecDSL s u m ()
t String
s a
r        -> forall s u (m :: * -> *) r.
ParsecDSL s u m () -> String -> r -> ParsecF s u m r
Preserved ParsecDSL s u m ()
t String
s (a -> b
f a
r)
        Poperator ParsecDSL s u m String
t String -> a
k          -> forall s u (m :: * -> *) r.
ParsecDSL s u m String -> (String -> r) -> ParsecF s u m r
Poperator ParsecDSL s u m String
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> a
k)
        PreservedOp ParsecDSL s u m ()
t String
s a
r      -> forall s u (m :: * -> *) r.
ParsecDSL s u m () -> String -> r -> ParsecF s u m r
PreservedOp ParsecDSL s u m ()
t String
s (a -> b
f a
r)
        PcharLiteral ParsecDSL s u m Char
t Char -> a
k       -> forall s u (m :: * -> *) r.
ParsecDSL s u m Char -> (Char -> r) -> ParsecF s u m r
PcharLiteral ParsecDSL s u m Char
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> a
k)
        PstringLiteral ParsecDSL s u m String
t String -> a
k     -> forall s u (m :: * -> *) r.
ParsecDSL s u m String -> (String -> r) -> ParsecF s u m r
PstringLiteral ParsecDSL s u m String
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> a
k)
        Pnatural ParsecDSL s u m Integer
t Integer -> a
k           -> forall s u (m :: * -> *) r.
ParsecDSL s u m Integer -> (Integer -> r) -> ParsecF s u m r
Pnatural ParsecDSL s u m Integer
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> a
k)
        Pinteger ParsecDSL s u m Integer
t Integer -> a
k           -> forall s u (m :: * -> *) r.
ParsecDSL s u m Integer -> (Integer -> r) -> ParsecF s u m r
Pinteger ParsecDSL s u m Integer
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> a
k)
        Pfloat ParsecDSL s u m Double
t Double -> a
k             -> forall s u (m :: * -> *) r.
ParsecDSL s u m Double -> (Double -> r) -> ParsecF s u m r
Pfloat ParsecDSL s u m Double
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Double -> a
k)
        PnaturalOrFloat ParsecDSL s u m (Either Integer Double)
t Either Integer Double -> a
k    -> forall s u (m :: * -> *) r.
ParsecDSL s u m (Either Integer Double)
-> (Either Integer Double -> r) -> ParsecF s u m r
PnaturalOrFloat ParsecDSL s u m (Either Integer Double)
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Either Integer Double -> a
k)
        Pdecimal ParsecDSL s u m Integer
t Integer -> a
k           -> forall s u (m :: * -> *) r.
ParsecDSL s u m Integer -> (Integer -> r) -> ParsecF s u m r
Pdecimal ParsecDSL s u m Integer
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> a
k)
        Phexadecimal ParsecDSL s u m Integer
t Integer -> a
k       -> forall s u (m :: * -> *) r.
ParsecDSL s u m Integer -> (Integer -> r) -> ParsecF s u m r
Phexadecimal ParsecDSL s u m Integer
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> a
k)
        Poctal ParsecDSL s u m Integer
t Integer -> a
k             -> forall s u (m :: * -> *) r.
ParsecDSL s u m Integer -> (Integer -> r) -> ParsecF s u m r
Poctal ParsecDSL s u m Integer
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> a
k)
        Psymbol ParsecDSL s u m String
t String
s String -> a
k          -> forall s u (m :: * -> *) r.
ParsecDSL s u m String
-> String -> (String -> r) -> ParsecF s u m r
Psymbol ParsecDSL s u m String
t String
s (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> a
k)
        Plexeme ParsecDSL s u m a
p a -> a
k            -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Plexeme ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        PwhiteSpace ParsecDSL s u m ()
t a
r        -> forall s u (m :: * -> *) r.
ParsecDSL s u m () -> r -> ParsecF s u m r
PwhiteSpace ParsecDSL s u m ()
t (a -> b
f a
r)
        Pparens ParsecDSL s u m a
p a -> a
k            -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Pparens ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pbraces ParsecDSL s u m a
p a -> a
k            -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Pbraces ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pangles ParsecDSL s u m a
p a -> a
k            -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Pangles ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Pbrackets ParsecDSL s u m a
p a -> a
k          -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Pbrackets ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Psquares ParsecDSL s u m a
p a -> a
k           -> forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Psquares ParsecDSL s u m a
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a
k)
        Psemi ParsecDSL s u m String
t String -> a
k              -> forall s u (m :: * -> *) r.
ParsecDSL s u m String -> (String -> r) -> ParsecF s u m r
Psemi ParsecDSL s u m String
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> a
k)
        Pcomma ParsecDSL s u m String
t String -> a
k             -> forall s u (m :: * -> *) r.
ParsecDSL s u m String -> (String -> r) -> ParsecF s u m r
Pcomma ParsecDSL s u m String
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> a
k)
        Pcolon ParsecDSL s u m String
t String -> a
k             -> forall s u (m :: * -> *) r.
ParsecDSL s u m String -> (String -> r) -> ParsecF s u m r
Pcolon ParsecDSL s u m String
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> a
k)
        Pdot ParsecDSL s u m String
t String -> a
k               -> forall s u (m :: * -> *) r.
ParsecDSL s u m String -> (String -> r) -> ParsecF s u m r
Pdot ParsecDSL s u m String
t (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> a
k)
        PsemiSep ParsecDSL s u m [a]
p [a] -> a
k           -> forall s u (m :: * -> *) r a.
ParsecDSL s u m [a] -> ([a] -> r) -> ParsecF s u m r
PsemiSep ParsecDSL s u m [a]
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PsemiSep1 ParsecDSL s u m [a]
p [a] -> a
k          -> forall s u (m :: * -> *) r a.
ParsecDSL s u m [a] -> ([a] -> r) -> ParsecF s u m r
PsemiSep1 ParsecDSL s u m [a]
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PcommaSep ParsecDSL s u m [a]
p [a] -> a
k          -> forall s u (m :: * -> *) r a.
ParsecDSL s u m [a] -> ([a] -> r) -> ParsecF s u m r
PcommaSep ParsecDSL s u m [a]
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)
        PcommaSep1 ParsecDSL s u m [a]
p [a] -> a
k         -> forall s u (m :: * -> *) r a.
ParsecDSL s u m [a] -> ([a] -> r) -> ParsecF s u m r
PcommaSep1 ParsecDSL s u m [a]
p (a -> b
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> a
k)

instance Show (ParsecF s u m r) where
    show :: ParsecF s u m r -> String
show = \case
        Plifted ParsecT s u m a
_ a -> r
_            -> String
"lifted"
        Preturn r
_              -> String
"return"
        Pbind r
_                -> String
"bind"
        Peffect m a
_ a -> r
_            -> String
"effect"
        Pquiet ParsecDSL s u m a
_ a -> r
_             -> String
"quiet"

        PgetState u -> r
_            -> String
"getState"
        PputState u
_ r
_          -> String
"putState"
        PmodifyState u -> u
_ r
_       -> String
"modifyState"
        PgetPosition SourcePos -> r
_         -> String
"getPosition"
        PsetPosition SourcePos
_ r
_       -> String
"setPosition"
        PgetInput s -> r
_            -> String
"getInput"
        PsetInput s
_ r
_          -> String
"setInput"
        PgetParserState State s u -> r
_      -> String
"getParserState"
        PsetParserState State s u
_ State s u -> r
_    -> String
"setParserState"
        PupdateParserState State s u -> State s u
_ State s u -> r
_ -> String
"updateParserState"

        Ptokens [t] -> String
_ SourcePos -> [t] -> SourcePos
_ [t]
_ [t] -> r
_        -> String
"tokens"
        PtokenPrimEx t -> String
_ SourcePos -> t -> s -> SourcePos
_ Maybe (SourcePos -> t -> s -> u -> u)
_ t -> Maybe a
_ a -> r
_ -> String
"tokenPrim"

        PalphaNum Char -> r
_            -> String
"alphaNum"
        PanyChar Char -> r
_             -> String
"anyChar"
        PanyToken t -> r
_            -> String
"anyToken"
        Pchar Char
x r
_              -> String
"char " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show Char
x
        Pcrlf Char -> r
_                -> String
"crlf"
        Pdigit Char -> r
_               -> String
"digit"
        PendOfLine Char -> r
_           -> String
"endOfLine"
        Peof r
_                 -> String
"eof"
        PhexDigit Char -> r
_            -> String
"hexDigit"
        Pletter Char -> r
_              -> String
"letter"
        Plower Char -> r
_               -> String
"lower"
        Pnewline Char -> r
_             -> String
"newline"
        PnoneOf String
xs Char -> r
_           -> String
"noneOf " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show String
xs
        PoctDigit Char -> r
_            -> String
"octDigit"
        PoneOf String
xs Char -> r
_            -> String
"oneOf " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show String
xs
        PparserFail String
s          -> String
"parserFail " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show String
s
        ParsecF s u m r
PparserZero            -> String
"parserZero"
        Psatisfy Char -> Bool
_ Char -> r
_           -> String
"satisfy"
        Pspace Char -> r
_               -> String
"space"
        Pspaces r
_              -> String
"spaces"
        Pstring String
x r
_            -> String
"string " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show String
x
        Ptab Char -> r
_                 -> String
"tab"
        Pupper Char -> r
_               -> String
"upper"
        Punexpected String
s          -> String
"unexpected " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show String
s

        PparserPlus ParsecDSL s u m a
_ ParsecDSL s u m a
_ a -> r
_      -> String
"parserPlus"
        Plabel ParsecDSL s u m a
_ String
a a -> r
_           -> String
"label " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show String
a
        Plabels ParsecDSL s u m a
_ [String]
a a -> r
_          -> String
"labels " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show [String]
a
        Ptry ParsecDSL s u m a
_ a -> r
_               -> String
"try"
        Pchainl ParsecDSL s u m a
_ ParsecDSL s u m (a -> a -> a)
_ a
_ a -> r
_        -> String
"chainl"
        Pchainl1 ParsecDSL s u m a
_ ParsecDSL s u m (a -> a -> a)
_ a -> r
_         -> String
"chainl1"
        Pchainr ParsecDSL s u m a
_ ParsecDSL s u m (a -> a -> a)
_ a
_ a -> r
_        -> String
"chainr"
        Pchainr1 ParsecDSL s u m a
_ ParsecDSL s u m (a -> a -> a)
_ a -> r
_         -> String
"chainr1"
        Pchoice [ParsecDSL s u m a]
_ a -> r
_            -> String
"choice"
        Pcount Int
n ParsecDSL s u m a
_ [a] -> r
_           -> String
"count " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show Int
n
        PlookAhead ParsecDSL s u m a
_ a -> r
_         -> String
"lookAhead"
        Pmany ParsecDSL s u m a
_ [a] -> r
_              -> String
"many"
        Pmany1 ParsecDSL s u m a
_ [a] -> r
_             -> String
"many1"
        PmanyAccum a -> [a] -> [a]
_ ParsecDSL s u m a
_ [a] -> r
_       -> String
"manyAccum"
        PnotFollowedBy ParsecDSL s u m a
_ r
_     -> String
"notFollowedBy"
        Poption a
_ ParsecDSL s u m a
_ a -> r
_          -> String
"option"
        PoptionMaybe ParsecDSL s u m a
_ Maybe a -> r
_       -> String
"optionMaybe"
        Poptional ParsecDSL s u m a
_ r
_          -> String
"optional"
        PskipMany ParsecDSL s u m a
_ r
_          -> String
"skipMany"
        PskipMany1 ParsecDSL s u m a
_ r
_         -> String
"skipMany1"
        PmanyTill ParsecDSL s u m a
_ ParsecDSL s u m end
_ [a] -> r
_        -> String
"manyTill"
        Pbetween ParsecDSL s u m open
_ ParsecDSL s u m close
_ ParsecDSL s u m a
_ a -> r
_       -> String
"between"
        PendBy ParsecDSL s u m a
_ ParsecDSL s u m sep
_ [a] -> r
_           -> String
"endBy"
        PendBy1 ParsecDSL s u m a
_ ParsecDSL s u m sep
_ [a] -> r
_          -> String
"endBy1"
        PsepBy ParsecDSL s u m a
_ ParsecDSL s u m sep
_ [a] -> r
_           -> String
"sepBy"
        PsepBy1 ParsecDSL s u m a
_ ParsecDSL s u m sep
_ [a] -> r
_          -> String
"sepBy1"
        PsepEndBy ParsecDSL s u m a
_ ParsecDSL s u m sep
_ [a] -> r
_        -> String
"sepEndBy"
        PsepEndBy1 ParsecDSL s u m a
_ ParsecDSL s u m sep
_ [a] -> r
_       -> String
"sepEndBy1"

        Pidentifier ParsecDSL s u m String
_ String -> r
_        -> String
"identifier"
        Preserved ParsecDSL s u m ()
_ String
s r
_        -> String
"reserved " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show String
s
        Poperator ParsecDSL s u m String
_ String -> r
_          -> String
"operator"
        PreservedOp ParsecDSL s u m ()
_ String
s r
_      -> String
"reservedOp " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show String
s
        PcharLiteral ParsecDSL s u m Char
_ Char -> r
_       -> String
"charLiteral"
        PstringLiteral ParsecDSL s u m String
_ String -> r
_     -> String
"stringLiteral"
        Pnatural ParsecDSL s u m Integer
_ Integer -> r
_           -> String
"natural"
        Pinteger ParsecDSL s u m Integer
_ Integer -> r
_           -> String
"integer"
        Pfloat ParsecDSL s u m Double
_ Double -> r
_             -> String
"float"
        PnaturalOrFloat ParsecDSL s u m (Either Integer Double)
_ Either Integer Double -> r
_    -> String
"naturalOrFloat"
        Pdecimal ParsecDSL s u m Integer
_ Integer -> r
_           -> String
"decimal"
        Phexadecimal ParsecDSL s u m Integer
_ Integer -> r
_       -> String
"hexadecimal"
        Poctal ParsecDSL s u m Integer
_ Integer -> r
_             -> String
"octal"
        Psymbol ParsecDSL s u m String
_ String
s String -> r
_          -> String
"symbol " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show String
s
        Plexeme ParsecDSL s u m a
_ a -> r
_            -> String
"lexeme"
        PwhiteSpace ParsecDSL s u m ()
_ r
_        -> String
"whiteSpace"
        Pparens ParsecDSL s u m a
_ a -> r
_            -> String
"parens"
        Pbraces ParsecDSL s u m a
_ a -> r
_            -> String
"braces"
        Pangles ParsecDSL s u m a
_ a -> r
_            -> String
"angles"
        Pbrackets ParsecDSL s u m a
_ a -> r
_          -> String
"brackets"
        Psquares ParsecDSL s u m a
_ a -> r
_           -> String
"squares"
        Psemi ParsecDSL s u m String
_ String -> r
_              -> String
"semi"
        Pcomma ParsecDSL s u m String
_ String -> r
_             -> String
"comma"
        Pcolon ParsecDSL s u m String
_ String -> r
_             -> String
"colon"
        Pdot ParsecDSL s u m String
_ String -> r
_               -> String
"dot"
        PsemiSep ParsecDSL s u m [a]
_ [a] -> r
_           -> String
"semiSep"
        PsemiSep1 ParsecDSL s u m [a]
_ [a] -> r
_          -> String
"semiSep1"
        PcommaSep ParsecDSL s u m [a]
_ [a] -> r
_          -> String
"commaSep"
        PcommaSep1 ParsecDSL s u m [a]
_ [a] -> r
_         -> String
"commaSep1"

liftF' :: ParsecF s u m a -> ParsecDSL s u m a
liftF' :: forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' ParsecF s u m a
x = forall s u (m :: * -> *) a.
Free (ParsecF s u m) a -> ParsecDSL s u m a
ParsecDSL forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *) a. f (Free f a) -> Free f a
Free (forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall (f :: * -> *) a. Applicative f => a -> f a
pure ParsecF s u m a
x)

lifted :: P.ParsecT s u m a -> ParsecDSL s u m a
lifted :: forall s u (m :: * -> *) a. ParsecT s u m a -> ParsecDSL s u m a
lifted ParsecT s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecT s u m a -> (a -> r) -> ParsecF s u m r
Plifted ParsecT s u m a
p forall a. a -> a
id

quiet :: ParsecDSL s u m a -> ParsecDSL s u m a
quiet :: forall s u (m :: * -> *) a. ParsecDSL s u m a -> ParsecDSL s u m a
quiet ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Pquiet ParsecDSL s u m a
p forall a. a -> a
id

getState :: ParsecDSL s u m u
getState :: forall s u (m :: * -> *). ParsecDSL s u m u
getState = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. (u -> r) -> ParsecF s u m r
PgetState forall a. a -> a
id

putState :: u -> ParsecDSL s u m ()
putState :: forall u s (m :: * -> *). u -> ParsecDSL s u m ()
putState u
u = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. u -> r -> ParsecF s u m r
PputState u
u ()

modifyState :: (u -> u) -> ParsecDSL s u m ()
modifyState :: forall u s (m :: * -> *). (u -> u) -> ParsecDSL s u m ()
modifyState u -> u
g = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. (u -> u) -> r -> ParsecF s u m r
PmodifyState u -> u
g ()

getPosition :: ParsecDSL s u m P.SourcePos
getPosition :: forall s u (m :: * -> *). ParsecDSL s u m SourcePos
getPosition = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. (SourcePos -> r) -> ParsecF s u m r
PgetPosition forall a. a -> a
id

setPosition :: P.SourcePos -> ParsecDSL s u m ()
setPosition :: forall s u (m :: * -> *). SourcePos -> ParsecDSL s u m ()
setPosition SourcePos
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. SourcePos -> r -> ParsecF s u m r
PsetPosition SourcePos
p ()

getInput :: ParsecDSL s u m s
getInput :: forall s u (m :: * -> *). ParsecDSL s u m s
getInput = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. (s -> r) -> ParsecF s u m r
PgetInput forall a. a -> a
id

setInput :: s -> ParsecDSL s u m ()
setInput :: forall s u (m :: * -> *). s -> ParsecDSL s u m ()
setInput s
s = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. s -> r -> ParsecF s u m r
PsetInput s
s ()

getParserState :: ParsecDSL s u m (P.State s u)
getParserState :: forall s u (m :: * -> *). ParsecDSL s u m (State s u)
getParserState = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. (State s u -> r) -> ParsecF s u m r
PgetParserState forall a. a -> a
id

setParserState :: P.State s u -> ParsecDSL s u m (P.State s u)
setParserState :: forall s u (m :: * -> *). State s u -> ParsecDSL s u m (State s u)
setParserState State s u
s = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
State s u -> (State s u -> r) -> ParsecF s u m r
PsetParserState State s u
s forall a. a -> a
id

updateParserState :: (P.State s u -> P.State s u)
                  -> ParsecDSL s u m (P.State s u)
updateParserState :: forall s u (m :: * -> *).
(State s u -> State s u) -> ParsecDSL s u m (State s u)
updateParserState State s u -> State s u
g = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
(State s u -> State s u) -> (State s u -> r) -> ParsecF s u m r
PupdateParserState State s u -> State s u
g forall a. a -> a
id

tokens :: (P.Stream s m t, Eq t)
       => ([t] -> String)      -- Pretty print a list of tokens
       -> (P.SourcePos -> [t] -> P.SourcePos)
       -> [t]                  -- List of tokens to parse
       -> ParsecDSL s u m [t]
tokens :: forall s (m :: * -> *) t u.
(Stream s m t, Eq t) =>
([t] -> String)
-> (SourcePos -> [t] -> SourcePos) -> [t] -> ParsecDSL s u m [t]
tokens [t] -> String
a SourcePos -> [t] -> SourcePos
b [t]
c = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r t.
(Stream s m t, Eq t) =>
([t] -> String)
-> (SourcePos -> [t] -> SourcePos)
-> [t]
-> ([t] -> r)
-> ParsecF s u m r
Ptokens [t] -> String
a SourcePos -> [t] -> SourcePos
b [t]
c forall a. a -> a
id

tokenPrimEx :: (P.Stream s m t)
            => (t -> String)
            -> (P.SourcePos -> t -> s -> P.SourcePos)
            -> Maybe (P.SourcePos -> t -> s -> u -> u)
            -> (t -> Maybe a)
            -> ParsecDSL s u m a
tokenPrimEx :: forall s (m :: * -> *) t u a.
Stream s m t =>
(t -> String)
-> (SourcePos -> t -> s -> SourcePos)
-> Maybe (SourcePos -> t -> s -> u -> u)
-> (t -> Maybe a)
-> ParsecDSL s u m a
tokenPrimEx t -> String
a SourcePos -> t -> s -> SourcePos
b Maybe (SourcePos -> t -> s -> u -> u)
c t -> Maybe a
d = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r t a.
Stream s m t =>
(t -> String)
-> (SourcePos -> t -> s -> SourcePos)
-> Maybe (SourcePos -> t -> s -> u -> u)
-> (t -> Maybe a)
-> (a -> r)
-> ParsecF s u m r
PtokenPrimEx t -> String
a SourcePos -> t -> s -> SourcePos
b Maybe (SourcePos -> t -> s -> u -> u)
c t -> Maybe a
d forall a. a -> a
id

alphaNum :: P.Stream s m Char => ParsecDSL s u m Char
alphaNum :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
alphaNum = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
PalphaNum forall a. a -> a
id

anyChar :: P.Stream s m Char => ParsecDSL s u m Char
anyChar :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
anyChar = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
PanyChar forall a. a -> a
id

anyToken :: (Show t, P.Stream s m t) => ParsecDSL s u m t
anyToken :: forall t s (m :: * -> *) u.
(Show t, Stream s m t) =>
ParsecDSL s u m t
anyToken = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r t.
(Show t, Stream s m t) =>
(t -> r) -> ParsecF s u m r
PanyToken forall a. a -> a
id

char :: P.Stream s m Char => Char -> ParsecDSL s u m Char
char :: forall s (m :: * -> *) u.
Stream s m Char =>
Char -> ParsecDSL s u m Char
char Char
x = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
Char -> r -> ParsecF s u m r
Pchar Char
x Char
x

crlf :: P.Stream s m Char => ParsecDSL s u m Char
crlf :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
crlf = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pcrlf forall a. a -> a
id

digit :: P.Stream s m Char => ParsecDSL s u m Char
digit :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
digit = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pdigit forall a. a -> a
id

endOfLine :: P.Stream s m Char => ParsecDSL s u m Char
endOfLine :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
endOfLine = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
PendOfLine forall a. a -> a
id

eof :: (Show t, P.Stream s m t) => ParsecDSL s u m ()
eof :: forall t s (m :: * -> *) u.
(Show t, Stream s m t) =>
ParsecDSL s u m ()
eof = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r t.
(Show t, Stream s m t) =>
r -> ParsecF s u m r
Peof ()

hexDigit :: P.Stream s m Char => ParsecDSL s u m Char
hexDigit :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
hexDigit = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
PhexDigit forall a. a -> a
id

letter :: P.Stream s m Char => ParsecDSL s u m Char
letter :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
letter = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pletter forall a. a -> a
id

lower :: P.Stream s m Char => ParsecDSL s u m Char
lower :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
lower = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Plower forall a. a -> a
id

newline :: P.Stream s m Char => ParsecDSL s u m Char
newline :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
newline = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pnewline forall a. a -> a
id

noneOf :: P.Stream s m Char => [Char] -> ParsecDSL s u m Char
noneOf :: forall s (m :: * -> *) u.
Stream s m Char =>
String -> ParsecDSL s u m Char
noneOf String
xs = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
String -> (Char -> r) -> ParsecF s u m r
PnoneOf String
xs forall a. a -> a
id

octDigit :: P.Stream s m Char => ParsecDSL s u m Char
octDigit :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
octDigit = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
PoctDigit forall a. a -> a
id

oneOf :: P.Stream s m Char => [Char] -> ParsecDSL s u m Char
oneOf :: forall s (m :: * -> *) u.
Stream s m Char =>
String -> ParsecDSL s u m Char
oneOf String
xs = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
String -> (Char -> r) -> ParsecF s u m r
PoneOf String
xs forall a. a -> a
id

parserFail :: String -> ParsecDSL s u m a
parserFail :: forall s u (m :: * -> *) a. String -> ParsecDSL s u m a
parserFail String
s = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. String -> ParsecF s u m r
PparserFail String
s

parserZero :: ParsecDSL s u m a
parserZero :: forall s u (m :: * -> *) a. ParsecDSL s u m a
parserZero = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall s u (m :: * -> *) r. ParsecF s u m r
PparserZero

satisfy :: P.Stream s m Char => (Char -> Bool) -> ParsecDSL s u m Char
satisfy :: forall s (m :: * -> *) u.
Stream s m Char =>
(Char -> Bool) -> ParsecDSL s u m Char
satisfy Char -> Bool
g = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> Bool) -> (Char -> r) -> ParsecF s u m r
Psatisfy Char -> Bool
g forall a. a -> a
id

space :: P.Stream s m Char => ParsecDSL s u m Char
space :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
space = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pspace forall a. a -> a
id

spaces :: P.Stream s m Char => ParsecDSL s u m ()
spaces :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m ()
spaces = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. Stream s m Char => r -> ParsecF s u m r
Pspaces ()

string :: P.Stream s m Char => String -> ParsecDSL s u m String
string :: forall s (m :: * -> *) u.
Stream s m Char =>
String -> ParsecDSL s u m String
string String
x = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
String -> r -> ParsecF s u m r
Pstring String
x String
x

tab :: P.Stream s m Char => ParsecDSL s u m Char
tab :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
tab = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Ptab forall a. a -> a
id

upper :: P.Stream s m Char => ParsecDSL s u m Char
upper :: forall s (m :: * -> *) u. Stream s m Char => ParsecDSL s u m Char
upper = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r.
Stream s m Char =>
(Char -> r) -> ParsecF s u m r
Pupper forall a. a -> a
id

unexpected :: String -> ParsecDSL s u m a
unexpected :: forall s u (m :: * -> *) a. String -> ParsecDSL s u m a
unexpected String
s = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r. String -> ParsecF s u m r
Punexpected String
s

parserPlus :: ParsecDSL s u m a -> ParsecDSL s u m a -> ParsecDSL s u m a
parserPlus :: forall s u (m :: * -> *) a.
ParsecDSL s u m a -> ParsecDSL s u m a -> ParsecDSL s u m a
parserPlus ParsecDSL s u m a
p ParsecDSL s u m a
q = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a
-> ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
PparserPlus ParsecDSL s u m a
p ParsecDSL s u m a
q forall a. a -> a
id

label :: ParsecDSL s u m a -> String -> ParsecDSL s u m a
label :: forall s u (m :: * -> *) a.
ParsecDSL s u m a -> String -> ParsecDSL s u m a
label ParsecDSL s u m a
p String
a = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> String -> (a -> r) -> ParsecF s u m r
Plabel ParsecDSL s u m a
p String
a forall a. a -> a
id

labels :: ParsecDSL s u m a -> [String] -> ParsecDSL s u m a
labels :: forall s u (m :: * -> *) a.
ParsecDSL s u m a -> [String] -> ParsecDSL s u m a
labels ParsecDSL s u m a
p [String]
a = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> [String] -> (a -> r) -> ParsecF s u m r
Plabels ParsecDSL s u m a
p [String]
a forall a. a -> a
id

try :: ParsecDSL s u m a -> ParsecDSL s u m a
try :: forall s u (m :: * -> *) a. ParsecDSL s u m a -> ParsecDSL s u m a
try ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Ptry ParsecDSL s u m a
p forall a. a -> a
id

chainl :: ParsecDSL s u m a -> ParsecDSL s u m (a -> a -> a) -> a -> ParsecDSL s u m a
chainl :: forall s u (m :: * -> *) a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a) -> a -> ParsecDSL s u m a
chainl ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q a
a = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a)
-> a
-> (a -> r)
-> ParsecF s u m r
Pchainl ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q a
a forall a. a -> a
id

chainl1 :: ParsecDSL s u m a -> ParsecDSL s u m (a -> a -> a) -> ParsecDSL s u m a
chainl1 :: forall s u (m :: * -> *) a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a) -> ParsecDSL s u m a
chainl1 ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a) -> (a -> r) -> ParsecF s u m r
Pchainl1 ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q forall a. a -> a
id

chainr :: ParsecDSL s u m a -> ParsecDSL s u m (a -> a -> a) -> a -> ParsecDSL s u m a
chainr :: forall s u (m :: * -> *) a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a) -> a -> ParsecDSL s u m a
chainr ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q a
a = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a)
-> a
-> (a -> r)
-> ParsecF s u m r
Pchainr ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q a
a forall a. a -> a
id

chainr1 :: ParsecDSL s u m a -> ParsecDSL s u m (a -> a -> a) -> ParsecDSL s u m a
chainr1 :: forall s u (m :: * -> *) a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a) -> ParsecDSL s u m a
chainr1 ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a
-> ParsecDSL s u m (a -> a -> a) -> (a -> r) -> ParsecF s u m r
Pchainr1 ParsecDSL s u m a
p ParsecDSL s u m (a -> a -> a)
q forall a. a -> a
id

choice :: [ParsecDSL s u m a] -> ParsecDSL s u m a
choice :: forall s u (m :: * -> *) a.
[ParsecDSL s u m a] -> ParsecDSL s u m a
choice [ParsecDSL s u m a]
xs = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
[ParsecDSL s u m a] -> (a -> r) -> ParsecF s u m r
Pchoice [ParsecDSL s u m a]
xs forall a. a -> a
id

count :: Int -> ParsecDSL s u m a -> ParsecDSL s u m [a]
count :: forall s u (m :: * -> *) a.
Int -> ParsecDSL s u m a -> ParsecDSL s u m [a]
count Int
n ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
Int -> ParsecDSL s u m a -> ([a] -> r) -> ParsecF s u m r
Pcount Int
n ParsecDSL s u m a
p forall a. a -> a
id

lookAhead :: ParsecDSL s u m a -> ParsecDSL s u m a
lookAhead :: forall s u (m :: * -> *) a. ParsecDSL s u m a -> ParsecDSL s u m a
lookAhead ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
PlookAhead ParsecDSL s u m a
p forall a. a -> a
id

many :: ParsecDSL s u m a -> ParsecDSL s u m [a]
many :: forall s u (m :: * -> *) a.
ParsecDSL s u m a -> ParsecDSL s u m [a]
many ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> ([a] -> r) -> ParsecF s u m r
Pmany ParsecDSL s u m a
p forall a. a -> a
id

many1 :: ParsecDSL s u m a -> ParsecDSL s u m [a]
many1 :: forall s u (m :: * -> *) a.
ParsecDSL s u m a -> ParsecDSL s u m [a]
many1 ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> ([a] -> r) -> ParsecF s u m r
Pmany1 ParsecDSL s u m a
p forall a. a -> a
id

manyAccum :: (a -> [a] -> [a]) -> ParsecDSL s u m a -> ParsecDSL s u m [a]
manyAccum :: forall a s u (m :: * -> *).
(a -> [a] -> [a]) -> ParsecDSL s u m a -> ParsecDSL s u m [a]
manyAccum a -> [a] -> [a]
acc ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
(a -> [a] -> [a])
-> ParsecDSL s u m a -> ([a] -> r) -> ParsecF s u m r
PmanyAccum a -> [a] -> [a]
acc ParsecDSL s u m a
p forall a. a -> a
id

notFollowedBy :: Show a => ParsecDSL s u m a -> ParsecDSL s u m ()
notFollowedBy :: forall a s u (m :: * -> *).
Show a =>
ParsecDSL s u m a -> ParsecDSL s u m ()
notFollowedBy ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
Show a =>
ParsecDSL s u m a -> r -> ParsecF s u m r
PnotFollowedBy ParsecDSL s u m a
p ()

option :: a -> ParsecDSL s u m a -> ParsecDSL s u m a
option :: forall a s u (m :: * -> *).
a -> ParsecDSL s u m a -> ParsecDSL s u m a
option a
a ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
a -> ParsecDSL s u m a -> (a -> r) -> ParsecF s u m r
Poption a
a ParsecDSL s u m a
p forall a. a -> a
id

optionMaybe :: ParsecDSL s u m a -> ParsecDSL s u m (Maybe a)
optionMaybe :: forall s u (m :: * -> *) a.
ParsecDSL s u m a -> ParsecDSL s u m (Maybe a)
optionMaybe ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> (Maybe a -> r) -> ParsecF s u m r
PoptionMaybe ParsecDSL s u m a
p forall a. a -> a
id

optional :: ParsecDSL s u m a -> ParsecDSL s u m ()
optional :: forall s u (m :: * -> *) a. ParsecDSL s u m a -> ParsecDSL s u m ()
optional ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> r -> ParsecF s u m r
Poptional ParsecDSL s u m a
p ()

skipMany :: ParsecDSL s u m a -> ParsecDSL s u m ()
skipMany :: forall s u (m :: * -> *) a. ParsecDSL s u m a -> ParsecDSL s u m ()
skipMany ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> r -> ParsecF s u m r
PskipMany ParsecDSL s u m a
p ()

skipMany1 :: ParsecDSL s u m a -> ParsecDSL s u m ()
skipMany1 :: forall s u (m :: * -> *) a. ParsecDSL s u m a -> ParsecDSL s u m ()
skipMany1 ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r a.
ParsecDSL s u m a -> r -> ParsecF s u m r
PskipMany1 ParsecDSL s u m a
p ()

manyTill :: ParsecDSL s u m a -> ParsecDSL s u m end -> ParsecDSL s u m [a]
manyTill :: forall s u (m :: * -> *) a end.
ParsecDSL s u m a -> ParsecDSL s u m end -> ParsecDSL s u m [a]
manyTill ParsecDSL s u m a
p ParsecDSL s u m end
e = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PmanyTill ParsecDSL s u m a
p ParsecDSL s u m end
e forall a. a -> a
id

between :: ParsecDSL s u m open -> ParsecDSL s u m close -> ParsecDSL s u m a
        -> ParsecDSL s u m a
between :: forall s u (m :: * -> *) open close a.
ParsecDSL s u m open
-> ParsecDSL s u m close -> ParsecDSL s u m a -> ParsecDSL s u m a
between ParsecDSL s u m open
o ParsecDSL s u m close
c ParsecDSL s u m a
p = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r open close a.
ParsecDSL s u m open
-> ParsecDSL s u m close
-> ParsecDSL s u m a
-> (a -> r)
-> ParsecF s u m r
Pbetween ParsecDSL s u m open
o ParsecDSL s u m close
c ParsecDSL s u m a
p forall a. a -> a
id

endBy :: ParsecDSL s u m a -> ParsecDSL s u m sep -> ParsecDSL s u m [a]
endBy :: forall s u (m :: * -> *) a end.
ParsecDSL s u m a -> ParsecDSL s u m end -> ParsecDSL s u m [a]
endBy ParsecDSL s u m a
p ParsecDSL s u m sep
s = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PendBy ParsecDSL s u m a
p ParsecDSL s u m sep
s forall a. a -> a
id

endBy1 :: ParsecDSL s u m a -> ParsecDSL s u m sep -> ParsecDSL s u m [a]
endBy1 :: forall s u (m :: * -> *) a end.
ParsecDSL s u m a -> ParsecDSL s u m end -> ParsecDSL s u m [a]
endBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PendBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s forall a. a -> a
id

sepBy :: ParsecDSL s u m a -> ParsecDSL s u m sep -> ParsecDSL s u m [a]
sepBy :: forall s u (m :: * -> *) a end.
ParsecDSL s u m a -> ParsecDSL s u m end -> ParsecDSL s u m [a]
sepBy ParsecDSL s u m a
p ParsecDSL s u m sep
s = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PsepBy ParsecDSL s u m a
p ParsecDSL s u m sep
s forall a. a -> a
id

sepBy1 :: ParsecDSL s u m a -> ParsecDSL s u m sep -> ParsecDSL s u m [a]
sepBy1 :: forall s u (m :: * -> *) a end.
ParsecDSL s u m a -> ParsecDSL s u m end -> ParsecDSL s u m [a]
sepBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PsepBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s forall a. a -> a
id

sepEndBy :: ParsecDSL s u m a -> ParsecDSL s u m sep -> ParsecDSL s u m [a]
sepEndBy :: forall s u (m :: * -> *) a end.
ParsecDSL s u m a -> ParsecDSL s u m end -> ParsecDSL s u m [a]
sepEndBy ParsecDSL s u m a
p ParsecDSL s u m sep
s = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PsepEndBy ParsecDSL s u m a
p ParsecDSL s u m sep
s forall a. a -> a
id

sepEndBy1 :: ParsecDSL s u m a -> ParsecDSL s u m sep -> ParsecDSL s u m [a]
sepEndBy1 :: forall s u (m :: * -> *) a end.
ParsecDSL s u m a -> ParsecDSL s u m end -> ParsecDSL s u m [a]
sepEndBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s = forall s u (m :: * -> *) a. ParsecF s u m a -> ParsecDSL s u m a
liftF' forall a b. (a -> b) -> a -> b
$ forall s u (m :: * -> *) r end a.
ParsecDSL s u m a
-> ParsecDSL s u m end -> ([a] -> r) -> ParsecF s u m r
PsepEndBy1 ParsecDSL s u m a
p ParsecDSL s u m sep
s forall a. a -> a
id