diff --git a/snaplet-hasql.cabal b/snaplet-hasql.cabal
--- a/snaplet-hasql.cabal
+++ b/snaplet-hasql.cabal
@@ -1,5 +1,5 @@
 name:                snaplet-hasql
-version:             0.0.1
+version:             0.0.2
 synopsis:            A Hasql snaplet
 license:             MIT
 license-file:        LICENSE
diff --git a/src/Snap/Snaplet/Hasql.hs b/src/Snap/Snaplet/Hasql.hs
--- a/src/Snap/Snaplet/Hasql.hs
+++ b/src/Snap/Snaplet/Hasql.hs
@@ -38,22 +38,21 @@
     return pool
 
 {-# INLINE session #-}
--- | Wrapper around 'session' that just calls 'fail' on failure, and
--- uses the available 'poolLens'. Most useful inside 'Handler`s.
-session :: (HasPool v db, MonadReader v m) => Session db m r -> m r
+-- | Wrapper around 'session' that calls 'fail' on failure.
+session :: HasPool v db => Session db IO r -> Handler b v r
 session f = do
   db <- view poolLens
-  r  <- Hasql.session db f
+  r  <- liftIO (Hasql.session db f)
   case r of
     Right a -> return a
     Left er -> fail (show er)
 
 {-# INLINE session' #-}
 -- | Wrapper around 'session'.
-session' :: (HasPool v db, MonadReader v m)
-         => Session db m r
-         -> m (Either (SessionError db) r)
+session' :: HasPool v db
+         => Session db IO r
+         -> Handler b v (Either (SessionError db) r)
 session' f = do
   db <- view poolLens
-  Hasql.session db f
+  liftIO (Hasql.session db f)
 
