diff --git a/Yesod/Persist.hs b/Yesod/Persist.hs
--- a/Yesod/Persist.hs
+++ b/Yesod/Persist.hs
@@ -2,6 +2,7 @@
 {-# LANGUAGE FlexibleContexts #-}
 module Yesod.Persist
     ( YesodPersist (..)
+    , YesodDB
     , get404
     , getBy404
     , module Database.Persist
@@ -11,29 +12,32 @@
 import Database.Persist
 import Database.Persist.TH
 import Control.Monad.Trans.Class (MonadTrans (..))
+import Control.Monad.IO.Class (MonadIO)
 import Control.Failure (Failure)
 
 import Yesod.Handler
 
-class YesodPersist y where
-    type YesodDB y :: (* -> *) -> * -> *
-    runDB :: YesodDB y (GGHandler sub y IO) a -> GHandler sub y a
+type YesodDB sub master = YesodPersistBackend master (GGHandler sub master IO)
 
--- Get the given entity by ID, or return a 404 not found if it doesn't exist.
-get404 :: (PersistBackend (t m), PersistEntity val, Monad (t m),
+class YesodPersist master where
+    type YesodPersistBackend master :: (* -> *) -> * -> *
+    runDB :: MonadIO monad => YesodDB sub master a -> GGHandler sub master monad a
+
+-- | Get the given entity by ID, or return a 404 not found if it doesn't exist.
+get404 :: (PersistBackend t m, PersistEntity val, Monad (t m),
            Failure ErrorResponse m, MonadTrans t)
-       => Key val -> t m val
+       => Key t val -> t m val
 get404 key = do
     mres <- get key
     case mres of
         Nothing -> lift notFound
         Just res -> return res
 
--- Get the given entity by unique key, or return a 404 not found if it doesn't
--- exist.
-getBy404 :: (PersistBackend (t m), PersistEntity val, Monad (t m),
+-- | Get the given entity by unique key, or return a 404 not found if it doesn't
+--   exist.
+getBy404 :: (PersistBackend t m, PersistEntity val, Monad (t m),
              Failure ErrorResponse m, MonadTrans t)
-         => Unique val -> t m (Key val, val)
+         => Unique val t -> t m (Key t val, val)
 getBy404 key = do
     mres <- getBy key
     case mres of
diff --git a/yesod-persistent.cabal b/yesod-persistent.cabal
--- a/yesod-persistent.cabal
+++ b/yesod-persistent.cabal
@@ -1,5 +1,5 @@
 name:            yesod-persistent
-version:         0.1.0
+version:         0.2.1
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -10,12 +10,13 @@
 cabal-version:   >= 1.6
 build-type:      Simple
 homepage:        http://www.yesodweb.com/
+description:     Some helpers for using Persistent from Yesod.
 
 library
     build-depends:   base                      >= 4        && < 5
-                   , yesod-core                >= 0.8      && < 0.9
-                   , persistent                >= 0.5      && < 0.6
-                   , persistent-template       >= 0.5      && < 0.6
+                   , yesod-core                >= 0.8      && < 0.10
+                   , persistent                >= 0.6      && < 0.7
+                   , persistent-template       >= 0.6      && < 0.7
                    , failure                   >= 0.1      && < 0.2
                    , transformers              >= 0.2      && < 0.3
     exposed-modules: Yesod.Persist
