diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,9 +1,13 @@
+# hpqtypes-extras-1.6.3.0 (2018-07-11)
+* API addition: `sqlWhereAnyE`
+  ([#16](https://github.com/scrive/hpqtypes-extras/pull/16)).
+
 # hpqtypes-extras-1.6.2.0 (2018-07-11)
 * Support hpqtypes-1.6.0.0.
 * Drop support for GHC < 8.
 
 # hpqtypes-extras-1.6.1.0 (2018-03-18)
-* Add support for GHC 8.4.1.
+* Add support for GHC 8.4.
 * Drop support for GHC 7.8.
 
 # hpqtypes-extras-1.6.0.0 (2018-01-25)
diff --git a/hpqtypes-extras.cabal b/hpqtypes-extras.cabal
--- a/hpqtypes-extras.cabal
+++ b/hpqtypes-extras.cabal
@@ -1,5 +1,6 @@
+cabal-version:       1.18
 name:                hpqtypes-extras
-version:             1.6.2.0
+version:             1.6.3.0
 synopsis:            Extra utilities for hpqtypes library
 description:         The following extras for hpqtypes library:
                      .
@@ -19,8 +20,7 @@
 copyright:           Scrive AB
 category:            Database
 build-type:          Simple
-cabal-version:       >=1.10
-tested-with:         GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.3
+tested-with:         GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.2
 
 Source-repository head
   Type:     git
@@ -50,7 +50,7 @@
   other-modules:   Database.PostgreSQL.PQTypes.Checks.Util
                  , Database.PostgreSQL.PQTypes.Utils.NubList
 
-  build-depends: base > 4 && < 5
+  build-depends: base > 4 && < 4.13
                , hpqtypes >= 1.6.0.0
                , base16-bytestring
                , bytestring
@@ -85,6 +85,8 @@
                     , TypeFamilies
                     , UndecidableInstances
                     , ViewPatterns
+  other-extensions:   CPP
+                    , TypeApplications
 
 test-suite  hpqtypes-extras-tests
   type:               exitcode-stdio-1.0
diff --git a/src/Database/PostgreSQL/PQTypes/Checks/Util.hs b/src/Database/PostgreSQL/PQTypes/Checks/Util.hs
--- a/src/Database/PostgreSQL/PQTypes/Checks/Util.hs
+++ b/src/Database/PostgreSQL/PQTypes/Checks/Util.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Database.PostgreSQL.PQTypes.Checks.Util (
   ValidationResult(..),
   resultCheck,
@@ -13,7 +14,9 @@
   ) where
 
 import Control.Monad.Catch
+#if !MIN_VERSION_base(4,11,0)
 import Data.Monoid
+#endif
 import Data.Monoid.Utils
 import Data.Text (Text)
 import Log
diff --git a/src/Database/PostgreSQL/PQTypes/Model/Table.hs b/src/Database/PostgreSQL/PQTypes/Model/Table.hs
--- a/src/Database/PostgreSQL/PQTypes/Model/Table.hs
+++ b/src/Database/PostgreSQL/PQTypes/Model/Table.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE ExistentialQuantification #-}
 module Database.PostgreSQL.PQTypes.Model.Table (
     TableColumn(..)
   , tblColumn
diff --git a/src/Database/PostgreSQL/PQTypes/SQL/Builder.hs b/src/Database/PostgreSQL/PQTypes/SQL/Builder.hs
--- a/src/Database/PostgreSQL/PQTypes/SQL/Builder.hs
+++ b/src/Database/PostgreSQL/PQTypes/SQL/Builder.hs
@@ -195,6 +195,7 @@
   , SqlDelete(..)
 
   , sqlWhereAny
+  , sqlWhereAnyE
 
   , SqlResult
   , SqlSet
@@ -726,9 +727,22 @@
                 => (a -> e) -> SQL -> m ()
 sqlWhereIsNULLE exc col = sqlWhereEV (exc, col) $ col <+> "IS NULL"
 
+-- | Add a condition in the WHERE statement that holds if any of the given
+-- condition holds.
 sqlWhereAny :: (MonadState v m, SqlWhere v) => [State SqlAll ()] -> m ()
-sqlWhereAny [] = sqlWhere "FALSE"
-sqlWhereAny l = sqlWhere $ "(" <+> smintercalate "OR" (map (parenthesize . toSQLCommand . flip execState (SqlAll [])) l) <+> ")"
+sqlWhereAny = sqlWhere . sqlWhereAnyImpl
+
+-- | Add a condition just like 'sqlWhereAny' but throw the given exception if
+-- none of the given conditions hold.
+sqlWhereAnyE :: (DBExtraException e, MonadState v m, SqlWhere v)
+             => e -> [State SqlAll ()] -> m ()
+sqlWhereAnyE e = sqlWhereE e . sqlWhereAnyImpl
+
+sqlWhereAnyImpl :: [State SqlAll ()] -> SQL
+sqlWhereAnyImpl [] = "FALSE"
+sqlWhereAnyImpl l =
+  "(" <+> smintercalate "OR" (map (parenthesize . toSQLCommand
+                                   . flip execState (SqlAll [])) l) <+> ")"
 
 class SqlFrom a where
   sqlFrom1 :: a -> SQL -> a
diff --git a/src/Database/PostgreSQL/PQTypes/Utils/NubList.hs b/src/Database/PostgreSQL/PQTypes/Utils/NubList.hs
--- a/src/Database/PostgreSQL/PQTypes/Utils/NubList.hs
+++ b/src/Database/PostgreSQL/PQTypes/Utils/NubList.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE DeriveDataTypeable #-}
 module Database.PostgreSQL.PQTypes.Utils.NubList
     ( NubList    -- opaque
     , toNubList  -- smart construtor
