result 0.2.1.0 → 0.2.2.0
raw patch · 2 files changed
+23/−1 lines, 2 files
Files
- result.cabal +1/−1
- src/Data/Result.hs +22/−0
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)