rescue-0.2.0: More understandable exceptions

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Trans.Rescue.Types

Description

The RescueT transformer

Synopsis

Documentation

newtype RescueT errs m a Source #

Add type-directed error handling abilities to a Monad

Constructors

RescueT 

Fields

Instances
MonadTrans (RescueT errs) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

lift :: Monad m => m a -> RescueT errs m a #

Monad m => Monad (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

(>>=) :: RescueT errs m a -> (a -> RescueT errs m b) -> RescueT errs m b #

(>>) :: RescueT errs m a -> RescueT errs m b -> RescueT errs m b #

return :: a -> RescueT errs m a #

fail :: String -> RescueT errs m a #

Functor m => Functor (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

fmap :: (a -> b) -> RescueT errs m a -> RescueT errs m b #

(<$) :: a -> RescueT errs m b -> RescueT errs m a #

MonadFix m => MonadFix (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

mfix :: (a -> RescueT errs m a) -> RescueT errs m a #

Applicative m => Applicative (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

pure :: a -> RescueT errs m a #

(<*>) :: RescueT errs m (a -> b) -> RescueT errs m a -> RescueT errs m b #

liftA2 :: (a -> b -> c) -> RescueT errs m a -> RescueT errs m b -> RescueT errs m c #

(*>) :: RescueT errs m a -> RescueT errs m b -> RescueT errs m b #

(<*) :: RescueT errs m a -> RescueT errs m b -> RescueT errs m a #

Foldable m => Foldable (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

fold :: Monoid m0 => RescueT errs m m0 -> m0 #

foldMap :: Monoid m0 => (a -> m0) -> RescueT errs m a -> m0 #

foldr :: (a -> b -> b) -> b -> RescueT errs m a -> b #

foldr' :: (a -> b -> b) -> b -> RescueT errs m a -> b #

foldl :: (b -> a -> b) -> b -> RescueT errs m a -> b #

foldl' :: (b -> a -> b) -> b -> RescueT errs m a -> b #

foldr1 :: (a -> a -> a) -> RescueT errs m a -> a #

foldl1 :: (a -> a -> a) -> RescueT errs m a -> a #

toList :: RescueT errs m a -> [a] #

null :: RescueT errs m a -> Bool #

length :: RescueT errs m a -> Int #

elem :: Eq a => a -> RescueT errs m a -> Bool #

maximum :: Ord a => RescueT errs m a -> a #

minimum :: Ord a => RescueT errs m a -> a #

sum :: Num a => RescueT errs m a -> a #

product :: Num a => RescueT errs m a -> a #

(Monad m, Traversable m) => Traversable (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

traverse :: Applicative f => (a -> f b) -> RescueT errs m a -> f (RescueT errs m b) #

sequenceA :: Applicative f => RescueT errs m (f a) -> f (RescueT errs m a) #

mapM :: Monad m0 => (a -> m0 b) -> RescueT errs m a -> m0 (RescueT errs m b) #

sequence :: Monad m0 => RescueT errs m (m0 a) -> m0 (RescueT errs m a) #

MonadIO m => MonadIO (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

liftIO :: IO a -> RescueT errs m a #

(IsMember SomeException errs, Monad m) => MonadThrow (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

throwM :: Exception e => e -> RescueT errs m a #

(IsMember SomeException errs, Contains errs errs, Monad m) => MonadCatch (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

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

Monad m => MonadRaise (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Associated Types

type Errors (RescueT errs m) :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors (RescueT errs m))) => err -> RescueT errs m a Source #

Monad m => MonadRescue (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

attempt :: RescueT errs m a -> RescueT errs m (Either (OpenUnion (Errors (RescueT errs m))) a) Source #

Eq (m (Either (OpenUnion errs) a)) => Eq (RescueT errs m a) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

(==) :: RescueT errs m a -> RescueT errs m a -> Bool #

(/=) :: RescueT errs m a -> RescueT errs m a -> Bool #

Show (m (Either (OpenUnion errs) a)) => Show (RescueT errs m a) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

Methods

showsPrec :: Int -> RescueT errs m a -> ShowS #

show :: RescueT errs m a -> String #

showList :: [RescueT errs m a] -> ShowS #

type Errors (RescueT errs m) Source # 
Instance details

Defined in Control.Monad.Trans.Rescue.Types

type Errors (RescueT errs m) = errs

type Rescue errs = RescueT errs Identity Source #

A specialized version of RescueT to be used without a transfromer stack

runRescue :: Rescue errs a -> Either (OpenUnion errs) a Source #