deriving-trans 0.3.0.0 → 0.3.1.0
raw patch · 4 files changed
+11/−2 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Control.Monad.Trans.Elevator: instance (GHC.Base.Monad (t m), Control.Monad.Trans.Control.MonadTransControl t, Control.Monad.Fix.MonadFix m) => Control.Monad.Fix.MonadFix (Control.Monad.Trans.Elevator.Elevator t m)
Files
- CHANGELOG.md +4/−0
- deriving-trans.cabal +1/−1
- src/Control/Monad/Trans/Compose.hs +1/−1
- src/Control/Monad/Trans/Elevator.hs +5/−0
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for deriving-trans +## 0.3.1.0 *08 Feb 2022*++* Add `MonadFix` instance to `Elevator`.+ ## 0.3.0.0 *04 Feb 2022* * Add "base-case" instances for both lazy and strict transformers (from mtl) to `ComposeT`.
deriving-trans.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: deriving-trans-version: 0.3.0.0+version: 0.3.1.0 synopsis: Derive instances for monad transformer stacks description: Implementing instances for monad transformer stacks can be tedious. <https://hackage.haskell.org/package/mtl mtl> defines each instance for each
src/Control/Monad/Trans/Compose.hs view
@@ -289,7 +289,7 @@ -- -- @ -- deriving via 'Elevator' t1 (t2 (m :: * -> *))--- instance {-# OVERLAPPABLE #-}+-- instance {-\# OVERLAPPABLE \#-} -- ( 'Monad' (t1 (t2 m)) -- , 'MonadTransControl' t1 -- , MonadCustom (t2 m)
src/Control/Monad/Trans/Elevator.hs view
@@ -7,6 +7,7 @@ import Control.Monad.Base import Control.Monad.Cont.Class import Control.Monad.Error.Class+import Control.Monad.Fix import Control.Monad.Reader.Class import Control.Monad.RWS.Class (MonadRWS) import Control.Monad.State.Class@@ -54,6 +55,10 @@ instance (Monad (t m), MonadTrans t, MonadFail m) => MonadFail (Elevator t m) where fail = lift . fail++instance (Monad (t m), MonadTransControl t, MonadFix m) => MonadFix (Elevator t m) where+ mfix f = (restoreT . pure =<<) $ liftWith $ \ runT ->+ mfix $ \ x -> runT $ (f =<<) $ restoreT $ pure x instance (Monad (t m), MonadTrans t, MonadIO m) => MonadIO (Elevator t m) where liftIO = lift . liftIO