parsley-core-1.6.0.0: A fast parser combinator library backed by Typed Template Haskell
Safe HaskellNone
LanguageHaskell2010

Parsley.Internal.Common.Fresh

Documentation

data VFreshT x m a Source #

Instances

Instances details
Monad m => RunFreshT x m (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

runFreshT :: VFreshT x m a -> x -> m (a, x) Source #

MonadState s m => MonadState s (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

get :: VFreshT x m s #

put :: s -> VFreshT x m () #

state :: (s -> (a, s)) -> VFreshT x m a #

MonadReader r m => MonadReader r (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

ask :: VFreshT x m r #

local :: (r -> r) -> VFreshT x m a -> VFreshT x m a #

reader :: (r -> a) -> VFreshT x m a #

(Monad m, Ord x, Enum x) => MonadFresh x (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

newVar :: VFreshT x m x Source #

newScope :: VFreshT x m a -> VFreshT x m a Source #

MonadTrans (VFreshT x) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

lift :: Monad m => m a -> VFreshT x m a #

Monad m => Monad (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

(>>=) :: VFreshT x m a -> (a -> VFreshT x m b) -> VFreshT x m b #

(>>) :: VFreshT x m a -> VFreshT x m b -> VFreshT x m b #

return :: a -> VFreshT x m a #

Functor m => Functor (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

fmap :: (a -> b) -> VFreshT x m a -> VFreshT x m b #

(<$) :: a -> VFreshT x m b -> VFreshT x m a #

MonadFix m => MonadFix (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

mfix :: (a -> VFreshT x m a) -> VFreshT x m a #

Monad m => Applicative (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

pure :: a -> VFreshT x m a #

(<*>) :: VFreshT x m (a -> b) -> VFreshT x m a -> VFreshT x m b #

liftA2 :: (a -> b -> c) -> VFreshT x m a -> VFreshT x m b -> VFreshT x m c #

(*>) :: VFreshT x m a -> VFreshT x m b -> VFreshT x m b #

(<*) :: VFreshT x m a -> VFreshT x m b -> VFreshT x m a #

MonadIO m => MonadIO (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

liftIO :: IO a -> VFreshT x m a #

data HFreshT x m a Source #

Instances

Instances details
Monad m => RunFreshT x m (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

runFreshT :: HFreshT x m a -> x -> m (a, x) Source #

MonadState s m => MonadState s (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

get :: HFreshT x m s #

put :: s -> HFreshT x m () #

state :: (s -> (a, s)) -> HFreshT x m a #

MonadReader r m => MonadReader r (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

ask :: HFreshT x m r #

local :: (r -> r) -> HFreshT x m a -> HFreshT x m a #

reader :: (r -> a) -> HFreshT x m a #

(Monad m, Ord x, Enum x) => MonadFresh x (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

newVar :: HFreshT x m x Source #

newScope :: HFreshT x m a -> HFreshT x m a Source #

MonadTrans (HFreshT x) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

lift :: Monad m => m a -> HFreshT x m a #

Monad m => Monad (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

(>>=) :: HFreshT x m a -> (a -> HFreshT x m b) -> HFreshT x m b #

(>>) :: HFreshT x m a -> HFreshT x m b -> HFreshT x m b #

return :: a -> HFreshT x m a #

Functor m => Functor (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

fmap :: (a -> b) -> HFreshT x m a -> HFreshT x m b #

(<$) :: a -> HFreshT x m b -> HFreshT x m a #

MonadFix m => MonadFix (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

mfix :: (a -> HFreshT x m a) -> HFreshT x m a #

Monad m => Applicative (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

pure :: a -> HFreshT x m a #

(<*>) :: HFreshT x m (a -> b) -> HFreshT x m a -> HFreshT x m b #

liftA2 :: (a -> b -> c) -> HFreshT x m a -> HFreshT x m b -> HFreshT x m c #

(*>) :: HFreshT x m a -> HFreshT x m b -> HFreshT x m b #

(<*) :: HFreshT x m a -> HFreshT x m b -> HFreshT x m a #

MonadIO m => MonadIO (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

liftIO :: IO a -> HFreshT x m a #

runFreshT :: RunFreshT x n m => m a -> x -> n (a, x) Source #

runFresh :: RunFreshT x Identity m => m a -> x -> (a, x) Source #

evalFreshT :: RunFreshT x n m => m a -> x -> n a Source #

evalFresh :: RunFreshT x Identity m => m a -> x -> a Source #

execFreshT :: RunFreshT x n m => m a -> x -> n x Source #

execFresh :: RunFreshT x Identity m => m a -> x -> x Source #

class Monad m => MonadFresh x m | m -> x where Source #

Methods

newVar :: m x Source #

newScope :: m a -> m a Source #

Instances

Instances details
(Monad m, Ord x, Enum x) => MonadFresh x (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

newVar :: HFreshT x m x Source #

newScope :: HFreshT x m a -> HFreshT x m a Source #

(Monad m, Ord x, Enum x) => MonadFresh x (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

newVar :: VFreshT x m x Source #

newScope :: VFreshT x m a -> VFreshT x m a Source #

construct :: MonadFresh x m => (x -> a) -> m a Source #

mapVFreshT :: (m (a, x, x) -> n (b, x, x)) -> VFreshT x m a -> VFreshT x n b Source #

class (Monad n, Monad m) => RunFreshT x n m | m -> x, m -> n Source #

Minimal complete definition

runFreshT

Instances

Instances details
Monad m => RunFreshT x m (HFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

runFreshT :: HFreshT x m a -> x -> m (a, x) Source #

Monad m => RunFreshT x m (VFreshT x m) Source # 
Instance details

Defined in Parsley.Internal.Common.Fresh

Methods

runFreshT :: VFreshT x m a -> x -> m (a, x) Source #