diff --git a/hasql-cursor-transaction.cabal b/hasql-cursor-transaction.cabal
--- a/hasql-cursor-transaction.cabal
+++ b/hasql-cursor-transaction.cabal
@@ -1,49 +1,24 @@
-name:
-  hasql-cursor-transaction
-version:
-  0.6.3
-category:
-  Hasql, Database, PostgreSQL, Streaming
-synopsis:
-  An abstraction for simultaneous fetching from multiple PostgreSQL cursors
-homepage:
-  https://github.com/nikita-volkov/hasql-cursor-transaction 
-bug-reports:
-  https://github.com/nikita-volkov/hasql-cursor-transaction/issues 
-author:
-  Nikita Volkov <nikita.y.volkov@mail.ru>
-maintainer:
-  Nikita Volkov <nikita.y.volkov@mail.ru>
-copyright:
-  (c) 2016, Nikita Volkov
-license:
-  MIT
-license-file:
-  LICENSE
-build-type:
-  Simple
-cabal-version:
-  >=1.10
-
-
-source-repository head
-  type:
-    git
-  location:
-    git://github.com/nikita-volkov/hasql-cursor-transaction.git
-
+name: hasql-cursor-transaction
+version: 0.6.3.1
+category: Hasql, Database, PostgreSQL, Streaming
+synopsis: An abstraction for simultaneous fetching from multiple PostgreSQL cursors
+homepage: https://github.com/nikita-volkov/hasql-cursor-transaction
+bug-reports: https://github.com/nikita-volkov/hasql-cursor-transaction/issues
+author: Nikita Volkov <nikita.y.volkov@mail.ru>
+maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>
+copyright: (c) 2016, Nikita Volkov
+license: MIT
+license-file: LICENSE
+build-type: Simple
+cabal-version: >=1.10
 
 library
-  hs-source-dirs:
-    library
-  ghc-options:
-  default-extensions:
-    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
-  default-language:
-    Haskell2010
+  hs-source-dirs: library
+  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
+  default-language: Haskell2010
   other-modules:
     Hasql.CursorTransaction.Private.Prelude
-    Hasql.CursorTransaction.Private.Queries
+    Hasql.CursorTransaction.Private.Statements
     Hasql.CursorTransaction.Private.Specs
     Hasql.CursorTransaction.Private.Transactions
     Hasql.CursorTransaction.Private.CursorTransaction
@@ -52,16 +27,12 @@
     Hasql.CursorTransaction.Sessions
     Hasql.CursorTransaction
   build-depends:
-    -- database:
-    hasql >= 0.19 && < 0.20 || >= 1 && < 2,
-    hasql-transaction >= 0.5 && < 0.6,
-    -- data:
-    bytestring-tree-builder == 0.2.*,
-    bytestring >= 0.10 && < 0.11,
-    -- control:
-    contravariant >= 1.3 && < 2,
-    contravariant-extras >= 0.3.3.1 && < 0.4,
-    transformers >= 0.4 && < 0.6,
-    -- general:
-    base-prelude >= 1 && < 2,
-    base >= 4.6 && < 5
+    base >=4.6 && <5,
+    base-prelude >=1 && <2,
+    bytestring >=0.10 && <0.11,
+    bytestring-tree-builder ==0.2.*,
+    contravariant >=1.3 && <2,
+    contravariant-extras >=0.3.3.1 && <0.4,
+    hasql >=1.3 && <1.4,
+    hasql-transaction >=0.7 && <0.8,
+    transformers >=0.4 && <0.6
diff --git a/library/Hasql/CursorTransaction/Private/Queries.hs b/library/Hasql/CursorTransaction/Private/Queries.hs
deleted file mode 100644
--- a/library/Hasql/CursorTransaction/Private/Queries.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-module Hasql.CursorTransaction.Private.Queries
-where
-
-import Hasql.CursorTransaction.Private.Prelude
-import qualified Hasql.Query as A
-import qualified Hasql.Encoders as B
-import qualified Hasql.Decoders as C
-import qualified Hasql.CursorTransaction.Private.Specs as F
-import qualified ByteString.TreeBuilder as D
-
-
-declareCursor :: ByteString -> ByteString -> B.Params a -> A.Query a ()
-declareCursor name sql encoder =
-  A.statement sql' encoder C.unit False
-  where
-    sql' =
-      D.toByteString $
-      "DECLARE " <> D.byteString name <> " NO SCROLL CURSOR FOR " <> D.byteString sql
-
-closeCursor :: ByteString -> A.Query () ()
-closeCursor name =
-  A.statement sql B.unit C.unit True
-  where
-    sql =
-      "CLOSE " <> name
-
-fetchFromCursor :: ByteString -> F.BatchSize -> C.Result result -> A.Query () result
-fetchFromCursor name (F.BatchSize batchSize) decoder =
-  A.statement sql encoder decoder True
-  where
-    sql =
-      D.toByteString $
-      "FETCH FORWARD " <> D.asciiIntegral batchSize <> " FROM " <> D.byteString name
-    encoder =
-      B.unit
diff --git a/library/Hasql/CursorTransaction/Private/Specs.hs b/library/Hasql/CursorTransaction/Private/Specs.hs
--- a/library/Hasql/CursorTransaction/Private/Specs.hs
+++ b/library/Hasql/CursorTransaction/Private/Specs.hs
@@ -40,7 +40,7 @@
 -- A parameters encoder immediately supplied with parameters.
 newtype EncodedParams =
   EncodedParams (Supplied A.Params)
