Provide a monad transformer for the attempt monad, which allows the reporting of errors using extensible exceptions.
 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
AttemptT  

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.
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