di-monad 1.0 → 1.0.1
raw patch · 3 files changed
+22/−12 lines, 3 files
Files
- CHANGELOG.md +4/−0
- di-monad.cabal +1/−1
- lib/Di/Monad.hs +17/−11
CHANGELOG.md view
@@ -1,3 +1,7 @@+# Version 1.0.1++* Backwards compatibility with `transformers < 0.5.3`.+ # Version 1.0 * This is a new library part of the `di-core` ecosystem.
di-monad.cabal view
@@ -1,5 +1,5 @@ name: di-monad-version: 1.0+version: 1.0.1 author: Renzo Carbonara maintainer: renλren.zone copyright: Renzo Carbonara 2017-2018
lib/Di/Monad.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-}@@ -73,10 +74,8 @@ import Control.Monad.State (MonadState) import qualified Control.Monad.State.Lazy as SL import qualified Control.Monad.State.Strict as SS-import Control.Monad.Trans.Accum (AccumT(AccumT)) import Control.Monad.Trans.Class (MonadTrans, lift) import Control.Monad.Trans.Maybe (MaybeT(MaybeT))-import Control.Monad.Trans.Select (SelectT(SelectT)) import Control.Monad.Writer (MonadWriter) import qualified Control.Monad.Writer.Lazy as WL import qualified Control.Monad.Writer.Strict as WS@@ -86,6 +85,11 @@ import qualified Pipes.Internal as P import Prelude hiding (filter, error, log) +#if MIN_VERSION_transformers(0,5,3)+import Control.Monad.Trans.Accum (AccumT(AccumT))+import Control.Monad.Trans.Select (SelectT(SelectT))+#endif+ import Di.Core (Di) import qualified Di.Core as Di @@ -432,11 +436,6 @@ {-# INLINE local #-} instance (Monoid w, MonadDi level path msg m)- => MonadDi level path msg (AccumT w m) where- local f = \(AccumT gma) -> AccumT (\w -> local f (gma w))- {-# INLINE local #-}--instance (Monoid w, MonadDi level path msg m) => MonadDi level path msg (WS.WriterT w m) where local f = \(WS.WriterT ma) -> WS.WriterT (local f ma) {-# INLINE local #-}@@ -462,10 +461,6 @@ local f = \(ContT gma) -> ContT (\r -> local f (gma r)) {-# INLINE local #-} -instance MonadDi level path msg m => MonadDi level path msg (SelectT r m) where- local f = \(SelectT gma) -> SelectT (\r -> local f (gma r))- {-# INLINE local #-}- instance (Monoid w, MonadDi level path msg m) => MonadDi level path msg (RWSS.RWST r w s m) where local f = \(RWSS.RWST gma) -> RWSS.RWST (\r s -> local f (gma r s))@@ -475,6 +470,17 @@ => MonadDi level path msg (RWSL.RWST r w s m) where local f = \(RWSL.RWST gma) -> RWSL.RWST (\r s -> local f (gma r s)) {-# INLINE local #-}++#if MIN_VERSION_transformers(0,5,3)+instance (Monoid w, MonadDi level path msg m)+ => MonadDi level path msg (AccumT w m) where+ local f = \(AccumT gma) -> AccumT (\w -> local f (gma w))+ {-# INLINE local #-}++instance MonadDi level path msg m => MonadDi level path msg (SelectT r m) where+ local f = \(SelectT gma) -> SelectT (\r -> local f (gma r))+ {-# INLINE local #-}+#endif instance MonadDi level path msg m => MonadDi level path msg (P.Proxy a' a b' b m) where