result 0.2.4.0 → 0.2.5.0
raw patch · 3 files changed
+18/−1 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Control.Monad.Trans.Result: fromExceptT :: Functor f => ExceptT e f a -> ResultT e f a
+ Data.Result: fromEither :: Either e a -> Result e a
Files
- result.cabal +1/−1
- src/Control/Monad/Trans/Result.hs +7/−0
- src/Data/Result.hs +10/−0
result.cabal view
@@ -1,5 +1,5 @@ name: result-version: 0.2.4.0+version: 0.2.5.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
@@ -4,12 +4,14 @@ ( ResultT, runResultT, hoist , raiseT, raiseAllT , accumulateT+ , fromExceptT ) where import Control.Applicative (liftA2) import Control.Monad (join) import Control.Monad.Trans.Class+import Control.Monad.Trans.Except import qualified Control.Monad.State.Class as State import Data.Functor.Identity@@ -65,6 +67,11 @@ accumulateT :: (Traversable t , Applicative f) => t (ResultT e f a) -> ResultT e f (t a) accumulateT results = ResultT (accumulate <$> traverse runResultT results)+++fromExceptT :: Functor f => ExceptT e f a -> ResultT e f a+fromExceptT excT =+ ResultT (fromEither <$> runExceptT excT) instance State.MonadState s m => State.MonadState s (ResultT e m) where
src/Data/Result.hs view
@@ -5,6 +5,7 @@ , get, errors , raise, raiseAll , accumulate+ , fromEither ) where @@ -96,6 +97,15 @@ NonEmpty.toList es Right _ -> []+++fromEither :: Either e a -> Result e a+fromEither eith =+ Result $ case eith of+ Left e ->+ Left (e NonEmpty.:| [])+ Right a ->+ Right a data AccumulatingResult e a = AccRes { getResult :: Result e a }