diff --git a/hasql-pool.cabal b/hasql-pool.cabal
--- a/hasql-pool.cabal
+++ b/hasql-pool.cabal
@@ -1,6 +1,6 @@
 cabal-version: 3.0
 name: hasql-pool
-version: 1.0.0.1
+version: 1.0.1
 category: Hasql, Database, PostgreSQL
 synopsis: Pool of connections for Hasql
 homepage: https://github.com/nikita-volkov/hasql-pool
@@ -72,6 +72,7 @@
   exposed-modules:
     Hasql.Pool
     Hasql.Pool.Config
+    Hasql.Pool.Config.Defaults
     Hasql.Pool.Observation
 
   -- cabal-gild: discover src/library/other
diff --git a/src/library/exposed/Hasql/Pool.hs b/src/library/exposed/Hasql/Pool.hs
--- a/src/library/exposed/Hasql/Pool.hs
+++ b/src/library/exposed/Hasql/Pool.hs
@@ -67,6 +67,8 @@
 --
 -- No connections actually get established by this function. It is delegated
 -- to 'use'.
+--
+-- If you want to ensure that the pool connects fine at the initialization phase, just run 'use' with an empty session (@pure ()@) and check for errors.
 acquire :: Config.Config -> IO Pool
 acquire config = do
   connectionQueue <- newTQueueIO
diff --git a/src/library/exposed/Hasql/Pool/Config/Defaults.hs b/src/library/exposed/Hasql/Pool/Config/Defaults.hs
new file mode 100644
--- /dev/null
+++ b/src/library/exposed/Hasql/Pool/Config/Defaults.hs
@@ -0,0 +1,40 @@
+module Hasql.Pool.Config.Defaults where
+
+import qualified Hasql.Connection as Connection
+import Hasql.Pool.Observation (Observation)
+import Hasql.Pool.Prelude
+
+-- |
+-- 3 connections.
+size :: Int
+size = 3
+
+-- |
+-- 10 seconds.
+acquisitionTimeout :: DiffTime
+acquisitionTimeout = 10
+
+-- |
+-- 1 day.
+agingTimeout :: DiffTime
+agingTimeout = 60 * 60 * 24
+
+-- |
+-- 10 minutes.
+idlenessTimeout :: DiffTime
+idlenessTimeout = 60 * 10
+
+-- |
+-- > "postgresql://postgres:postgres@localhost:5432/postgres"
+staticConnectionSettings :: Connection.Settings
+staticConnectionSettings = "postgresql://postgres:postgres@localhost:5432/postgres"
+
+-- |
+-- > pure "postgresql://postgres:postgres@localhost:5432/postgres"
+dynamicConnectionSettings :: IO Connection.Settings
+dynamicConnectionSettings = pure "postgresql://postgres:postgres@localhost:5432/postgres"
+
+-- |
+-- > const (pure ())
+observationHandler :: Observation -> IO ()
+observationHandler = const (pure ())
diff --git a/src/library/other/Hasql/Pool/Config/Config.hs b/src/library/other/Hasql/Pool/Config/Config.hs
--- a/src/library/other/Hasql/Pool/Config/Config.hs
+++ b/src/library/other/Hasql/Pool/Config/Config.hs
@@ -1,6 +1,7 @@
 module Hasql.Pool.Config.Config where
 
 import qualified Hasql.Connection as Connection
+import qualified Hasql.Pool.Config.Defaults as Defaults
 import Hasql.Pool.Observation (Observation)
 import Hasql.Pool.Prelude
 
@@ -18,10 +19,10 @@
 defaults :: Config
 defaults =
   Config
-    { size = 3,
-      acquisitionTimeout = 10,
-      agingTimeout = 60 * 60 * 24,
-      idlenessTimeout = 60 * 10,
-      connectionSettingsProvider = pure "postgresql://postgres:postgres@localhost:5432/postgres",
-      observationHandler = const (pure ())
+    { size = Defaults.size,
+      acquisitionTimeout = Defaults.acquisitionTimeout,
+      agingTimeout = Defaults.agingTimeout,
+      idlenessTimeout = Defaults.idlenessTimeout,
+      connectionSettingsProvider = Defaults.dynamicConnectionSettings,
+      observationHandler = Defaults.observationHandler
     }
