packages feed

hoist-error 0.3.0.0 → 0.3.1.0

raw patch · 4 files changed

+84/−42 lines, 4 filesdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Control.Monad.Error.Hoist: ($dmfoldError) :: (PluckError e t m, Monad m) => (e -> m r) -> (a -> m r) -> t a -> m r
+ Control.Monad.Error.Hoist: ($dmpluckError) :: (PluckError e t m, Applicative m) => t a -> m (Either e a)
+ Control.Monad.Error.Hoist: hoistError' :: (PluckError e t m, MonadError e m) => t a -> m a
+ Control.Monad.Error.Hoist: hoistErrorM' :: (PluckError e t m, MonadError e m) => m (t a) -> m a
- Control.Monad.Error.Hoist: class PluckError e t m | t -> e
+ Control.Monad.Error.Hoist: class PluckError e (t :: Type -> Type) (m :: Type -> Type) | t -> e
- Control.Monad.Error.Hoist: foldError :: (PluckError e t m, Monad m) => (e -> m r) -> (a -> m r) -> t a -> m r
+ Control.Monad.Error.Hoist: foldError :: PluckError e t m => (e -> m r) -> (a -> m r) -> t a -> m r
- Control.Monad.Error.Hoist: pluckError :: (PluckError e t m, Applicative m) => t a -> m (Either e a)
+ Control.Monad.Error.Hoist: pluckError :: PluckError e t m => t a -> m (Either e a)

Files

