packages feed

result 0.2.1.0 → 0.2.2.0

raw patch · 2 files changed

+23/−1 lines, 2 files

Files

result.cabal view
@@ -1,5 +1,5 @@ name:                result-version:             0.2.1.0+version:             0.2.2.0 synopsis:            Encode success or at least one error homepage:            https://github.com/srijs/haskell-result license:             MIT
src/Data/Result.hs view
@@ -4,6 +4,7 @@   ( Result   , get, errors   , raise+  , accumulate   ) where  @@ -86,3 +87,24 @@       NonEmpty.toList es     Right _ ->       []+++data AccumulatingResult e a = AccRes { getResult :: Result e a }+++instance Functor (AccumulatingResult e) where+  fmap f r =+    AccRes (fmap f (getResult r))+++instance Applicative (AccumulatingResult e) where+  pure a =+    AccRes (pure a)++  x <*> y =+    AccRes (getResult x `zap` getResult y)+++accumulate :: Traversable t => t (Result e a) -> Result e (t a)+accumulate t =+  getResult (traverse AccRes t)