diff --git a/Control/Monad/Trans/Resource.hs b/Control/Monad/Trans/Resource.hs
--- a/Control/Monad/Trans/Resource.hs
+++ b/Control/Monad/Trans/Resource.hs
@@ -6,6 +6,9 @@
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE CPP #-}
 {-# LANGUAGE DeriveDataTypeable #-}
+#if __GLASGOW_HASKELL__ >= 704
+{-# LANGUAGE ConstraintKinds #-}
+#endif
 -- | Allocate resources which are guaranteed to be released.
 --
 -- For more information, see <http://www.yesodweb.com/book/conduits>.
@@ -31,6 +34,7 @@
     , MonadUnsafeIO (..)
     , MonadThrow (..)
     , MonadActive (..)
+    , MonadResourceBase
       -- ** Low-level
     , InvalidAccess (..)
       -- * Re-exports
@@ -73,8 +77,21 @@
 import qualified Control.Monad.Trans.Writer.Strict as Strict ( WriterT )
 import Control.Concurrent (ThreadId, forkIO)
 
-import Control.Monad.ST (ST, unsafeIOToST)
+import Control.Monad.ST (ST)
+#if __GLASGOW_HASKELL__ >= 704
+import Control.Monad.ST.Unsafe (unsafeIOToST)
+#else
+import Control.Monad.ST (unsafeIOToST)
+#endif
+
+#if __GLASGOW_HASKELL__ >= 704
+import qualified Control.Monad.ST.Lazy.Unsafe as LazyUnsafe
+#else
+import qualified Control.Monad.ST.Lazy as LazyUnsafe
+#endif
+
 import qualified Control.Monad.ST.Lazy as Lazy
+
 import Data.Functor.Identity (Identity)
 
 -- | A lookup key for a specific release action. This value is returned by
@@ -110,7 +127,11 @@
         goType :: Typeable1 m => m a -> ResourceT m a -> TypeRep
         goType m _ =
             mkTyConApp
+#if __GLASGOW_HASKELL__ >= 704
+                (mkTyCon3 "resourcet" "Control.Monad.Trans.Resource" "ResourceT")
+#else
                 (mkTyCon "Control.Monad.Trans.Resource.ResourceT")
+#endif
                 [ typeOf1 m
                 ]
 
@@ -446,7 +467,7 @@
     unsafeLiftIO = unsafeIOToST
 
 instance MonadUnsafeIO (Lazy.ST s) where
-    unsafeLiftIO = Lazy.unsafeIOToST
+    unsafeLiftIO = LazyUnsafe.unsafeIOToST
 
 instance (MonadTrans t, MonadUnsafeIO m, Monad (t m)) => MonadUnsafeIO (t m) where
     unsafeLiftIO = lift . unsafeLiftIO
@@ -494,3 +515,30 @@
 GOX(Monoid w, Strict.WriterT w)
 #undef GO
 #undef GOX
+
+-- | A @Monad@ which can be used as a base for a @ResourceT@.
+--
+-- A @ResourceT@ has some restrictions on its base monad:
+--
+-- * @runResourceT@ requires an instance of @MonadBaseControl IO@.
+-- * @MonadResource@ requires an instance of @MonadThrow@, @MonadUnsafeIO@, @MonadIO@, and @Applicative@.
+--
+-- While any instance of @MonadBaseControl IO@ should be an instance of the
+-- other classes, this is not guaranteed by the type system (e.g., you may have
+-- a transformer in your stack with does not implement @MonadThrow@). Ideally,
+-- we would like to simply create an alias for the five type classes listed,
+-- but this is not possible with GHC currently.
+--
+-- Instead, this typeclass acts as a proxy for the other five. Its only purpose
+-- is to make your type signatures shorter.
+--
+-- Note that earlier versions of @conduit@ had a typeclass @ResourceIO@. This
+-- fulfills much the same role.
+--
+-- Since 0.3.2
+#if __GLASGOW_HASKELL__ >= 704
+type MonadResourceBase m = (MonadBaseControl IO m, MonadThrow m, MonadUnsafeIO m, MonadIO m, Applicative m)
+#else
+class (MonadBaseControl IO m, MonadThrow m, MonadUnsafeIO m, MonadIO m, Applicative m) => MonadResourceBase m
+instance (MonadBaseControl IO m, MonadThrow m, MonadUnsafeIO m, MonadIO m, Applicative m) => MonadResourceBase m
+#endif
diff --git a/resourcet.cabal b/resourcet.cabal
--- a/resourcet.cabal
+++ b/resourcet.cabal
@@ -1,5 +1,5 @@
 Name:                resourcet
-Version:             0.3.1
+Version:             0.3.2
 Synopsis:            Deterministic allocation and freeing of scarce resources.
 Description:
 	This package was originally included with the conduit package, and has since been split off. For more information, please see <http://www.yesodweb.com/book/conduits>.
@@ -19,7 +19,7 @@
                      , transformers-base        >= 0.4.1        && < 0.5
                      , monad-control            >= 0.3.1        && < 0.4
                      , containers
-                     , transformers             >= 0.2.2        && < 0.3
+                     , transformers             >= 0.2.2        && < 0.4
   ghc-options:     -Wall
 
 source-repository head