changelog.md view
@@ -1,3 +1,8 @@+0.3.1.0++* Add `Control.Monad.Error.Hoist.hoistError'` and+  `Control.Monad.Error.Hoist.hoistErrorM'`+ 0.3.0.0  * Replaced the `HoistError` typeclass, which is about monads, with a
hoist-error.cabal view
@@ -1,5 +1,5 @@ name:                hoist-error-version:             0.3.0.0+version:             0.3.1.0 synopsis:            Some convenience facilities for hoisting errors into a monad description:         Provides a typeclass and useful combinators for hoisting errors into a monad. license:             MIT@@ -20,6 +20,8 @@                    , GHC == 9.4.5                    , GHC == 9.6.4                    , GHC == 9.8.2+                   , GHC == 9.10.2+                   , GHC == 9.12.2  source-repository head     type: git@@ -29,7 +31,7 @@   exposed-modules:     Control.Monad.Error.Hoist     Control.Monad.Fail.Hoist-  build-depends:       base   >=4.13 && <4.20+  build-depends:       base   >=4.13 && <4.22                      , mtl    >=2.2 && <2.4    hs-source-dirs:      src
src/Control/Monad/Error/Hoist.hs view
@@ -36,7 +36,9 @@  module Control.Monad.Error.Hoist   ( hoistError+  , hoistError'   , hoistErrorM+  , hoistErrorM'   -- ** Operators   -- $mnemonics   , (<%?>)@@ -59,9 +61,9 @@ -- computation into @m@. -- -- @--- 'hoistError' :: 'MonadError' e m -> (() -> e) -> 'Maybe'       a -> m a--- 'hoistError' :: 'MonadError' e m -> (a  -> e) -> 'Either'  a   b -> m b--- 'hoistError' :: 'MonadError' e m -> (a  -> e) -> 'ExceptT' a m b -> m b+-- 'hoistError' :: 'MonadError' err m -> (() -> err) -> 'Maybe'       a -> m a+-- 'hoistError' :: 'MonadError' err m -> (e  -> err) -> 'Either'  e   a -> m a+-- 'hoistError' :: 'MonadError' err m -> (e  -> err) -> 'ExceptT' e m a -> m a -- @ hoistError   :: (PluckError e t m, MonadError e' m)@@ -70,12 +72,21 @@   -> m a hoistError f = foldError (throwError . f) pure +-- | @hoistError' = hoistError id@+--+-- @since 0.3.1.0+hoistError'+  :: (PluckError e t m, MonadError e m)+  => t a+  -> m a+hoistError' = hoistError id+ -- | A version of 'hoistError' that operates on values already in the monad. -- -- @--- 'hoistErrorM' :: 'MonadError' e m => (() -> e) -> m ('Maybe'       a) ->           m a--- 'hoistErrorM' :: 'MonadError' e m => (a  -> e) -> m ('Either'  a   b) ->           m b--- 'hoistErrorM' :: 'MonadError' e m => (a  -> e) ->    'ExceptT' a m b  -> 'ExceptT' a m b+-- 'hoistErrorM' :: 'MonadError' err m => (() -> err) -> m ('Maybe'       a) -> m a+-- 'hoistErrorM' :: 'MonadError' err m => (e  -> err) -> m ('Either'  e   b) -> m a+-- 'hoistErrorM' :: 'MonadError' err m => (e  -> err) -> m  'ExceptT' e m b  -> m a -- @ hoistErrorM   :: (PluckError e t m, MonadError e' m)@@ -84,6 +95,15 @@   -> m a hoistErrorM e m = m >>= hoistError e +-- | @hoistErrorM' = hoistErrorM id@+--+-- @since 0.3.1.0+hoistErrorM'+  :: (PluckError e t m, MonadError e m)+  => m (t a)+  -> m a+hoistErrorM' = hoistErrorM id+ -- $mnemonics -- -- The operators in this package are named according to a scheme:@@ -103,9 +123,9 @@ -- | A flipped synonym for 'hoistError'. -- -- @--- ('<%?>') :: 'MonadError' e m => 'Maybe'       a -> (() -> e) ->           m a--- ('<%?>') :: 'MonadError' e m => 'Either'  a   b -> (a  -> e) ->           m b--- ('<%?>') :: 'MonadError' e m => 'ExceptT' a m b -> (a  -> e) -> 'ExceptT' a m b+-- ('<%?>') :: 'MonadError' err m => 'Maybe'       a -> (() -> err) -> m a+-- ('<%?>') :: 'MonadError' err m => 'Either'  e   a -> (e  -> err) -> m a+-- ('<%?>') :: 'MonadError' err m => 'ExceptT' e m a -> (e  -> err) -> m a -- @ (<%?>)   :: (PluckError e t m, MonadError e' m)@@ -120,9 +140,9 @@ -- | A flipped synonym for 'hoistErrorM'. -- -- @--- ('<%!?>') :: 'MonadError' e m => m ('Maybe'       a) -> (() -> e) ->           m a--- ('<%!?>') :: 'MonadError' e m => m ('Either'  a   b) -> (a  -> e) ->           m b--- ('<%!?>') :: 'MonadError' e m =>    'ExceptT' a m b  -> (a  -> e) -> 'ExceptT' a m b+-- ('<%!?>') :: 'MonadError' err m => m ('Maybe'       a) -> (() -> err) ->           m a+-- ('<%!?>') :: 'MonadError' err m => m ('Either'  e   a) -> (e  -> err) ->           m a+-- ('<%!?>') :: 'MonadError' err m =>    'ExceptT' e m a  -> (e  -> err) -> 'ExceptT' e m a -- @ (<%!?>)   :: (PluckError e t m, MonadError e' m)@@ -138,9 +158,9 @@ -- with a new one. -- -- @--- ('<?>') :: 'MonadError' e m => 'Maybe'       a -> e ->           m a--- ('<?>') :: 'MonadError' e m => 'Either'  a   b -> e ->           m b--- ('<?>') :: 'MonadError' e m => 'ExceptT' a m b -> e -> 'ExceptT' a m b+-- ('<?>') :: 'MonadError' err m => 'Maybe'       a -> err -> m a+-- ('<?>') :: 'MonadError' err m => 'Either'  e   a -> err -> m a+-- ('<?>') :: 'MonadError' err m => 'ExceptT' e m a -> err -> m a -- @ (<?>)   :: (PluckError e t m, MonadError e' m)@@ -155,9 +175,9 @@ -- | A version of '<?>' that operates on values already in the monad. -- -- @--- ('<!?>') :: 'MonadError' e m => m ('Maybe'       a) -> e ->           m a--- ('<!?>') :: 'MonadError' e m => m ('Either'  a   b) -> e ->           m b--- ('<!?>') :: 'MonadError' e m =>    'ExceptT' a m b  -> e -> 'ExceptT' a m b+-- ('<!?>') :: 'MonadError' err m => m ('Maybe'       a) -> e -> m a+-- ('<!?>') :: 'MonadError' err m => m ('Either'  e   a) -> e -> m a+-- ('<!?>') :: 'MonadError' err m => m  'ExceptT' e m a  -> e -> m a -- @ (<!?>)   :: (PluckError e t m, MonadError e' m)@@ -172,6 +192,8 @@ {-# INLINE (<!?>) #-}  -- | A class for plucking an error @e@ out of a partiality type @t@.+--+-- @since 0.3.0.0 class PluckError e t m | t -> e where   pluckError :: t a -> m (Either e a)   default pluckError :: Applicative m => t a -> m (Either e a)
src/Control/Monad/Fail/Hoist.hs view
@@ -31,9 +31,12 @@ -- computation into @m@. -- -- @--- 'hoistFail' :: 'MonadFail' m => (() -> String) -> 'Maybe'    a -> m a--- 'hoistFail' :: 'MonadFail' m => (a  -> String) -> 'Either' a b -> m b+-- 'hoistFail' :: 'MonadFail' m => (() -> String) -> 'Maybe'       a -> m a+-- 'hoistFail' :: 'MonadFail' m => (e  -> String) -> 'Either'  e   a -> m a+-- 'hoistFail' :: 'MonadFail' m => (e  -> String) -> 'ExceptT' e m a -> m a -- @+--+-- @since 0.3.0.0 hoistFail   :: (PluckError e t m, MonadFail m)   => (e -> String)@@ -41,17 +44,21 @@   -> m a hoistFail f = foldError (fail . f) pure --- | Hoist computations whose error type is already 'String'.+-- | @hoistFail' = hoistFail id@+--+-- @since 0.3.0.0 hoistFail' :: (PluckError String t m, MonadFail m) => t a -> m a hoistFail' = hoistFail id  -- | A version of 'hoistFail' that operates on values already in the monad. -- -- @--- 'hoistFailM' :: 'MonadFail' m => (() -> String) -> m ('Maybe'       a) ->           m a--- 'hoistFailM' :: 'MonadFail' m => (a  -> String) -> m ('Either'  a   b) ->           m b--- 'hoistFailM' :: 'MonadFail' m => (a  -> String) ->    'ExceptT' a m b  -> 'ExceptT' a m b+-- 'hoistFailM' :: 'MonadFail' m => (() -> String) -> m ('Maybe'       a) -> m a+-- 'hoistFailM' :: 'MonadFail' m => (e  -> String) -> m ('Either'  e   a) -> m a+-- 'hoistFailM' :: 'MonadFail' m => (e  -> String) -> m ('ExceptT' e m a) -> m a -- @+--+-- @since 0.3.0.0 hoistFailM   :: (PluckError e t m, MonadFail m)   => (e -> String)@@ -59,13 +66,9 @@   -> m a hoistFailM f m = m >>= hoistFail f --- | A version of 'hoistFail'' that operates on values already in the monad.+-- | @hoistFailM' = hoistFailM id@ ----- @--- 'hoistFailM'' :: 'MonadFail' m => m ('Maybe'       a) ->           m a--- 'hoistFailM'' :: 'MonadFail' m => m ('Either'  a   b) ->           m b--- 'hoistFailM'' :: 'MonadFail' m =>    'ExceptT' a m b  -> 'ExceptT' a m b--- @+-- @since 0.3.0.0 hoistFailM'   :: (PluckError String t m, MonadFail m)   => m (t a)@@ -75,9 +78,12 @@ -- | A flipped synonym for 'hoistFail'. Mnemonic: @#@ looks a bit like @F@. -- -- @--- ('<%#>') :: 'MonadFail' m => 'Maybe'    a -> (() -> e) -> m a--- ('<%#>') :: 'MonadFail' m => 'Either' a b -> (a  -> e) -> m b+-- ('<%#>') :: 'MonadFail' m => 'Maybe'       a -> (() -> String) -> m a+-- ('<%#>') :: 'MonadFail' m => 'Either'  e m a -> (e  -> String) -> m a+-- ('<%#>') :: 'MonadFail' m => 'ExceptT' e m a -> (e  -> String) -> m a -- @+--+-- @since 0.3.0.0 (<%#>)   :: (PluckError e t m, MonadFail m)   => t a@@ -91,10 +97,12 @@ -- | A flipped synonym for 'hoistFailM'. -- -- @--- ('<%!#>') :: 'MonadError' e m => m ('Maybe'       a) -> (() -> e) ->           m a--- ('<%!#>') :: 'MonadError' e m => m ('Either'  a   b) -> (a  -> e) ->           m b--- ('<%!#>') :: 'MonadError' e m =>    'ExceptT' a m b  -> (a  -> e) -> 'ExceptT' a m b+-- ('<%!#>') :: 'MonadFail' m => m ('Maybe'       a) -> (() -> String) -> m a+-- ('<%!#>') :: 'MonadFail' m => m ('Either'  e   a) -> (e  -> String) -> m a+-- ('<%!#>') :: 'MonadFail' m => m ('ExceptT' e m a) -> (e  -> String) -> m a -- @+--+-- @since 0.3.0.0 (<%!#>)   :: (PluckError e t m, MonadFail m)   => m (t a)@@ -109,9 +117,12 @@ -- with a new one. -- -- @--- ('<#>') :: 'MonadFail' m => 'Maybe'    a -> String -> m a--- ('<#>') :: 'MonadFail' m => 'Either' a b -> String -> m b+-- ('<#>') :: 'MonadFail' m => 'Maybe'       a -> String -> m a+-- ('<#>') :: 'MonadFail' m => 'Either'  e   a -> String -> m a+-- ('<#>') :: 'MonadFail' m => 'ExceptT' e m a -> String -> m a -- @+--+-- @since 0.3.0.0 (<#>)   :: (PluckError e t m, MonadFail m)   => t a@@ -125,10 +136,12 @@ -- | A version of '<#>' that operates on values already in the monad. -- -- @--- ('<!#>') :: 'MonadFail m => m ('Maybe'       a) -> String ->           m a--- ('<!#>') :: 'MonadFail m => m ('Either'  a   b) -> String ->           m b--- ('<!#>') :: 'MonadFail m =>    'ExceptT' a m b  -> String -> 'ExceptT' a m b+-- ('<!#>') :: 'MonadFail' m => m ('Maybe'       a) -> String -> m a+-- ('<!#>') :: 'MonadFail' m => m ('Either'  e   a) -> String -> m a+-- ('<!#>') :: 'MonadFail' m => m ('ExceptT' e m a) -> String -> m a -- @+--+-- @since 0.3.0.0 (<!#>)   :: (PluckError e t m, MonadFail m)   => m (t a)