diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # CHANGELOG
 
+## 1.3.0
+### Added
+* dependency from `hreader` and `hset`
+* `HasPostgres` instance for `HReaderT` transformer
+
 ## 1.2.1
 
 * remove version constraints for `transformers` package
diff --git a/postgresql-query.cabal b/postgresql-query.cabal
--- a/postgresql-query.cabal
+++ b/postgresql-query.cabal
@@ -1,5 +1,5 @@
 name:                postgresql-query
-version:             1.2.1
+version:             1.3.0
 
 synopsis: Sql interpolating quasiquote plus some kind of primitive ORM
           using it
@@ -57,9 +57,9 @@
                     , UndecidableInstances
                     , ViewPatterns
 
-  build-depends: base >=4.6 && < 5
-               , aeson
+  build-depends: aeson
                , attoparsec
+               , base                          >=4.6      &&  < 5
                , blaze-builder
                , bytestring
                , containers
@@ -68,6 +68,8 @@
                , exceptions
                , file-embed
                , haskell-src-meta
+               , hreader
+               , hset                          >= 0.1.0
                , monad-control                 == 0.3.3.1 || > 1.0.0.3
                , monad-logger
                , mtl
diff --git a/src/Database/PostgreSQL/Query/Types.hs b/src/Database/PostgreSQL/Query/Types.hs
--- a/src/Database/PostgreSQL/Query/Types.hs
+++ b/src/Database/PostgreSQL/Query/Types.hs
@@ -24,6 +24,7 @@
 import Control.Monad.Cont.Class ( MonadCont )
 import Control.Monad.Error.Class ( MonadError )
 import Control.Monad.Fix ( MonadFix(..) )
+import Control.Monad.HReader
 import Control.Monad.Logger
 import Control.Monad.Reader
     ( MonadReader(..), ReaderT(..) )
@@ -36,7 +37,9 @@
 import Control.Monad.Trans.Identity
 import Control.Monad.Trans.Maybe
 import Control.Monad.Writer.Class ( MonadWriter )
+import Data.HSet
 import Data.Monoid
+import Data.Pool
 import Data.String
 import Data.Text ( Text )
 import Data.Typeable
@@ -258,6 +261,12 @@
         WS.WriterT $ withPGConnection $ \con ->
             WS.runWriterT (action con)
     {-# INLINABLE withPGConnection #-}
+
+instance (MonadBase IO m, MonadBaseControl IO m, Contains els (Pool Connection))
+         => HasPostgres (HReaderT els m) where
+    withPGConnection action = do
+        pool <- haskM
+        withResource pool action
 
 -- | Empty typeclass signing monad in which transaction is
 -- safe. i.e. `PgMonadT` have this instance, but some other monad giving
