diff --git a/hasql.cabal b/hasql.cabal
--- a/hasql.cabal
+++ b/hasql.cabal
@@ -1,7 +1,7 @@
 name:
   hasql
 version:
-  0.19.15.1
+  0.19.15.2
 category:
   Hasql, Database, PostgreSQL
 synopsis:
@@ -74,7 +74,7 @@
     -- parsing:
     attoparsec >= 0.10 && < 0.14,
     -- database:
-    postgresql-binary >= 0.9 && < 0.10,
+    postgresql-binary >= 0.9.1.1 && < 0.10,
     postgresql-libpq == 0.9.*,
     -- builders:
     bytestring-tree-builder >= 0.2.5 && < 0.3,
diff --git a/tasty/Main.hs b/tasty/Main.hs
--- a/tasty/Main.hs
+++ b/tasty/Main.hs
@@ -22,6 +22,23 @@
   localOption (NumThreads 1) $
   testGroup "All tests"
   [
+    testCase "Composite decoding" $
+    let
+      query =
+        Query.statement sql encoder decoder True
+        where
+          sql =
+            "select (1, true)"
+          encoder = 
+            Encoders.unit
+          decoder =
+            Decoders.singleRow (Decoders.value (Decoders.composite ((,) <$> Decoders.compositeValue Decoders.int8 <*> Decoders.compositeValue Decoders.bool)))
+      session =
+        Session.query () query
+      in do
+        x <- Connection.with (Session.run session)
+        assertEqual (show x) (Right (Right (1, True))) x
+    ,
     testCase "Empty array" $
     let
       io =
@@ -334,6 +351,6 @@
     let
       actualIO =
         DSL.session $ DSL.query () $ Queries.selectList
-      in assertEqual "" (Right [(1, 2), (3, 4), (5, 6)]) =<< actualIO
+      in assertEqual "" (Right [(1, 2), (3, 4), (5, 6)]) =<< actualIO 
   ]
 
