flaw-base-0.1.0.0

LicenseMIT
Safe HaskellSafe
LanguageHaskell2010

Flaw.Stack

Description

 
Synopsis

Documentation

newtype StackT m a Source #

Stacking monad transformer.

Constructors

StackT (forall b. (a -> m b) -> m b) 
Instances
MonadTrans StackT Source # 
Instance details

Defined in Flaw.Stack

Methods

lift :: Monad m => m a -> StackT m a #

Monad (StackT m) Source # 
Instance details

Defined in Flaw.Stack

Methods

(>>=) :: StackT m a -> (a -> StackT m b) -> StackT m b #

(>>) :: StackT m a -> StackT m b -> StackT m b #

return :: a -> StackT m a #

fail :: String -> StackT m a #

Functor (StackT m) Source # 
Instance details

Defined in Flaw.Stack

Methods

fmap :: (a -> b) -> StackT m a -> StackT m b #

(<$) :: a -> StackT m b -> StackT m a #

MonadFail m => MonadFail (StackT m) Source # 
Instance details

Defined in Flaw.Stack

Methods

fail :: String -> StackT m a #

Applicative (StackT m) Source # 
Instance details

Defined in Flaw.Stack

Methods

pure :: a -> StackT m a #

(<*>) :: StackT m (a -> b) -> StackT m a -> StackT m b #

liftA2 :: (a -> b -> c) -> StackT m a -> StackT m b -> StackT m c #

(*>) :: StackT m a -> StackT m b -> StackT m b #

(<*) :: StackT m a -> StackT m b -> StackT m a #

MonadIO m => MonadIO (StackT m) Source # 
Instance details

Defined in Flaw.Stack

Methods

liftIO :: IO a -> StackT m a #

MonadThrow m => MonadThrow (StackT m) Source # 
Instance details

Defined in Flaw.Stack

Methods

throwM :: Exception e => e -> StackT m a #

MonadCatch m => MonadCatch (StackT m) Source # 
Instance details

Defined in Flaw.Stack

Methods

catch :: Exception e => StackT m a -> (e -> StackT m a) -> StackT m a #

MonadMask m => MonadMask (StackT m) Source # 
Instance details

Defined in Flaw.Stack

Methods

mask :: ((forall a. StackT m a -> StackT m a) -> StackT m b) -> StackT m b #

uninterruptibleMask :: ((forall a. StackT m a -> StackT m a) -> StackT m b) -> StackT m b #

generalBracket :: StackT m a -> (a -> ExitCase b -> StackT m c) -> (a -> StackT m b) -> StackT m (b, c) #

after :: Monad m => m () -> StackT m () Source #

runStackT :: Monad m => StackT m a -> m a Source #

scope :: Monad m => StackT m a -> StackT m a Source #