diff --git a/ClassyPrelude.hs b/ClassyPrelude.hs
--- a/ClassyPrelude.hs
+++ b/ClassyPrelude.hs
@@ -25,6 +25,14 @@
     , orElseSTM
     , checkSTM
     , module Data.IORef.Lifted
+      -- ** Primitive (exported since 0.9.4)
+    , PrimMonad
+    , PrimState
+    , primToPrim
+    , primToIO
+    , primToST
+    , module Data.Primitive.MutVar
+    , Prim
       -- ** Debugging
     , trace
     , traceShow
@@ -38,6 +46,12 @@
     , defaultTimeLocale
       -- ** Generics (since 0.8.1)
     , Generic
+      -- ** Transformers (since 0.9.4)
+    , Identity (..)
+    , MonadReader
+    , ask
+    , ReaderT (..)
+    , Reader
       -- * Poly hierarchy
     , module Data.Foldable
     , module Data.Traversable
@@ -187,6 +201,13 @@
 import Data.Textual.Encoding
 import Data.Sequences.Lazy
 import GHC.Generics (Generic)
+
+import Control.Monad.Primitive (PrimMonad, PrimState, primToPrim, primToIO, primToST)
+import Data.Primitive.MutVar
+import Data.Primitive.Types (Prim)
+
+import Data.Functor.Identity (Identity (..))
+import Control.Monad.Reader (MonadReader, ask, ReaderT (..), Reader)
 
 tshow :: Show a => a -> Text
 tshow = fromList . Prelude.show
diff --git a/classy-prelude.cabal b/classy-prelude.cabal
--- a/classy-prelude.cabal
+++ b/classy-prelude.cabal
@@ -1,5 +1,5 @@
 name:                classy-prelude
-version:             0.9.3
+version:             0.9.4
 synopsis:            A typeclass-based Prelude.
 description:         Focuses on using common typeclasses when possible, and creating new ones to avoid name clashing. Exposes many recommended datastructures (Map, ByteString, etc) directly without requiring long import lists and qualified modules.
 homepage:            https://github.com/snoyberg/classy-prelude
@@ -34,6 +34,8 @@
                      , enclosed-exceptions
                      , ghc-prim
                      , stm
+                     , primitive
+                     , mtl
   ghc-options:         -Wall -fno-warn-orphans
 
 test-suite test
