transformers-abort-0.6.0.1: Error and short-circuit monad transformers

Safe HaskellNone
LanguageHaskell98

Control.Monad.Trans.Abort

Description

Error monad transformer.

Synopsis

Documentation

newtype AbortT e μ α Source #

A monad transformer that extends monad μ with the ability to raise errors of type e and to recover from them.

Constructors

AbortT 

Fields

Instances

MonadBase η μ => MonadBase η (AbortT e μ) Source # 

Methods

liftBase :: η α -> AbortT e μ α #

MonadBaseControl η μ => MonadBaseControl η (AbortT e μ) Source # 

Associated Types

type StM (AbortT e μ :: * -> *) a :: * #

Methods

liftBaseWith :: (RunInBase (AbortT e μ) η -> η a) -> AbortT e μ a #

restoreM :: StM (AbortT e μ) a -> AbortT e μ a #

MonadTrans (AbortT e) Source # 

Methods

lift :: Monad m => m a -> AbortT e m a #

MonadTransControl (AbortT e) Source # 

Associated Types

type StT (AbortT e :: (* -> *) -> * -> *) a :: * #

Methods

liftWith :: Monad m => (Run (AbortT e) -> m a) -> AbortT e m a #

restoreT :: Monad m => m (StT (AbortT e) a) -> AbortT e m a #

BindTrans (AbortT e) Source # 

Methods

liftB :: Bind b => b a -> AbortT e b a #

Monad μ => Monad (AbortT e μ) Source # 

Methods

(>>=) :: AbortT e μ a -> (a -> AbortT e μ b) -> AbortT e μ b #

(>>) :: AbortT e μ a -> AbortT e μ b -> AbortT e μ b #

return :: a -> AbortT e μ a #

fail :: String -> AbortT e μ a #

Functor μ => Functor (AbortT e μ) Source # 

Methods

fmap :: (a -> b) -> AbortT e μ a -> AbortT e μ b #

(<$) :: a -> AbortT e μ b -> AbortT e μ a #

MonadFix μ => MonadFix (AbortT e μ) Source # 

Methods

mfix :: (a -> AbortT e μ a) -> AbortT e μ a #

MonadFail μ => MonadFail (AbortT f μ) Source # 

Methods

fail :: String -> AbortT f μ a #

(Functor μ, Monad μ) => Applicative (AbortT e μ) Source # 

Methods

pure :: a -> AbortT e μ a #

(<*>) :: AbortT e μ (a -> b) -> AbortT e μ a -> AbortT e μ b #

(*>) :: AbortT e μ a -> AbortT e μ b -> AbortT e μ b #

(<*) :: AbortT e μ a -> AbortT e μ b -> AbortT e μ a #

Foldable μ => Foldable (AbortT e μ) Source # 

Methods

fold :: Monoid m => AbortT e μ m -> m #

foldMap :: Monoid m => (a -> m) -> AbortT e μ a -> m #

foldr :: (a -> b -> b) -> b -> AbortT e μ a -> b #

foldr' :: (a -> b -> b) -> b -> AbortT e μ a -> b #

foldl :: (b -> a -> b) -> b -> AbortT e μ a -> b #

foldl' :: (b -> a -> b) -> b -> AbortT e μ a -> b #

foldr1 :: (a -> a -> a) -> AbortT e μ a -> a #

foldl1 :: (a -> a -> a) -> AbortT e μ a -> a #

toList :: AbortT e μ a -> [a] #

null :: AbortT e μ a -> Bool #

length :: AbortT e μ a -> Int #

elem :: Eq a => a -> AbortT e μ a -> Bool #

maximum :: Ord a => AbortT e μ a -> a #

minimum :: Ord a => AbortT e μ a -> a #

sum :: Num a => AbortT e μ a -> a #

product :: Num a => AbortT e μ a -> a #

Traversable μ => Traversable (AbortT e μ) Source # 

Methods

traverse :: Applicative f => (a -> f b) -> AbortT e μ a -> f (AbortT e μ b) #

sequenceA :: Applicative f => AbortT e μ (f a) -> f (AbortT e μ a) #

mapM :: Monad m => (a -> m b) -> AbortT e μ a -> m (AbortT e μ b) #

