diff --git a/hasql.cabal b/hasql.cabal
--- a/hasql.cabal
+++ b/hasql.cabal
@@ -1,7 +1,7 @@
 name:
   hasql
 version:
-  0.19.15.2
+  0.19.16
 category:
   Hasql, Database, PostgreSQL
 synopsis:
@@ -82,11 +82,11 @@
     dlist >= 0.7 && < 0.9,
     aeson >= 0.7 && < 2,
     uuid == 1.3.*,
-    vector >= 0.10 && < 0.12,
+    vector >= 0.10 && < 0.13,
     time >= 1.4 && < 2,
-    hashtables >= 1.1 && < 1.3,
+    hashtables >= 1.1 && < 2,
     scientific >= 0.2 && < 0.4,
-    text >= 1 && < 1.3,
+    text >= 1 && < 2,
     bytestring >= 0.10 && < 0.11,
     hashable >= 1.2 && < 1.3,
     -- control:
@@ -131,11 +131,11 @@
     tasty-smallcheck == 0.8.*,
     tasty-hunit == 0.9.*,
     quickcheck-instances >= 0.3.11 && < 0.4,
-    QuickCheck >= 2.8.1 && < 2.9,
+    QuickCheck >= 2.8.1 && < 2.10,
     -- general:
     data-default-class,
-    -- base,
-    rebase
+    -- 
+    rerebase < 2
 
 
 test-suite threads-test
@@ -158,7 +158,7 @@
   build-depends:
     -- database:
     hasql,
-    -- base,
+    -- 
     rebase
 
 
diff --git a/library/Hasql/Encoders.hs b/library/Hasql/Encoders.hs
--- a/library/Hasql/Encoders.hs
+++ b/library/Hasql/Encoders.hs
@@ -488,6 +488,9 @@
 -- >x =
 -- >  array (arrayDimension foldl' (arrayDimension foldl' (arrayValue int8)))
 -- 
+-- Please note that the PostgreSQL __IN__ keyword does not "accept" an array, but rather a syntactical list of
+-- values, thus this encoder is not suited for that. Use a **field** = ANY($1) query instead.
+--
 newtype Array a =
   Array (Array.Array a)
 
diff --git a/tasty/Main.hs b/tasty/Main.hs
--- a/tasty/Main.hs
+++ b/tasty/Main.hs
@@ -22,6 +22,42 @@
   localOption (NumThreads 1) $
   testGroup "All tests"
   [
+    testCase "IN simulation" $
+    let
+      query =
+        Query.statement "select true where 1 = any ($1)" encoder decoder True
+        where
+          encoder =
+            Encoders.value (Encoders.array (Encoders.arrayDimension foldl' (Encoders.arrayValue Encoders.int8)))
+          decoder =
+            fmap (maybe False (const True)) (Decoders.maybeRow (Decoders.value Decoders.bool))
+      session =
+        do
+          result1 <- Session.query [1, 2] query
+          result2 <- Session.query [2, 3] query
+          return (result1, result2)
+      in do
+        x <- Connection.with (Session.run session)
+        assertEqual (show x) (Right (Right (True, False))) x
+    ,
+    testCase "NOT IN simulation" $
+    let
+      query =
+        Query.statement "select true where 3 <> all ($1)" encoder decoder True
+        where
+          encoder =
+            Encoders.value (Encoders.array (Encoders.arrayDimension foldl' (Encoders.arrayValue Encoders.int8)))
+          decoder =
+            fmap (maybe False (const True)) (Decoders.maybeRow (Decoders.value Decoders.bool))
+      session =
+        do
+          result1 <- Session.query [1, 2] query
+          result2 <- Session.query [2, 3] query
+          return (result1, result2)
+      in do
+        x <- Connection.with (Session.run session)
+        assertEqual (show x) (Right (Right (True, False))) x
+    ,
     testCase "Composite decoding" $
     let
       query =
@@ -38,6 +74,31 @@
       in do
         x <- Connection.with (Session.run session)
         assertEqual (show x) (Right (Right (1, True))) x
+    ,
+    testCase "Complex composite decoding" $
+    let
+      query =
+        Query.statement sql encoder decoder True
+        where
+          sql =
+            "select (1, true) as entity1, ('hello', 3) as entity2"
+          encoder =
+            Encoders.unit
+          decoder =
+            Decoders.singleRow $
+            (,) <$> Decoders.value entity1 <*> Decoders.value entity2
+            where
+              entity1 =
+                Decoders.composite $
+                (,) <$> Decoders.compositeValue Decoders.int8 <*> Decoders.compositeValue Decoders.bool
+              entity2 =
+                Decoders.composite $
+                (,) <$> Decoders.compositeValue Decoders.text <*> Decoders.compositeValue Decoders.int8
+      session =
+        Session.query () query
+      in do
+        x <- Connection.with (Session.run session)
+        assertEqual (show x) (Right (Right ((1, True), ("hello", 3)))) x
     ,
     testCase "Empty array" $
     let
diff --git a/tasty/Main/Prelude.hs b/tasty/Main/Prelude.hs
--- a/tasty/Main/Prelude.hs
+++ b/tasty/Main/Prelude.hs
@@ -5,9 +5,9 @@
 where
 
 
--- base-prelude
+-- rerebase
 -------------------------
-import Rebase.Prelude as Exports
+import Prelude as Exports
 
 -- data-default-class
 -------------------------
