|
Control.Monad.Trans.Error | Portability | portable | Stability | experimental | Maintainer | libraries@haskell.org |
|
|
|
|
|
Description |
- Computation type:
- Computations which may fail or throw exceptions.
- Binding strategy:
- Failure records information about the cause/location
of the failure. Failure values bypass the bound function,
other values are used as inputs to the bound function.
- Useful for:
- Building computations from sequences of functions that may fail
or using exception handling to structure error handling.
- Zero and plus:
- Zero is represented by an empty error and the plus operation
executes its second argument if the first fails.
- Example type:
- Data.Either String a
The Error monad (also called the Exception monad).
|
|
Synopsis |
|
|
|
|
The ErrorT monad transformer
|
|
|
An exception to be thrown.
An instance must redefine at least one of noMsg, strMsg.
| | Methods | | Creates an exception without a message.
Default implementation is strMsg "".
| | | Creates an exception with a message.
Default implementation is noMsg.
|
| | Instances | |
|
|
|
Workaround so that we can have a Haskell 98 instance Error String.
| | Methods | | | Instances | |
|
|
|
The error monad transformer. It can be used to add error handling to other
monads.
The ErrorT Monad structure is parameterized over two things:
- e - The error type.
- m - The inner monad.
Here are some examples of use:
-- wraps IO action that can throw an error e
type ErrorWithIO e a = ErrorT e IO a
==> ErrorT (IO (Either e a))
-- IO monad wrapped in StateT inside of ErrorT
type ErrorAndStateWithIO e s a = ErrorT e (StateT s IO) a
==> ErrorT (StateT s IO (Either e a))
==> ErrorT (StateT (s -> IO (Either e a,s)))
| Constructors | | Instances | |
|
|
|
|
|
Signal an error
|
|
|
Handle an error
|
|
Lifting other operations
|
|
|
Lift a callCC operation to the new monad.
|
|
|
Lift a listen operation to the new monad.
|
|
|
Lift a pass operation to the new monad.
|
|
Produced by Haddock version 2.4.2 |