monad-abort-fd 0.7 → 0.7.0.1
raw patch · 4 files changed
+26/−7 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Control.Monad.Abort.Class: instance Control.Monad.Abort.Class.MonadAbort GHC.Exception.SomeException GHC.Conc.Sync.STM
- Control.Monad.Abort.Class: instance Control.Monad.Abort.Class.MonadAbort GHC.Exception.SomeException GHC.Types.IO
- Control.Monad.Abort.Class: instance Control.Monad.Abort.Class.MonadRecover GHC.Exception.SomeException GHC.Conc.Sync.STM
- Control.Monad.Abort.Class: instance Control.Monad.Abort.Class.MonadRecover GHC.Exception.SomeException GHC.Types.IO
+ Control.Monad.Abort.Class: instance Control.Monad.Abort.Class.MonadAbort GHC.Exception.Type.SomeException GHC.Conc.Sync.STM
+ Control.Monad.Abort.Class: instance Control.Monad.Abort.Class.MonadAbort GHC.Exception.Type.SomeException GHC.Types.IO
+ Control.Monad.Abort.Class: instance Control.Monad.Abort.Class.MonadRecover GHC.Exception.Type.SomeException GHC.Conc.Sync.STM
+ Control.Monad.Abort.Class: instance Control.Monad.Abort.Class.MonadRecover GHC.Exception.Type.SomeException GHC.Types.IO
- Control.Monad.Abort: AbortT :: μ Either e α -> AbortT e α
+ Control.Monad.Abort: AbortT :: μ (Either e α) -> AbortT e (μ :: Type -> Type) α
- Control.Monad.Abort: [runAbortT] :: AbortT e α -> μ Either e α
+ Control.Monad.Abort: [runAbortT] :: AbortT e (μ :: Type -> Type) α -> μ (Either e α)
- Control.Monad.Abort: newtype AbortT e (μ :: * -> *) α :: * -> (* -> *) -> * -> *
+ Control.Monad.Abort: newtype AbortT e (μ :: Type -> Type) α
- Control.Monad.Abort: runAbort :: () => Abort e α -> Either e α
+ Control.Monad.Abort: runAbort :: Abort e α -> Either e α
- Control.Monad.Finish: FinishT :: μ Either f α -> FinishT f α
+ Control.Monad.Finish: FinishT :: μ (Either f α) -> FinishT f (μ :: Type -> Type) α
- Control.Monad.Finish: [runFinishT] :: FinishT f α -> μ Either f α
+ Control.Monad.Finish: [runFinishT] :: FinishT f (μ :: Type -> Type) α -> μ (Either f α)
- Control.Monad.Finish: newtype FinishT f (μ :: * -> *) α :: * -> (* -> *) -> * -> *
+ Control.Monad.Finish: newtype FinishT f (μ :: Type -> Type) α
- Control.Monad.Finish: runFinish :: () => Finish f α -> Either f α
+ Control.Monad.Finish: runFinish :: Finish f α -> Either f α
- Control.Monad.Finish: runFinish' :: () => Finish α α -> α
+ Control.Monad.Finish: runFinish' :: Finish α α -> α
Files
- README.md +1/−1
- monad-abort-fd.cabal +7/−5
- src/Control/Monad/Abort/Class.hs +8/−0
- src/Control/Monad/Finish/Class.hs +10/−1
README.md view
@@ -1,7 +1,7 @@ Monad-Abort-FD ============== -[](https://travis-ci.org/mvv/monad-abort-fd) [](http://hackage.haskell.org/package/monad-abort-fd)+[](https://github.com/mvv/monad-abort-fd/actions/workflows/ci.yml) [](http://hackage.haskell.org/package/monad-abort-fd) This package provides automated lifting of operations via functional dependencies for the [transformers-abort][transformers-abort] package.
monad-abort-fd.cabal view
@@ -1,5 +1,5 @@ Name: monad-abort-fd-Version: 0.7+Version: 0.7.0.1 Category: Control Stability: experimental Synopsis: A better error monad transformer@@ -20,9 +20,10 @@ README.md Tested-With: GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2,- GHC==8.4.1+ GHC==8.4.4, GHC==8.6.5, GHC==8.8.4, GHC==8.10.7, GHC==9.0.2,+ GHC==9.2.7, GHC==9.4.5, GHC==9.6.1 -Cabal-Version: >= 1.6.0+Cabal-Version: >= 1.10.0 Build-Type: Simple Source-Repository head@@ -30,8 +31,9 @@ Location: https://github.com/mvv/monad-abort-fd.git Library- Build-Depends: base >= 4.3 && < 5- Build-Depends: transformers >= 0.2+ Default-Language: Haskell2010+ Build-Depends: base >= 4.3 && < 5+ , transformers >= 0.2 , transformers-compat >= 0.6.1 , transformers-base >= 0.4 , transformers-abort >= 0.4
src/Control/Monad/Abort/Class.hs view
@@ -26,8 +26,12 @@ import Control.Monad.Trans.Identity import Control.Monad.Trans.Maybe import Control.Monad.Cont+#if !MIN_VERSION_mtl(2,3,0) import Control.Monad.List import Control.Monad.Error+#else+import Control.Monad.Error.Class+#endif import Control.Monad.Trans.Except import Control.Monad.Reader import Control.Monad.State (MonadState(..))@@ -149,11 +153,13 @@ instance MonadRecover e μ ⇒ MonadRecover e (MaybeT μ) where recover m h = MaybeT $ runMaybeT m `recover` (runMaybeT . h) +#if !MIN_VERSION_mtl(2,3,0) instance MonadAbort e μ ⇒ MonadAbort e (ListT μ) where abort = lift . abort instance MonadRecover e μ ⇒ MonadRecover e (ListT μ) where recover m h = ListT $ runListT m `recover` (runListT . h)+#endif instance MonadAbort e μ ⇒ MonadAbort e (ReaderT r μ) where abort = lift . abort@@ -201,11 +207,13 @@ recover m h = S.RWST $ \r s → S.runRWST m r s `recover` (\e → S.runRWST (h e) r s) +#if !MIN_VERSION_mtl(2,3,0) instance (Functor μ, Monad μ, Error e) ⇒ MonadAbort e (ErrorT e μ) where abort = throwError instance (Functor μ, Monad μ, Error e) ⇒ MonadRecover e (ErrorT e μ) where recover = catchError+#endif instance (Functor μ, Monad μ) ⇒ MonadAbort e (ExceptT e μ) where abort = throwError
src/Control/Monad/Finish/Class.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE UnicodeSyntax #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE MultiParamTypeClasses #-}@@ -15,9 +16,13 @@ import Control.Monad.Trans.Identity import Control.Monad.Trans.Maybe import Control.Monad.Cont-import Control.Monad.Error import Control.Monad.Trans.Except+#if !MIN_VERSION_mtl(2,3,0) import Control.Monad.List+import Control.Monad.Error+#else+import Control.Monad.Error.Class+#endif import Control.Monad.Reader import Control.Monad.State (MonadState(..)) import qualified Control.Monad.State.Lazy as L@@ -79,8 +84,10 @@ instance MonadFinish f μ ⇒ MonadFinish f (MaybeT μ) where finish = lift . finish +#if !MIN_VERSION_mtl(2,3,0) instance (MonadFinish f μ, Error e) ⇒ MonadFinish f (ErrorT e μ) where finish = lift . finish+#endif instance MonadFinish f μ ⇒ MonadFinish f (ExceptT e μ) where finish = lift . finish@@ -88,8 +95,10 @@ instance MonadFinish f μ ⇒ MonadFinish f (AbortT e μ) where finish = lift . finish +#if !MIN_VERSION_mtl(2,3,0) instance MonadFinish f μ ⇒ MonadFinish f (ListT μ) where finish = lift . finish+#endif instance MonadFinish f μ ⇒ MonadFinish f (ReaderT r μ) where finish = lift . finish