diff --git a/squeal-postgresql.cabal b/squeal-postgresql.cabal
--- a/squeal-postgresql.cabal
+++ b/squeal-postgresql.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.2
 name: squeal-postgresql
-version: 0.9.1.0
+version: 0.9.1.1
 synopsis: Squeal PostgreSQL Library
 description: Squeal is a type-safe embedding of PostgreSQL in Haskell
 homepage: https://github.com/morphismtech/squeal
diff --git a/src/Squeal/PostgreSQL/Session/Monad.hs b/src/Squeal/PostgreSQL/Session/Monad.hs
--- a/src/Squeal/PostgreSQL/Session/Monad.hs
+++ b/src/Squeal/PostgreSQL/Session/Monad.hs
@@ -16,12 +16,13 @@
   , FlexibleInstances
   , FunctionalDependencies
   , GADTs
-  , PolyKinds
   , MultiParamTypeClasses
+  , PolyKinds
   , QuantifiedConstraints
   , RankNTypes
   , TypeApplications
   , TypeFamilies
+  , TypeOperators
   , UndecidableInstances
 #-}
 
diff --git a/src/Squeal/PostgreSQL/Session/Pool.hs b/src/Squeal/PostgreSQL/Session/Pool.hs
--- a/src/Squeal/PostgreSQL/Session/Pool.hs
+++ b/src/Squeal/PostgreSQL/Session/Pool.hs
@@ -31,7 +31,8 @@
 -}
 
 {-# LANGUAGE
-    DeriveFunctor
+    CPP
+  , DeriveFunctor
   , FlexibleContexts
   , FlexibleInstances
   , InstanceSigs
@@ -83,7 +84,13 @@
   -- Requests for connections will block if this limit is reached on a single stripe, even if other stripes have idle connections available.
   -> io (Pool (K Connection db))
 createConnectionPool conninfo stripes idle maxResrc =
+#if MIN_VERSION_resource_pool(0,4,0)
+  liftIO . newPool $ setNumStripes
+    (Just stripes)
+    (defaultPoolConfig (connectdb conninfo) finish (realToFrac idle) maxResrc)
+#else
   liftIO $ createPool (connectdb conninfo) finish stripes idle maxResrc
+#endif
 
 {-|
 Temporarily take a connection from a `Pool`, perform an action with it,
