ether-0.5.1.0: Monad transformers and classes

Safe HaskellNone
LanguageHaskell2010

Ether.TaggedTrans

Documentation

newtype TaggedTrans tag trans m a Source #

Constructors

TaggedTrans (trans m a) 

Instances

(Monad (trans m), MonadReader k tag r (TaggedTrans * (Type -> Type) [a] effs trans m)) => MonadReader k tag r (TaggedTrans * (Type -> Type) [a] ((:) a eff effs) trans m) Source # 

Methods

ask :: m (TaggedTrans * (Type -> Type) [a] ((a ': eff) effs) trans m) Source #

local :: (TaggedTrans * (Type -> Type) [a] ((a ': eff) effs) trans m -> TaggedTrans * (Type -> Type) [a] ((a ': eff) effs) trans m) -> m a -> m a Source #

reader :: (TaggedTrans * (Type -> Type) [a] ((a ': eff) effs) trans m -> a) -> m a Source #

(MonadReader k1 tNew r m, (~) ((* -> *) -> * -> *) trans (IdentityT *)) => MonadReader k tOld r (TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m) Source # 

Methods

ask :: m (TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m) Source #

local :: (TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m -> TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m) -> m a -> m a Source #

reader :: (TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m -> a) -> m a Source #

(MonadState k1 tag sOuter m, Reifies k z (ReifiedLens' sOuter sInner), (~) ((* -> *) -> * -> *) trans (IdentityT *)) => MonadState k1 tag sInner (TaggedTrans * (* -> *) * (ZOOM k k1 tag z) trans m) Source # 

Methods

get :: m (TaggedTrans * (* -> *) * (ZOOM k k1 tag z) trans m) Source #

put :: TaggedTrans * (* -> *) * (ZOOM k k1 tag z) trans m -> m () Source #

state :: (TaggedTrans * (* -> *) * (ZOOM k k1 tag z) trans m -> (a, TaggedTrans * (* -> *) * (ZOOM k k1 tag z) trans m)) -> m a Source #

(Monad (trans m), MonadState k tag s (TaggedTrans * (Type -> Type) [a] effs trans m)) => MonadState k tag s (TaggedTrans * (Type -> Type) [a] ((:) a eff effs) trans m) Source # 

Methods

get :: m (TaggedTrans * (Type -> Type) [a] ((a ': eff) effs) trans m) Source #

put :: TaggedTrans * (Type -> Type) [a] ((a ': eff) effs) trans m -> m () Source #

state :: (TaggedTrans * (Type -> Type) [a] ((a ': eff) effs) trans m -> (a, TaggedTrans * (Type -> Type) [a] ((a ': eff) effs) trans m)) -> m a Source #

(MonadState k1 tNew s m, (~) ((* -> *) -> * -> *) trans (IdentityT *)) => MonadState k tOld s (TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m) Source # 

Methods

get :: m (TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m) Source #

put :: TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m -> m () Source #

state :: (TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m -> (a, TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m)) -> m a Source #

(MonadWriter k1 tNew w m, (~) ((* -> *) -> * -> *) trans (IdentityT *)) => MonadWriter k tOld w (TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m) Source # 

Methods

writer :: (a, TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m) -> m a Source #

tell :: TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m -> m () Source #

listen :: m a -> m (a, TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m) Source #

pass :: m (a, TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m -> TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m) -> m a Source #

(MonadExcept k1 tNew e m, (~) ((* -> *) -> * -> *) trans (IdentityT *)) => MonadExcept k tOld e (TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m) Source # 

Methods

throw :: TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m -> m a Source #

catch :: m a -> (TaggedTrans * (* -> *) * (TAG_REPLACE k1 k tOld tNew) trans m -> m a) -> m a Source #

MFunctor k1 trans => MFunctor k1 (TaggedTrans k1 (* -> *) k tag trans) Source # 

Methods

hoist :: Monad m => (forall a. m a -> n a) -> t m b -> t n b #

MonadBase b (trans m) => MonadBase b (TaggedTrans * k1 k tag trans m) Source # 

Methods

liftBase :: b α -> TaggedTrans * k1 k tag trans m α #

MonadBaseControl b (trans m) => MonadBaseControl b (TaggedTrans * k1 k tag trans m) Source # 

Associated Types

type StM (TaggedTrans * k1 k tag trans m :: * -> *) a :: * #

Methods

liftBaseWith :: (RunInBase (TaggedTrans * k1 k tag trans m) b -> b a) -> TaggedTrans * k1 k tag trans m a #

restoreM :: StM (TaggedTrans * k1 k tag trans m) a -> TaggedTrans * k1 k tag trans m a #

(MonadError e m, LiftCatch trans, Monad (trans m)) => MonadError e (TaggedTrans * (* -> *) k tag trans m) Source # 

Methods

throwError :: e -> TaggedTrans * (* -> *) k tag trans m a #

catchError :: TaggedTrans * (* -> *) k tag trans m a -> (e -> TaggedTrans * (* -> *) k tag trans m a) -> TaggedTrans * (* -> *) k tag trans m a #

(MonadExcept k tag e m, (~) ((* -> *) -> * -> *) trans (IdentityT *)) => MonadError e (TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m) # 

Methods

throwError :: e -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a #

catchError :: TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a -> (e -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a) -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a #

(MonadReader r m, LiftLocal trans, Monad (trans m)) => MonadReader r (TaggedTrans * (* -> *) k tag trans m) Source # 

Methods

ask :: TaggedTrans * (* -> *) k tag trans m r #

local :: (r -> r) -> TaggedTrans * (* -> *) k tag trans m a -> TaggedTrans * (* -> *) k tag trans m a #

reader :: (r -> a) -> TaggedTrans * (* -> *) k tag trans m a #

(MonadReader k tag r m, (~) ((* -> *) -> * -> *) trans (IdentityT *)) => MonadReader r (TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m) # 

Methods

ask :: TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m r #

local :: (r -> r) -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a #

reader :: (r -> a) -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a #

(MonadState s m, MonadTrans trans, Monad (trans m)) => MonadState s (TaggedTrans * (* -> *) k tag trans m) Source # 

Methods

get :: TaggedTrans * (* -> *) k tag trans m s #

put :: s -> TaggedTrans * (* -> *) k tag trans m () #

state :: (s -> (a, s)) -> TaggedTrans * (* -> *) k tag trans m a #

(MonadState k tag s m, (~) ((* -> *) -> * -> *) trans (IdentityT *)) => MonadState s (TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m) # 

Methods

get :: TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m s #

put :: s -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m () #

state :: (s -> (a, s)) -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a #

(MonadWriter w m, LiftListen trans, LiftPass trans, Monad (trans m)) => MonadWriter w (TaggedTrans * (* -> *) k tag trans m) Source # 

Methods

writer :: (a, w) -> TaggedTrans * (* -> *) k tag trans m a #

tell :: w -> TaggedTrans * (* -> *) k tag trans m () #

listen :: TaggedTrans * (* -> *) k tag trans m a -> TaggedTrans * (* -> *) k tag trans m (a, w) #

pass :: TaggedTrans * (* -> *) k tag trans m (a, w -> w) -> TaggedTrans * (* -> *) k tag trans m a #

(MonadWriter k tag w m, (~) ((* -> *) -> * -> *) trans (IdentityT *)) => MonadWriter w (TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m) # 

Methods

writer :: (a, w) -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a #

tell :: w -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m () #

listen :: TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m (a, w) #

pass :: TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m (a, w -> w) -> TaggedTrans * (* -> *) * (TAG_ATTACH k tag) trans m a #

MMonad trans => MMonad (TaggedTrans * (* -> *) k tag trans) Source # 

Methods

embed :: Monad n => (forall a. m a -> TaggedTrans * (* -> *) k tag trans n a) -> TaggedTrans * (* -> *) k tag trans m b -> TaggedTrans * (* -> *) k tag trans n b #

MonadTrans trans => MonadTrans (TaggedTrans * (* -> *) k tag trans) Source # 

Methods

lift :: Monad m => m a -> TaggedTrans * (* -> *) k tag trans m a #

MonadTransControl trans => MonadTransControl (TaggedTrans * (* -> *) k tag trans) Source # 

Associated Types

type StT (TaggedTrans * (* -> *) k tag trans :: (* -> *) -> * -> *) a :: * #

Methods

liftWith :: Monad m => (Run (TaggedTrans * (* -> *) k tag trans) -> m a) -> TaggedTrans * (* -> *) k tag trans m a #

restoreT :: Monad m => m (StT (TaggedTrans * (* -> *) k tag trans) a) -> TaggedTrans * (* -> *) k tag trans m a #

LiftCallCC trans => LiftCallCC (TaggedTrans * (* -> *) k tag trans) Source # 

Methods

liftCallCC :: Monad m => CallCC m (StT (TaggedTrans * (* -> *) k tag trans) a) (StT (TaggedTrans * (* -> *) k tag trans) b) -> CallCC (TaggedTrans * (* -> *) k tag trans m) a b #

liftCallCC' :: Monad m => CallCC m (StT (TaggedTrans * (* -> *) k tag trans) a) (StT (TaggedTrans * (* -> *) k tag trans) b) -> CallCC (TaggedTrans * (* -> *) k tag trans m) a b #

LiftCatch trans => LiftCatch (TaggedTrans * (* -> *) k tag trans) Source # 

Methods

liftCatch :: Monad m => Catch * e m (StT (TaggedTrans * (* -> *) k tag trans) a) -> Catch * e (TaggedTrans * (* -> *) k tag trans m) a #

LiftListen trans => LiftListen (TaggedTrans * (* -> *) k tag trans) Source # 

Methods

liftListen :: Monad m => Listen w m (StT (TaggedTrans * (* -> *) k tag trans) a) -> Listen w (TaggedTrans * (* -> *) k tag trans m) a #

LiftLocal trans => LiftLocal (TaggedTrans * (* -> *) k tag trans) Source # 

Methods

liftLocal :: Monad m => m r -> (forall a. Local r m a) -> forall a. Local r (TaggedTrans * (* -> *) k tag trans m) a #

LiftPass trans => LiftPass (TaggedTrans * (* -> *) k tag trans) Source # 

Methods

liftPass :: Monad m => Pass w m (StT (TaggedTrans * (* -> *) k tag trans) a) -> Pass w (TaggedTrans * (* -> *) k tag trans m) a #

Monad (trans m) => Monad (TaggedTrans * k1 k tag trans m) Source # 

Methods

(>>=) :: TaggedTrans * k1 k tag trans m a -> (a -> TaggedTrans * k1 k tag trans m b) -> TaggedTrans * k1 k tag trans m b #

(>>) :: TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m b -> TaggedTrans * k1 k tag trans m b #

return :: a -> TaggedTrans * k1 k tag trans m a #

fail :: String -> TaggedTrans * k1 k tag trans m a #

Functor (trans m) => Functor (TaggedTrans * k1 k tag trans m) Source # 

Methods

fmap :: (a -> b) -> TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m b #

(<$) :: a -> TaggedTrans * k1 k tag trans m b -> TaggedTrans * k1 k tag trans m a #

MonadFix (trans m) => MonadFix (TaggedTrans * k1 k tag trans m) Source # 

Methods

mfix :: (a -> TaggedTrans * k1 k tag trans m a) -> TaggedTrans * k1 k tag trans m a #

Applicative (trans m) => Applicative (TaggedTrans * k1 k tag trans m) Source # 

Methods

pure :: a -> TaggedTrans * k1 k tag trans m a #

(<*>) :: TaggedTrans * k1 k tag trans m (a -> b) -> TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m b #

(*>) :: TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m b -> TaggedTrans * k1 k tag trans m b #

(<*) :: TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m b -> TaggedTrans * k1 k tag trans m a #

MonadIO (trans m) => MonadIO (TaggedTrans * k1 k tag trans m) Source # 

Methods

liftIO :: IO a -> TaggedTrans * k1 k tag trans m a #

Alternative (trans m) => Alternative (TaggedTrans * k1 k tag trans m) Source # 

Methods

empty :: TaggedTrans * k1 k tag trans m a #

(<|>) :: TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m a #

some :: TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m [a] #

many :: TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m [a] #

MonadPlus (trans m) => MonadPlus (TaggedTrans * k1 k tag trans m) Source # 

Methods

mzero :: TaggedTrans * k1 k tag trans m a #

mplus :: TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m a #

MonadThrow (trans m) => MonadThrow (TaggedTrans * k1 k tag trans m) Source # 

Methods

throwM :: Exception e => e -> TaggedTrans * k1 k tag trans m a #

MonadCatch (trans m) => MonadCatch (TaggedTrans * k1 k tag trans m) Source # 

Methods

catch :: Exception e => TaggedTrans * k1 k tag trans m a -> (e -> TaggedTrans * k1 k tag trans m a) -> TaggedTrans * k1 k tag trans m a #

MonadMask (trans m) => MonadMask (TaggedTrans * k1 k tag trans m) Source # 

Methods

mask :: ((forall a. TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m a) -> TaggedTrans * k1 k tag trans m b) -> TaggedTrans * k1 k tag trans m b #

uninterruptibleMask :: ((forall a. TaggedTrans * k1 k tag trans m a -> TaggedTrans * k1 k tag trans m a) -> TaggedTrans * k1 k tag trans m b) -> TaggedTrans * k1 k tag trans m b #

(MonadCont m, LiftCallCC trans, Monad (trans m)) => MonadCont (TaggedTrans * (* -> *) k tag trans m) Source # 

Methods

callCC :: ((a -> TaggedTrans * (* -> *) k tag trans m b) -> TaggedTrans * (* -> *) k tag trans m a) -> TaggedTrans * (* -> *) k tag trans m a #

Generic (TaggedTrans k2 k1 k tag trans m a) Source # 

Associated Types

type Rep (TaggedTrans k2 k1 k tag trans m a) :: * -> * #

Methods

from :: TaggedTrans k2 k1 k tag trans m a -> Rep (TaggedTrans k2 k1 k tag trans m a) x #

to :: Rep (TaggedTrans k2 k1 k tag trans m a) x -> TaggedTrans k2 k1 k tag trans m a #

type StT (TaggedTrans * (* -> *) k tag trans) a Source # 
type StT (TaggedTrans * (* -> *) k tag trans) a = StT trans a
type StT (TaggedTrans * (* -> *) k tag trans) a Source # 
type StT (TaggedTrans * (* -> *) k tag trans) a = StT trans a
type StM (TaggedTrans * k k1 tag trans m) a Source # 
type StM (TaggedTrans * k k1 tag trans m) a = StM (trans m) a
type Rep (TaggedTrans k2 k1 k tag trans m a) Source # 
type Rep (TaggedTrans k2 k1 k tag trans m a) = D1 (MetaData "TaggedTrans" "Ether.TaggedTrans" "ether-0.5.1.0-CqzzLcXII7L7IZammsWILQ" True) (C1 (MetaCons "TaggedTrans" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (trans m a))))