ether-0.5.1.0: Monad transformers and classes

Safe HaskellNone
LanguageHaskell2010

Ether.TaggedTrans

Documentation

newtype TaggedTrans tag trans m a #

Constructors

TaggedTrans (trans m a) 

Instances

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

Methods

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

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

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

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

Methods

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

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

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

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

Methods

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

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

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

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

Methods

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

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

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

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

Methods

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

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

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

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

Methods

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

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

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

Methods

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

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

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

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

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

Methods

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

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

Methods

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

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

Associated Types

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

Methods

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

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

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

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 #

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

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 #

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

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 #

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

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 #

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

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) # 

Methods

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

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

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) # 

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) # 

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) # 

Methods

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

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

Methods

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

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

Methods

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

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

Methods

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

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

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

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

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

Methods

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

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

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

Methods

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

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

Methods

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

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

liftA2 :: (a -> b -> c) -> TaggedTrans k1 k2 * tag trans m a -> TaggedTrans k1 k2 * tag trans m b -> TaggedTrans k1 k2 * tag trans m c #

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

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

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

Methods

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

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

Methods

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

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

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

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

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

Methods

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

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

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

Methods

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

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

Methods

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

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

Methods

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

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

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

Methods

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

Generic (TaggedTrans k1 k2 k3 tag trans m a) # 

Associated Types

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

Methods

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

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

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