packages feed

result 0.2.3.0 → 0.2.4.0

raw patch · 3 files changed

+26/−6 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Control.Monad.Trans.Result: hoist :: Applicative f => Result e a -> ResultT e f a
+ Control.Monad.Trans.Result: raiseAllT :: Applicative f => [e] -> ResultT e f ()
+ Data.Result: raiseAll :: [e] -> Result e ()

Files

result.cabal view
@@ -1,5 +1,5 @@ name:                result-version:             0.2.3.0+version:             0.2.4.0 synopsis:            Encode success or at least one error homepage:            https://github.com/srijs/haskell-result license:             MIT
src/Control/Monad/Trans/Result.hs view
@@ -1,8 +1,9 @@ {-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, UndecidableInstances #-}  module Control.Monad.Trans.Result-  ( ResultT, runResultT-  , raiseT, accumulateT+  ( ResultT, runResultT, hoist+  , raiseT, raiseAllT+  , accumulateT   ) where  @@ -46,11 +47,21 @@     ResultT (pure <$> m)  +hoist :: Applicative f => Result e a -> ResultT e f a+hoist r =+  ResultT (pure r)++ raiseT :: Applicative f => e -> ResultT e f a raiseT e =-  ResultT (pure (raise e))+  hoist (raise e)  +raiseAllT :: Applicative f => [e] -> ResultT e f ()+raiseAllT es =+  hoist (raiseAll es)++ accumulateT :: (Traversable t , Applicative f) => t (ResultT e f a) -> ResultT e f (t a) accumulateT results =   ResultT (accumulate <$> traverse runResultT results)@@ -58,4 +69,4 @@  instance State.MonadState s m => State.MonadState s (ResultT e m) where   state f =-    ResultT (pure <$> State.state f)+    lift (State.state f)
src/Data/Result.hs view
@@ -3,7 +3,7 @@ module Data.Result   ( Result   , get, errors-  , raise+  , raise, raiseAll   , accumulate   ) where @@ -69,6 +69,15 @@ raise :: e -> Result e a raise e =   Result (Left (e NonEmpty.:| []))+++raiseAll :: [e] -> Result e ()+raiseAll es =+  Result $ case es of+    [] ->+      Right ()+    (e:es') ->+      Left (e NonEmpty.:| es')   get :: Result e a -> Maybe a