diff --git a/mmorph.cabal b/mmorph.cabal
--- a/mmorph.cabal
+++ b/mmorph.cabal
@@ -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.*
diff --git a/src/Control/Monad/Trans/Compose.hs b/src/Control/Monad/Trans/Compose.hs
--- a/src/Control/Monad/Trans/Compose.hs
+++ b/src/Control/Monad/Trans/Compose.hs
@@ -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)
