monad-abort-fd 0.6 → 0.6.1
raw patch · 3 files changed
+30/−2 lines, 3 filesdep +stmPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: stm
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.MonadRecover GHC.Exception.SomeException GHC.Conc.Sync.STM
- Control.Monad.Abort: AbortT :: μ (Either e α) -> AbortT e α
+ Control.Monad.Abort: AbortT :: μ Either e α -> AbortT e α
- Control.Monad.Abort: [runAbortT] :: AbortT e α -> μ (Either e α)
+ Control.Monad.Abort: [runAbortT] :: AbortT e α -> μ Either e α
- Control.Monad.Abort: class MonadAbort e μ => MonadRecover e μ | μ -> e where recover m h = evaluate m >>= either h return evaluate m = recover (Right <$> m) (return . Left)
+ Control.Monad.Abort: class MonadAbort e μ => MonadRecover e μ | μ -> e
- Control.Monad.Abort: runAbort :: Abort e α -> Either e α
+ Control.Monad.Abort: runAbort :: () => Abort e α -> Either e α
- Control.Monad.Abort.Class: class MonadAbort e μ => MonadRecover e μ | μ -> e where recover m h = evaluate m >>= either h return evaluate m = recover (Right <$> m) (return . Left)
+ Control.Monad.Abort.Class: class MonadAbort e μ => MonadRecover e μ | μ -> e
- Control.Monad.Finish: FinishT :: μ (Either f α) -> FinishT f α
+ Control.Monad.Finish: FinishT :: μ Either f α -> FinishT f α
- Control.Monad.Finish: [runFinishT] :: FinishT f α -> μ (Either f α)
+ Control.Monad.Finish: [runFinishT] :: FinishT f α -> μ Either f α
- 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 +16/−0
- monad-abort-fd.cabal +7/−2
- src/Control/Monad/Abort/Class.hs +7/−0
+ README.md view
@@ -0,0 +1,16 @@+Monad-Abort-FD+==============++[](https://travis-ci.org/mvv/monad-abort-fd) [](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.++[transformers-abort]: http://hackage.haskell.org/package/transformers-abort++Installation+------------+The usual:++ $ cabal install+
monad-abort-fd.cabal view
@@ -1,5 +1,5 @@ Name: monad-abort-fd-Version: 0.6+Version: 0.6.1 Category: Control Stability: experimental Synopsis: A better error monad transformer@@ -16,8 +16,12 @@ License: BSD3 License-File: LICENSE -Tested-With: GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2+Extra-Source-Files:+ 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+ Cabal-Version: >= 1.6.0 Build-Type: Simple @@ -32,6 +36,7 @@ , transformers-base >= 0.4 , transformers-abort >= 0.4 , mtl >= 2.0+ , stm >= 2.4 Hs-Source-Dirs: src GHC-Options: -Wall Exposed-Modules:
src/Control/Monad/Abort/Class.hs view
@@ -41,6 +41,7 @@ import qualified Control.Monad.RWS.Strict as S import Control.Monad.Trans.Abort (AbortT(..)) import qualified Control.Monad.Trans.Abort as A+import Control.Monad.STM (STM, throwSTM, catchSTM) -- | Class of monads that support raising of errors. class (Applicative μ, Monad μ) ⇒ MonadAbort e μ | μ → e where@@ -97,6 +98,12 @@ instance MonadRecover SomeException IO where recover = catch++instance MonadAbort SomeException STM where+ abort = throwSTM++instance MonadRecover SomeException STM where+ recover = catchSTM instance Monad μ ⇒ MonadError e (AbortT e μ) where throwError = A.abort