Safe Haskell  SafeInferred 

This monad transformer adds the ability to accumulate errors from several ErrorT computations and report them all at once.
 newtype ErrorAccumT e m a = ErrorAccumT {
 runErrorAccumT :: m ([e], a)
 accum :: (ErrorList e, Monad m) => ErrorT [e] m a > a > ErrorAccumT e m a
 report :: (ErrorList e, Monad m) => ErrorAccumT e m a > ErrorT [e] m a
 mapAccum :: (ErrorList e, Monad m) => (a > ErrorT [e] m b) > b > [a] > ErrorT [e] m [b]
 mapAccumA_ :: (ErrorList e, Monad m) => (a > ErrorT [e] m ()) > [a] > ErrorAccumT e m ()
 mapAccum_ :: (ErrorList e, Monad m) => (a > ErrorT [e] m ()) > [a] > ErrorT [e] m ()
 zipWithAccum_ :: (ErrorList e, Monad m) => (a > b > ErrorT [e] m ()) > [a] > [b] > ErrorT [e] m ()
Documentation
newtype ErrorAccumT e m a Source
Error accumulator: used in combination with ErrorT to store intermediate computation results, when errors should be accumulated rather than reported immediately
ErrorAccumT  

ErrorList e => MonadTrans (ErrorAccumT e)  
(ErrorList e, Monad m) => Monad (ErrorAccumT e m) 
accum :: (ErrorList e, Monad m) => ErrorT [e] m a > a > ErrorAccumT e m aSource
Transform an error computation and default value into an error accumlator
report :: (ErrorList e, Monad m) => ErrorAccumT e m a > ErrorT [e] m aSource
Transform an error accumlator back into a regular error computation
mapAccum :: (ErrorList e, Monad m) => (a > ErrorT [e] m b) > b > [a] > ErrorT [e] m [b]Source
mapAccum
f def xs
:
Apply f
to all xs
, accumulating errors and reporting them at the end
mapAccumA_ :: (ErrorList e, Monad m) => (a > ErrorT [e] m ()) > [a] > ErrorAccumT e m ()Source
mapAccumA_
f xs
:
Apply f
to all xs
throwing away the result, accumulating errors
mapAccum_ :: (ErrorList e, Monad m) => (a > ErrorT [e] m ()) > [a] > ErrorT [e] m ()Source
Same as mapAccumA_
, but reporting errors at the end
zipWithAccum_ :: (ErrorList e, Monad m) => (a > b > ErrorT [e] m ()) > [a] > [b] > ErrorT [e] m ()Source
zipWithAccum_
f xs ys
:
Apply type checking f
to all xs
and ys
throwing away the result,
accumulating errors and reporting them at the end