rescue-0.2.0: More understandable exceptions

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Raise.Class

Description

The MonadRaise class, which is an effect for early escape / happy path programming with an exception side channel

Synopsis

Documentation

class Monad m => MonadRaise m where Source #

Raise semantics, like a type-directed MonadThrow. Not unlike MonadError with an in-built open variant.

Associated Types

type Errors m :: [Type] Source #

Methods

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

Raise an error

The Proxy gives a type hint to the type checker. If you have a case where it can be inferred, see raise'.

Examples

Expand
>>> data FooErr  = FooErr  deriving Show
>>> data BarErr  = BarErr  deriving Show
>>> data QuuxErr = QuuxErr deriving Show
>>> 
>>> type MyErrs  = '[FooErr, BarErr]
>>> 
>>> :{
 goesBoom :: Int -> Either (OpenUnion MyErrs) Int
 goesBoom x =
   if x > 50
     then return x
     else raise FooErr
:}
>>> goesBoom 42
Left (Identity FooErr)
>>> :{
 maybeBoom :: Int -> Maybe Int
 maybeBoom x =
   if x > 50
     then return x
     else raise ()
:}
>>> maybeBoom 42
Nothing
Instances
MonadRaise [] Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors [] :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors [])) => err -> [a] Source #

MonadRaise Maybe Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors Maybe :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors Maybe)) => err -> Maybe a Source #

MonadRaise IO Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors IO :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors IO)) => err -> IO a Source #

MonadRaise STM Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors STM :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors STM)) => err -> STM a Source #

MonadRaise (Either (OpenUnion errs)) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (Either (OpenUnion errs)) :: [Type] Source #

Methods

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

MonadRaise (ST s) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (ST s) :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors (ST s))) => err -> ST s a Source #

MonadRaise m => MonadRaise (MaybeT m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (MaybeT m) :: [Type] Source #

Methods

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

MonadRaise m => MonadRaise (CatchT m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (CatchT m) :: [Type] Source #

Methods

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

(Contains (Errors m) (Errors m), MonadRaise m, MonadThrow m) => MonadRaise (CleanupT m) Source # 
Instance details

Defined in Control.Monad.Trans.Cleanup.Types

Associated Types

type Errors (CleanupT m) :: [Type] Source #

Methods

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

MonadRaise m => MonadRaise (IdentityT m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (IdentityT m) :: [Type] Source #

Methods

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

(MonadRaise m, Contains (Errors m) errs) => MonadRaise (ExceptT (OpenUnion errs) m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

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

Methods

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

MonadRaise m => MonadRaise (StateT s m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (StateT s m) :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors (StateT s m))) => err -> StateT s m a Source #

MonadRaise m => MonadRaise (StateT s m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (StateT s m) :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors (StateT s m))) => err -> StateT s m a Source #

(MonadRaise m, Monoid w) => MonadRaise (WriterT w m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (WriterT w m) :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors (WriterT w m))) => err -> WriterT w m a Source #

(MonadRaise m, Monoid w) => MonadRaise (WriterT w m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (WriterT w m) :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors (WriterT w m))) => err -> WriterT w m a Source #

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 #

MonadRaise m => MonadRaise (ContT r m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (ContT r m) :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors (ContT r m))) => err -> ContT r m a Source #

MonadRaise m => MonadRaise (ReaderT cfg m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (ReaderT cfg m) :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors (ReaderT cfg m))) => err -> ReaderT cfg m a Source #

(MonadRaise m, Monoid w) => MonadRaise (RWST r w s m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (RWST r w s m) :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors (RWST r w s m))) => err -> RWST r w s m a Source #

(MonadRaise m, Monoid w) => MonadRaise (RWST r w s m) Source # 
Instance details

Defined in Control.Monad.Raise.Class

Associated Types

type Errors (RWST r w s m) :: [Type] Source #

Methods

raise :: Subset err (OpenUnion (Errors (RWST r w s m))) => err -> RWST r w s m a Source #