-  deriving (Monoid)
+  deriving (Semigroup, Monoid)
 
 -- |
 -- Pack the params encoder and params into EncodedParams.
diff --git a/library/Hasql/CursorTransaction/Private/Statements.hs b/library/Hasql/CursorTransaction/Private/Statements.hs
new file mode 100644
--- /dev/null
+++ b/library/Hasql/CursorTransaction/Private/Statements.hs
@@ -0,0 +1,35 @@
+module Hasql.CursorTransaction.Private.Statements
+where
+
+import Hasql.CursorTransaction.Private.Prelude
+import Hasql.Statement
+import qualified Hasql.Encoders as B
+import qualified Hasql.Decoders as C
+import qualified Hasql.CursorTransaction.Private.Specs as F
+import qualified ByteString.TreeBuilder as D
+
+
+declareCursor :: ByteString -> ByteString -> B.Params a -> Statement a ()
+declareCursor name sql encoder =
+  Statement sql' encoder C.unit False
+  where
+    sql' =
+      D.toByteString $
+      "DECLARE " <> D.byteString name <> " NO SCROLL CURSOR FOR " <> D.byteString sql
+
+closeCursor :: ByteString -> Statement () ()
+closeCursor name =
+  Statement sql B.unit C.unit True
+  where
+    sql =
+      "CLOSE " <> name
+
+fetchFromCursor :: ByteString -> F.BatchSize -> C.Result result -> Statement () result
+fetchFromCursor name (F.BatchSize batchSize) decoder =
+  Statement sql encoder decoder True
+  where
+    sql =
+      D.toByteString $
+      "FETCH FORWARD " <> D.asciiIntegral batchSize <> " FROM " <> D.byteString name
+    encoder =
+      B.unit
diff --git a/library/Hasql/CursorTransaction/Private/Transactions.hs b/library/Hasql/CursorTransaction/Private/Transactions.hs
--- a/library/Hasql/CursorTransaction/Private/Transactions.hs
+++ b/library/Hasql/CursorTransaction/Private/Transactions.hs
@@ -2,7 +2,7 @@
 where
 
 import Hasql.CursorTransaction.Private.Prelude
-import qualified Hasql.CursorTransaction.Private.Queries as A
+import qualified Hasql.CursorTransaction.Private.Statements as A
 import qualified Hasql.CursorTransaction.Private.Specs as B
 import qualified Hasql.Transaction as C
 import qualified Hasql.Decoders as E
@@ -11,12 +11,12 @@
 
 declareCursor :: ByteString -> ByteString -> F.Params params -> params -> C.Transaction ()
 declareCursor cursorName template paramsEncoder params =
-  C.query params (A.declareCursor cursorName template paramsEncoder)
+  C.statement params (A.declareCursor cursorName template paramsEncoder)
 
 closeCursor :: ByteString -> C.Transaction ()
 closeCursor cursorName =
-  C.query () (A.closeCursor cursorName)
+  C.statement () (A.closeCursor cursorName)
 
 fetchFromCursor :: ByteString -> B.BatchSize -> E.Result result -> C.Transaction result
 fetchFromCursor cursorName batchSize decoder =
-  C.query () (A.fetchFromCursor cursorName batchSize decoder)
+  C.statement () (A.fetchFromCursor cursorName batchSize decoder)
diff --git a/library/Hasql/CursorTransaction/Sessions.hs b/library/Hasql/CursorTransaction/Sessions.hs
--- a/library/Hasql/CursorTransaction/Sessions.hs
+++ b/library/Hasql/CursorTransaction/Sessions.hs
@@ -6,7 +6,6 @@
 
 import Hasql.CursorTransaction.Private.Prelude
 import qualified Hasql.CursorTransaction.Private.CursorTransaction as A
-import qualified Hasql.Transaction as B
 import qualified Hasql.Transaction.Sessions as D
 import qualified Hasql.Session as C
 
@@ -16,4 +15,4 @@
 -- During the execution it establishes a Read transaction with the ReadCommitted isolation level.
 cursorTransaction :: (forall s. A.CursorTransaction s result) -> C.Session result
 cursorTransaction cursorTransaction =
-  D.transaction B.ReadCommitted B.Read (A.run cursorTransaction)
+  D.transaction D.ReadCommitted D.Read (A.run cursorTransaction)
