control-monad-attempt-0.0.1: Monad transformer for attempt.Source codeContentsIndex
Control.Monad.Attempt
Description
Provide a monad transformer for the attempt monad, which allows the reporting of errors using extensible exceptions.
Synopsis
newtype AttemptT m v = AttemptT {
runAttemptT :: m (Attempt v)
}
evalAttemptT :: (Monad m, FromAttempt m) => AttemptT m v -> m v
attemptT :: Monad m => (forall e. Exception e => e -> b) -> (a -> b) -> AttemptT m a -> m b
attemptTIO :: (Exception eIn, Exception eOut) => (eIn -> eOut) -> IO v -> AttemptT IO v
module Data.Attempt
Documentation
newtype AttemptT m v Source
Constructors
AttemptT
runAttemptT :: m (Attempt v)
show/hide Instances
evalAttemptT :: (Monad m, FromAttempt m) => AttemptT m v -> m vSource

Instances of FromAttempt specify a manner for embedding Attempt failures directly into the target data type. For example, the IO instance simply throws a runtime error. This is a convenience wrapper when you simply want to use that default action.

So given a type AttemptT IO Int, this function will convert it to IO Int, throwing any exceptions in the original value.

attemptT :: Monad m => (forall e. Exception e => e -> b) -> (a -> b) -> AttemptT m a -> m bSource
The equivalent of attempt for transformers. Given a success and failure handler, eliminates the AttemptT portion of the transformer stack.
attemptTIO :: (Exception eIn, Exception eOut) => (eIn -> eOut) -> IO v -> AttemptT IO vSource

Catches runtime (ie, IO) exceptions and represents them in an AttemptT transformer.

Like handle, the first argument to this function must explicitly state the type of its input.

module Data.Attempt
Produced by Haddock version 2.6.0