mmorph 1.2.1 → 1.2.2
raw patch · 2 files changed
+7/−4 lines, 2 filesdep ~basedep ~transformers-compat
Dependency ranges changed: base, transformers-compat
Files
- mmorph.cabal +2/−2
- src/Control/Monad/Trans/Compose.hs +5/−2
mmorph.cabal view
@@ -1,5 +1,5 @@ Name: mmorph-Version: 1.2.1+Version: 1.2.2 Cabal-Version: >= 1.10 Build-Type: Simple License: BSD3@@ -23,7 +23,7 @@ base >= 4.5 && < 5 , mtl >= 2.1 && < 2.4, transformers >= 0.2.0.0 && < 0.7,- transformers-compat >= 0.3 && < 0.8+ transformers-compat >= 0.6.1 && < 0.8 if impl(ghc < 8.0) Build-Depends: fail == 4.9.*
src/Control/Monad/Trans/Compose.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE StandaloneKindSignatures #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE CPP #-}@@ -36,13 +37,15 @@ import Control.Monad.Writer.Class (MonadWriter(writer, tell, listen, pass)) import Control.Monad.IO.Class (MonadIO(liftIO)) import Data.Foldable (Foldable(fold, foldMap, foldr, foldl, foldr1, foldl1))+import Data.Kind (Type) import Data.Traversable (Traversable(traverse, sequenceA, mapM, sequence)) import Prelude hiding (foldr, foldl, foldr1, foldl1, mapM, sequence) infixr 9 `ComposeT` -- | Composition of monad transformers.-newtype ComposeT (f :: (* -> *) -> * -> *) (g :: (* -> *) -> * -> *) m a+type ComposeT :: ((Type -> Type) -> Type -> Type) -> ((Type -> Type) -> Type -> Type) -> (Type -> Type) -> Type -> Type+newtype ComposeT f g m a = ComposeT { getComposeT :: f (g m) a } deriving ( Alternative@@ -70,7 +73,7 @@ where lift = ComposeT . hoist lift . lift -#if __GLASGOW_HASKELL__ >= 806+#if defined(__MHS__) || __GLASGOW_HASKELL__ >= 806 instance (MFunctor f, MFunctor g, forall m. Monad m => Monad (g m)) => MFunctor (ComposeT f g) where hoist f (ComposeT m) = ComposeT (hoist (hoist f) m)