sequence :: Monad m => AbortT e μ (m a) -> m (AbortT e μ a) #

(Eq f, Eq1 μ) => Eq1 (AbortT f μ) Source # 

Methods

liftEq :: (a -> b -> Bool) -> AbortT f μ a -> AbortT f μ b -> Bool #

(Ord f, Ord1 μ) => Ord1 (AbortT f μ) Source # 

Methods

liftCompare :: (a -> b -> Ordering) -> AbortT f μ a -> AbortT f μ b -> Ordering #

(Read f, Read1 μ) => Read1 (AbortT f μ) Source # 

Methods

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (AbortT f μ a) #

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [AbortT f μ a] #

(Show f, Show1 μ) => Show1 (AbortT f μ) Source # 

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> AbortT f μ a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [AbortT f μ a] -> ShowS #

MonadZip μ => MonadZip (AbortT f μ) Source # 

Methods

mzip :: AbortT f μ a -> AbortT f μ b -> AbortT f μ (a, b) #

mzipWith :: (a -> b -> c) -> AbortT f μ a -> AbortT f μ b -> AbortT f μ c #

munzip :: AbortT f μ (a, b) -> (AbortT f μ a, AbortT f μ b) #

MonadIO μ => MonadIO (AbortT e μ) Source # 

Methods

liftIO :: IO a -> AbortT e μ a #

Pointed μ => Pointed (AbortT e μ) Source # 

Methods

point :: a -> AbortT e μ a #

(Functor μ, Monad μ) => Apply (AbortT e μ) Source # 

Methods

(<.>) :: AbortT e μ (a -> b) -> AbortT e μ a -> AbortT e μ b #

(.>) :: AbortT e μ a -> AbortT e μ b -> AbortT e μ b #

(<.) :: AbortT e μ a -> AbortT e μ b -> AbortT e μ a #

(Functor μ, Monad μ) => Bind (AbortT e μ) Source # 

Methods

(>>-) :: AbortT e μ a -> (a -> AbortT e μ b) -> AbortT e μ b #

join :: AbortT e μ (AbortT e μ a) -> AbortT e μ a #

(Eq f, Eq1 μ, Eq α) => Eq (AbortT f μ α) Source # 

Methods

(==) :: AbortT f μ α -> AbortT f μ α -> Bool #

(/=) :: AbortT f μ α -> AbortT f μ α -> Bool #

(Ord f, Ord1 μ, Ord α) => Ord (AbortT f μ α) Source # 

Methods

compare :: AbortT f μ α -> AbortT f μ α -> Ordering #

(<) :: AbortT f μ α -> AbortT f μ α -> Bool #

(<=) :: AbortT f μ α -> AbortT f μ α -> Bool #

(>) :: AbortT f μ α -> AbortT f μ α -> Bool #

(>=) :: AbortT f μ α -> AbortT f μ α -> Bool #

max :: AbortT f μ α -> AbortT f μ α -> AbortT f μ α #

min :: AbortT f μ α -> AbortT f μ α -> AbortT f μ α #

(Read f, Read1 μ, Read α) => Read (AbortT f μ α) Source # 

Methods

readsPrec :: Int -> ReadS (AbortT f μ α) #

readList :: ReadS [AbortT f μ α] #

readPrec :: ReadPrec (AbortT f μ α) #

readListPrec :: ReadPrec [AbortT f μ α] #

(Show f, Show1 μ, Show α) => Show (AbortT f μ α) Source # 

Methods

showsPrec :: Int -> AbortT f μ α -> ShowS #

show :: AbortT f μ α -> String #

showList :: [AbortT f μ α] -> ShowS #

type StT (AbortT e) α Source # 
type StT (AbortT e) α = Either e α
type StM (AbortT e μ) α Source # 
type StM (AbortT e μ) α = ComposeSt (AbortT e) μ α

abort :: Monad μ => e -> AbortT e μ α Source #

Raise an error.

recover :: Monad μ => AbortT e μ α -> (e -> AbortT e μ α) -> AbortT e μ α Source #

Recover from an error.

type Abort e α = AbortT e Identity α Source #

An alias for AbortT over Identity.

runAbort :: Abort e α -> Either e α Source #

runAbortT specialized for Abort.