diff --git a/library/Rebase/Control/Monad/Cont/Class.hs b/library/Rebase/Control/Monad/Cont/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Control/Monad/Cont/Class.hs
@@ -0,0 +1,7 @@
+module Rebase.Control.Monad.Cont.Class
+(
+  module Control.Monad.Cont.Class,
+)
+where
+
+import Control.Monad.Cont.Class
diff --git a/library/Rebase/Control/Monad/Error/Class.hs b/library/Rebase/Control/Monad/Error/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Control/Monad/Error/Class.hs
@@ -0,0 +1,7 @@
+module Rebase.Control.Monad.Error.Class
+(
+  module Control.Monad.Error.Class,
+)
+where
+
+import Control.Monad.Error.Class
diff --git a/library/Rebase/Control/Monad/Reader/Class.hs b/library/Rebase/Control/Monad/Reader/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Control/Monad/Reader/Class.hs
@@ -0,0 +1,7 @@
+module Rebase.Control.Monad.Reader.Class
+(
+  module Control.Monad.Reader.Class,
+)
+where
+
+import Control.Monad.Reader.Class
diff --git a/library/Rebase/Control/Monad/State/Class.hs b/library/Rebase/Control/Monad/State/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Control/Monad/State/Class.hs
@@ -0,0 +1,7 @@
+module Rebase.Control.Monad.State.Class
+(
+  module Control.Monad.State.Class,
+)
+where
+
+import Control.Monad.State.Class
diff --git a/library/Rebase/Control/Monad/Writer/Class.hs b/library/Rebase/Control/Monad/Writer/Class.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Control/Monad/Writer/Class.hs
@@ -0,0 +1,7 @@
+module Rebase.Control.Monad.Writer.Class
+(
+  module Control.Monad.Writer.Class,
+)
+where
+
+import Control.Monad.Writer.Class
diff --git a/library/Rebase/Prelude.hs b/library/Rebase/Prelude.hs
--- a/library/Rebase/Prelude.hs
+++ b/library/Rebase/Prelude.hs
@@ -45,12 +45,20 @@
 -------------------------
 import Rebase.Control.Monad.IO.Class as Exports
 import Rebase.Control.Monad.Trans.Class as Exports
-import Rebase.Control.Monad.Trans.Cont as Exports hiding (shift)
+import Rebase.Control.Monad.Trans.Cont as Exports hiding (shift, callCC)
 import Rebase.Control.Monad.Trans.Except as Exports (ExceptT(ExceptT), Except, except, runExcept, runExceptT, mapExcept, mapExceptT, withExcept, withExceptT)
 import Rebase.Control.Monad.Trans.Maybe as Exports
 import Rebase.Control.Monad.Trans.Reader as Exports (Reader, runReader, mapReader, withReader, ReaderT(ReaderT), runReaderT, mapReaderT, withReaderT)
 import Rebase.Control.Monad.Trans.State.Strict as Exports (State, runState, evalState, execState, mapState, withState, StateT(StateT), runStateT, evalStateT, execStateT, mapStateT, withStateT)
 import Rebase.Control.Monad.Trans.Writer.Strict as Exports (Writer, runWriter, execWriter, mapWriter, WriterT(..), execWriterT, mapWriterT)
+
+-- mtl
+-------------------------
+import Rebase.Control.Monad.Cont.Class as Exports
+import Rebase.Control.Monad.Error.Class as Exports hiding (Error(..))
+import Rebase.Control.Monad.Reader.Class as Exports
+import Rebase.Control.Monad.State.Class as Exports
+import Rebase.Control.Monad.Writer.Class as Exports
 
 -- either
 -------------------------
diff --git a/rebase.cabal b/rebase.cabal
--- a/rebase.cabal
+++ b/rebase.cabal
@@ -1,7 +1,7 @@
 name:
   rebase
 version:
-  0.2.3
+  0.2.4
 synopsis:
   A more progressive alternative to the "base" package
 description:
@@ -119,6 +119,12 @@
     Rebase.Control.Monad.Trans.State.Strict
     Rebase.Control.Monad.Trans.Writer.Lazy
     Rebase.Control.Monad.Trans.Writer.Strict
+    -- mtl:
+    Rebase.Control.Monad.Cont.Class
+    Rebase.Control.Monad.Error.Class
+    Rebase.Control.Monad.Reader.Class
+    Rebase.Control.Monad.State.Class
+    Rebase.Control.Monad.Writer.Class
     -- either:
     Rebase.Control.Monad.Trans.Either
     Rebase.Data.Either.Combinators
@@ -144,6 +150,7 @@
     semigroups >= 0.18 && < 0.19,
     deepseq >= 1.4 && < 2,
     transformers >= 0.4 && < 0.6,
+    mtl >= 2.2 && < 3.0,
     either >= 4.4 && < 5,
     -- general:
     base-prelude >= 0.1.21 && < 0.2,
