packages feed

either-result 0.2.0.0 → 0.3.0.0

raw patch · 4 files changed

+25/−13 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Control.Monad.Result: liftEither :: MonadError String m => Either String a -> m a
+ Control.Monad.Result: liftResult :: MonadError String m => Result a -> m a
- Control.Monad.Result: mapResultT :: (Functor m, Functor n) => (m (Either String a) -> n (Either String b)) -> ResultT m a -> ResultT n b
+ Control.Monad.Result: mapResultT :: (Functor m, Functor n) => (m (Result a) -> n (Result b)) -> ResultT m a -> ResultT n b
- Control.Monad.Result: pattern ResultT :: Functor m => m (Either String a) -> ResultT m a
+ Control.Monad.Result: pattern ResultT :: Functor m => m (Result a) -> ResultT m a
- Control.Monad.Result: runResultT :: Functor m => ResultT m a -> m (Either String a)
+ Control.Monad.Result: runResultT :: Functor m => ResultT m a -> m (Result a)
- Control.Monad.Trans.Result: mapResultT :: (Functor m, Functor n) => (m (Either String a) -> n (Either String b)) -> ResultT m a -> ResultT n b
+ Control.Monad.Trans.Result: mapResultT :: (Functor m, Functor n) => (m (Result a) -> n (Result b)) -> ResultT m a -> ResultT n b
- Control.Monad.Trans.Result: pattern ResultT :: Functor m => m (Either String a) -> ResultT m a
+ Control.Monad.Trans.Result: pattern ResultT :: Functor m => m (Result a) -> ResultT m a
- Control.Monad.Trans.Result: runResultT :: Functor m => ResultT m a -> m (Either String a)
+ Control.Monad.Trans.Result: runResultT :: Functor m => ResultT m a -> m (Result a)

Files

CHANGELOG.md view
@@ -1,5 +1,17 @@ # Revision history for either-result +## 0.3.0.0++*2020.08.05*++### Breaking changes++- Change `Either String` to `Result` for some monad transformer functions' types+  - `Control.Monad.Result.liftEither` → `Control.Monad.Result.liftResult`+  - `Control.Monad.Trans.Result.ResultT`+  - `Control.Monad.Trans.Result.runResultT`+  - `Control.Monad.Trans.Result.mapResultT`+ ## 0.2.0.0  *2020.08.04*
either-result.cabal view
@@ -1,9 +1,9 @@ cabal-version: 2.2  name: either-result-version: 0.2.0.0-synopsis: ‘Result a’ is a wrapper of ‘Either String a’.-description: ‘Result a’ is a wrapper of ‘Either String a’, but ‘Result’ is an instance of ‘MonadFail’.+version: 0.3.0.0+synopsis: ‘MonadFail’ instance for a wrapper of ‘ExceptT String m a’.+description: ‘ResultT m a’ is a wrapper of ‘ExceptT String m a’ which are similar except ‘MonadFail’ instance. homepage: https://github.com/kakkun61/either-result bug-reports: https://github.com/kakkun61/either-result/issues license: Apache-2.0
src/Control/Monad/Result.hs view
@@ -13,7 +13,7 @@ module Control.Monad.Result   ( -- * The class     MonadError (throwError, catchError)-  , liftEither+  , liftResult     -- * The ResultT monad transformer   , type ResultT (ResultT)   , runResultT@@ -52,7 +52,7 @@   catchError = catchE   {-# INLINE catchError #-} --- | Lift 'Either' into 'MonadError'.-liftEither :: MonadError String m => Either String a -> m a-liftEither = either throwError pure-{-# INLINE liftEither #-}+-- | Lift 'Result' into 'MonadError'.+liftResult :: MonadError String m => Result a -> m a+liftResult = result throwError pure+{-# INLINE liftResult #-}
src/Control/Monad/Trans/Result.hs view
@@ -138,18 +138,18 @@ {-# INLINE toMonadFail #-}  -- | Construct and destruct 'T.Result'.-pattern ResultT :: Functor m => m (Either String a) -> T.ResultT m a-pattern ResultT m <- (runExceptT . T.runResultT -> m)-  where ResultT m = T.ResultT $ ExceptT m+pattern ResultT :: Functor m => m (T.Result a) -> T.ResultT m a+pattern ResultT m <- ((Result <$>) . runExceptT . T.runResultT -> m)+  where ResultT m = T.ResultT $ ExceptT $ runResult <$> m  {-# COMPLETE ResultT #-}  -- | Unwrap 'ResultT'.-runResultT :: Functor m => T.ResultT m a -> m (Either String a)+runResultT :: Functor m => T.ResultT m a -> m (T.Result a) runResultT (ResultT m) = m {-# INLINE runResultT #-}  -- | Map the unwrapped computation using the given function.-mapResultT :: (Functor m, Functor n) => (m (Either String a) -> n (Either String b)) -> T.ResultT m a -> T.ResultT n b+mapResultT :: (Functor m, Functor n) => (m (T.Result a) -> n (T.Result b)) -> T.ResultT m a -> T.ResultT n b mapResultT f = T.mapResultT $ T.runResultT . ResultT . f . runResultT . T.ResultT {-# INLINE mapResultT #-}