diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+1.2.0
+
+* BREAKING CHANGE: Remove instances for `ErrorT` and `ListT`
+  * These types are deprecated
+
 1.1.5
 
 * Fix build failures on GHC 8.4 and 8.6
diff --git a/mmorph.cabal b/mmorph.cabal
--- a/mmorph.cabal
+++ b/mmorph.cabal
@@ -1,5 +1,5 @@
 Name: mmorph
-Version: 1.1.5
+Version: 1.2.0
 Cabal-Version: >= 1.10
 Build-Type: Simple
 License: BSD3
@@ -20,7 +20,7 @@
 Library
     Hs-Source-Dirs: src
     Build-Depends:
-        base                >= 4       && < 5  ,
+        base                >= 4.5     && < 5  ,
         mtl                 >= 2.1     && < 2.3,
         transformers        >= 0.2.0.0 && < 0.6,
         transformers-compat >= 0.3     && < 0.7
diff --git a/src/Control/Monad/Morph.hs b/src/Control/Monad/Morph.hs
--- a/src/Control/Monad/Morph.hs
+++ b/src/Control/Monad/Morph.hs
@@ -78,10 +78,8 @@
     ) where
 
 import Control.Monad.Trans.Class (MonadTrans(lift))
-import qualified Control.Monad.Trans.Error         as E
 import qualified Control.Monad.Trans.Except        as Ex
 import qualified Control.Monad.Trans.Identity      as I
-import qualified Control.Monad.Trans.List          as L
 import qualified Control.Monad.Trans.Maybe         as M
 import qualified Control.Monad.Trans.Reader        as R
 import qualified Control.Monad.Trans.RWS.Lazy      as RWS
@@ -117,18 +115,12 @@
     -}
     hoist :: (Monad m) => (forall a . m a -> n a) -> t m b -> t n b
 
-instance MFunctor (E.ErrorT e) where
-    hoist nat m = E.ErrorT (nat (E.runErrorT m))
-
 instance MFunctor (Ex.ExceptT e) where
     hoist nat m = Ex.ExceptT (nat (Ex.runExceptT m))
 
 instance MFunctor I.IdentityT where
     hoist nat m = I.IdentityT (nat (I.runIdentityT m))
 
-instance MFunctor L.ListT where
-    hoist nat m = L.ListT (nat (L.runListT m))
-
 instance MFunctor M.MaybeT where
     hoist nat m = M.MaybeT (nat (M.runMaybeT m))
 
@@ -238,14 +230,6 @@
 t |>= f = embed f t
 {-# INLINABLE (|>=) #-}
 
-instance (E.Error e) => MMonad (E.ErrorT e) where
-    embed f m = E.ErrorT (do
-        x <- E.runErrorT (f (E.runErrorT m))
-        return (case x of
-            Left         e  -> Left e
-            Right (Left  e) -> Left e
-            Right (Right a) -> Right a ) )
-
 instance MMonad (Ex.ExceptT e) where
     embed f m = Ex.ExceptT (do
         x <- Ex.runExceptT (f (Ex.runExceptT m))
@@ -256,11 +240,6 @@
 
 instance MMonad I.IdentityT where
     embed f m = f (I.runIdentityT m)
-
-instance MMonad L.ListT where
-    embed f m = L.ListT (do
-        x <- L.runListT (f (L.runListT m))
-        return (concat x))
 
 instance MMonad M.MaybeT where
     embed f m = M.MaybeT (do
