monad-abort-fd 0.6.1 → 0.6.2
raw patch · 2 files changed
+13/−2 lines, 2 filesdep ~transformers-compatPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: transformers-compat
API changes (from Hackage documentation)
+ Control.Monad.Abort.Class: instance (GHC.Base.Monoid w, Control.Monad.Abort.Class.MonadAbort e μ) => Control.Monad.Abort.Class.MonadAbort e (Control.Monad.Trans.Accum.AccumT w μ)
+ Control.Monad.Abort.Class: instance (GHC.Base.Monoid w, Control.Monad.Abort.Class.MonadRecover e μ) => Control.Monad.Abort.Class.MonadRecover e (Control.Monad.Trans.Accum.AccumT w μ)
+ Control.Monad.Abort.Class: instance Control.Monad.Abort.Class.MonadAbort e μ => Control.Monad.Abort.Class.MonadAbort e (Control.Monad.Trans.Select.SelectT r μ)
Files
- monad-abort-fd.cabal +2/−2
- src/Control/Monad/Abort/Class.hs +11/−0
monad-abort-fd.cabal view
@@ -1,5 +1,5 @@ Name: monad-abort-fd-Version: 0.6.1+Version: 0.6.2 Category: Control Stability: experimental Synopsis: A better error monad transformer@@ -32,7 +32,7 @@ Library Build-Depends: base >= 4.3 && < 5 Build-Depends: transformers >= 0.2- , transformers-compat >= 0.5+ , transformers-compat >= 0.6.1 , transformers-base >= 0.4 , transformers-abort >= 0.4 , mtl >= 2.0
src/Control/Monad/Abort/Class.hs view
@@ -39,6 +39,8 @@ import Control.Monad.RWS (MonadRWS) import qualified Control.Monad.RWS.Lazy as L import qualified Control.Monad.RWS.Strict as S+import Control.Monad.Trans.Accum (AccumT(..), runAccumT)+import Control.Monad.Trans.Select (SelectT(..)) import Control.Monad.Trans.Abort (AbortT(..)) import qualified Control.Monad.Trans.Abort as A import Control.Monad.STM (STM, throwSTM, catchSTM)@@ -209,3 +211,12 @@ instance (Functor μ, Monad μ) ⇒ MonadRecover e (ExceptT e μ) where recover = catchError++instance (Monoid w, MonadAbort e μ) ⇒ MonadAbort e (AccumT w μ) where+ abort = lift . abort++instance (Monoid w, MonadRecover e μ) ⇒ MonadRecover e (AccumT w μ) where+ recover m h = AccumT $ \w → runAccumT m w `recover` ((`runAccumT` w) . h)++instance MonadAbort e μ ⇒ MonadAbort e (SelectT r μ) where+ abort = lift . abort