Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Control.Monad.Fail.Hoist
Contents
Description
This module provides helpers for converting partiality types into
MonadFail
computations.
MonadFail'
s purpose is to handle pattern-match failures in
do
-expressions, and not to be a general-purpose error-handling
mechanism. Despite this, some libraries use it as one, and this
module can help you report errors via MonadFail
.
The operator mnemonics are the same as in
Control.Monad.Error.Hoist, but with #
in place of ?
. You can
imagine a hastily-written F
looking kinda-sorta like a #
, if it
helps.
Synopsis
- hoistFail :: (PluckError e t m, MonadFail m) => (e -> String) -> t a -> m a
- hoistFail' :: (PluckError String t m, MonadFail m) => t a -> m a
- hoistFailM :: (PluckError e t m, MonadFail m) => (e -> String) -> m (t a) -> m a
- hoistFailM' :: (PluckError String t m, MonadFail m) => m (t a) -> m a
- (<%#>) :: (PluckError e t m, MonadFail m) => t a -> (e -> String) -> m a
- (<%!#>) :: (PluckError e t m, MonadFail m) => m (t a) -> (e -> String) -> m a
- (<#>) :: (PluckError e t m, MonadFail m) => t a -> String -> m a
- (<!#>) :: (PluckError e t m, MonadFail m) => m (t a) -> String -> m a
Documentation
hoistFail' :: (PluckError String t m, MonadFail m) => t a -> m a Source #
Hoist computations whose error type is already String
.
hoistFailM :: (PluckError e t m, MonadFail m) => (e -> String) -> m (t a) -> m a Source #
A version of hoistFail
that operates on values already in the monad.
hoistFailM
::MonadFail
m => (() -> String) -> m (Maybe
a) -> m ahoistFailM
::MonadFail
m => (a -> String) -> m (Either
a b) -> m bhoistFailM
::MonadFail
m => (a -> String) ->ExceptT
a m b ->ExceptT
a m b
hoistFailM' :: (PluckError String t m, MonadFail m) => m (t a) -> m a Source #
A version of hoistFail'
that operates on values already in the monad.
hoistFailM'
::MonadFail
m => m (Maybe
a) -> m ahoistFailM'
::MonadFail
m => m (Either
a b) -> m bhoistFailM'
::MonadFail
m =>ExceptT
a m b ->ExceptT
a m b