diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,17 @@
+Transformers-Base
+=================
+
+[![Build](https://github.com/mvv/transformers-base/actions/workflows/ci.yml/badge.svg)](https://github.com/mvv/transformers-base/actions/workflows/ci.yml) [![Hackage](https://img.shields.io/hackage/v/transformers-base.svg)](http://hackage.haskell.org/package/transformers-base)
+
+This package provides a straightforward port of [monadLib][monadLib]'s BaseM
+typeclass to [transformers][transformers].
+
+[monadLib]: http://hackage.haskell.org/package/monadLib
+[transformers]: http://hackage.haskell.org/package/transformers
+
+Installation
+------------
+The usual:
+
+	$ cabal install
+
diff --git a/src/Control/Monad/Base.hs b/src/Control/Monad/Base.hs
--- a/src/Control/Monad/Base.hs
+++ b/src/Control/Monad/Base.hs
@@ -19,13 +19,10 @@
   , liftBaseDefault
   ) where
 
-import Data.Monoid
 import Data.Functor.Identity
-import Control.Applicative (Applicative(..))
 import Control.Monad.Trans.Class
 import Control.Monad.Trans.Identity
 import Control.Monad.Trans.Maybe
-import Control.Monad.Trans.List
 import Control.Monad.Trans.Reader
 import qualified Control.Monad.Trans.Writer.Lazy as L
 import qualified Control.Monad.Trans.Writer.Strict as S
@@ -33,17 +30,35 @@
 import qualified Control.Monad.Trans.State.Strict as S
 import qualified Control.Monad.Trans.RWS.Lazy as L
 import qualified Control.Monad.Trans.RWS.Strict as S
+#if MIN_VERSION_transformers(0,5,6)
+import qualified Control.Monad.Trans.Writer.CPS as C
+import qualified Control.Monad.Trans.RWS.CPS as C
+#endif
+#if !MIN_VERSION_transformers(0,6,0)
+import Control.Monad.Trans.List
 import Control.Monad.Trans.Error
+#endif
 import Control.Monad.Trans.Cont
 import Control.Monad.Trans.Except
+import Control.Monad.Trans.Accum
+import Control.Monad.Trans.Select
+#if !MIN_VERSION_base(4,8,0)
+import Data.Monoid
+import Control.Applicative (Applicative(..))
+#endif
 #if !MIN_VERSION_base(4,4,0) && HS_TRANSFORMERS_BASE__ORPHANS
-import Control.Monad (ap)
 import qualified Control.Monad.ST.Lazy as L
 import qualified Control.Monad.ST.Strict as S
+import Data.Orphans ()
 #endif
 #if MIN_VERSION_base(4,4,0)
+# if MIN_VERSION_base(4,8,0)
+import qualified Control.Monad.ST.Lazy as L
+import qualified Control.Monad.ST.Strict as S
+# else
 import qualified Control.Monad.ST.Lazy.Safe as L
 import qualified Control.Monad.ST.Safe as S
+# endif
 #endif
 import Control.Monad.STM (STM)
 
@@ -65,14 +80,6 @@
 BASE(STM)
 
 #if !MIN_VERSION_base(4,4,0) && HS_TRANSFORMERS_BASE__ORPHANS
-instance Applicative (L.ST s) where
-  pure  = return
-  (<*>) = ap
-
-instance Applicative (S.ST s) where
-  pure  = return
-  (<*>) = ap
-
 BASE(L.ST s)
 BASE(S.ST s)
 #endif
@@ -95,12 +102,15 @@
 
 TRANS(IdentityT)
 TRANS(MaybeT)
-TRANS(ListT)
 TRANS(ReaderT r)
 TRANS(L.StateT s)
 TRANS(S.StateT s)
 TRANS(ContT r)
 TRANS(ExceptT e)
+TRANS(SelectT r)
+#if !MIN_VERSION_transformers(0,6,0)
+TRANS(ListT)
+#endif
 #undef TRANS
 
 #define TRANS_CTX(CTX, T) \
@@ -110,5 +120,12 @@
 TRANS_CTX(Monoid w, S.WriterT w)
 TRANS_CTX(Monoid w, L.RWST r w s)
 TRANS_CTX(Monoid w, S.RWST r w s)
+#if MIN_VERSION_transformers(0,5,6)
+TRANS_CTX(Monoid w, C.WriterT w)
+TRANS_CTX(Monoid w, C.RWST r w s)
+#endif
+#if !MIN_VERSION_transformers(0,6,0)
 TRANS_CTX(Error e,  ErrorT e)
+#endif
+TRANS_CTX(Monoid w, AccumT w)
 #undef TRANS_CTX
diff --git a/transformers-base.cabal b/transformers-base.cabal
--- a/transformers-base.cabal
+++ b/transformers-base.cabal
@@ -1,5 +1,5 @@
 Name: transformers-base
-Version: 0.4.4
+Version: 0.4.6.1
 Category: Control
 Stability: experimental
 Synopsis: Lift computations from the bottom of a transformer stack
@@ -20,7 +20,15 @@
 License: BSD3
 License-File: LICENSE
 
-Cabal-Version: >= 1.6.0
+Extra-Source-Files:
+  README.md
+
+Tested-With: GHC==7.0.4, GHC==7.4.2, GHC==7.6.3, GHC==7.8.4, GHC==7.10.3,
+             GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.4,
+             GHC==8.10.7, GHC==9.0.2, GHC==9.2.8, GHC==9.4.8, GHC==9.6.7,
+             GHC==9.8.4, GHC==9.10.3, GHC==9.12.2
+
+Cabal-Version: >= 1.10
 Build-Type: Simple
 
 Source-Repository head
@@ -29,18 +37,21 @@
 
 Flag OrphanInstances
   Description:
-    Declare orphan Applicative instances for lazy and strict ST if needed
+    Import orphan Applicative instances for lazy and strict ST if needed
   Default: True
 
 Library
+  Default-Language: Haskell2010
   Build-Depends:
-    base                >= 3 && < 5,
+    base                >= 3 && < 5 && (< 4.4 || >= 4.5),
     stm                 >= 2.3,
     transformers        >= 0.2,
-    transformers-compat >= 0.2
+    transformers-compat >= 0.6.1
   Hs-Source-Dirs: src
   GHC-Options: -Wall
   if flag(OrphanInstances)
+    Build-Depends:
+      base-orphans >= 0.3
     CPP-Options: -DHS_TRANSFORMERS_BASE__ORPHANS=1
   else
     CPP-Options: -DHS_TRANSFORMERS_BASE__ORPHANS=0
