| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Control.Monad.Raise.Class
Description
The MonadRaise class, which is an effect for
early escape / happy path programming with an exception side channel
Documentation
class Monad m => MonadRaise m where Source #
Raise semantics, like a type-directed MonadThrow.
Not unlike MonadError with an in-built open variant.
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
>>>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 42Left (Identity FooErr)
>>>:{maybeBoom :: Int -> Maybe Int maybeBoom x = if x > 50 then return x else raise () :}
>>>maybeBoom 42Nothing
Instances
| MonadRaise [] Source # | |
| MonadRaise Maybe Source # | |
| MonadRaise IO Source # | |
| MonadRaise STM Source # | |
| MonadRaise (Either (OpenUnion errs)) Source # | |
| MonadRaise (ST s) Source # | |
| MonadRaise m => MonadRaise (MaybeT m) Source # | |
| MonadRaise m => MonadRaise (CatchT m) Source # | |
| (Contains (Errors m) (Errors m), MonadRaise m, MonadThrow m) => MonadRaise (CleanupT m) Source # | |
| MonadRaise m => MonadRaise (IdentityT m) Source # | |
| (MonadRaise m, Contains (Errors m) errs) => MonadRaise (ExceptT (OpenUnion errs) m) Source # | |
| MonadRaise m => MonadRaise (StateT s m) Source # | |
| MonadRaise m => MonadRaise (StateT s m) Source # | |
| (MonadRaise m, Monoid w) => MonadRaise (WriterT w m) Source # | |
| (MonadRaise m, Monoid w) => MonadRaise (WriterT w m) Source # | |
| Monad m => MonadRaise (RescueT errs m) Source # | |
| MonadRaise m => MonadRaise (ContT r m) Source # | |
| MonadRaise m => MonadRaise (ReaderT cfg m) Source # | |
| (MonadRaise m, Monoid w) => MonadRaise (RWST r w s m) Source # | |
| (MonadRaise m, Monoid w) => MonadRaise (RWST r w s m) Source # | |