diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.1.0.4 -- 2023-01-10
+
+* Support `mtl-2.3`
+
 ## 0.1.0.3 -- 2022-07-31
 
 * Support GHC 9.2
diff --git a/hasql-interpolate.cabal b/hasql-interpolate.cabal
--- a/hasql-interpolate.cabal
+++ b/hasql-interpolate.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               hasql-interpolate
-version:            0.1.0.3
+version:            0.1.0.4
 
 author: Travis Staton <hello@travisstaton.com>
 category: Hasql, Database, PostgreSQL
@@ -35,22 +35,22 @@
                       Hasql.Interpolate.Internal.EncodeRow
                       Hasql.Interpolate.Internal.EncodeRow.TH
 
-    build-depends:    base >= 4.14 && < 5
-                    , hasql ^>= 1.4 || ^>= 1.5
-                    , haskell-src-meta ^>= 0.8
-                    , template-haskell >= 2.14
-                    , megaparsec >= 8.0.0
-                    , text
-                    , time
-                    , uuid
-                    , scientific
-                    , aeson
-                    , transformers
-                    , mtl
-                    , vector
-                    , containers
-                    , bytestring
-                    , array
+    build-depends:    aeson ^>= 1.5 || ^>= 2.0 || ^>= 2.1,
+                      array ^>= 0.5,
+                      base ^>= 4.14 || ^>= 4.15 || ^>= 4.16 || ^>= 4.17,
+                      bytestring ^>= 0.10 || ^>= 0.11,
+                      containers ^>= 0.5 || ^>= 0.6,
+                      haskell-src-meta ^>= 0.8,
+                      hasql ^>= 1.4 || ^>= 1.5 || ^>= 1.6,
+                      megaparsec ^>= 8.0.0 || ^>= 9.0 || ^>= 9.1 || ^>= 9.2 || ^>= 9.3,
+                      mtl ^>= 2.1 || ^>= 2.2 || ^>= 2.3,
+                      scientific ^>= 0.3,
+                      template-haskell ^>= 2.14 || ^>= 2.15 || ^>= 2.16 || ^>= 2.17 || ^>= 2.18 || ^>= 2.19,
+                      text ^>= 1.2.4 || ^>= 2.0,
+                      time ^>= 1.9.3 || ^>= 1.10 || ^>= 1.11 || ^>= 1.12,
+                      transformers ^>= 0.5 || ^>= 0.6,
+                      uuid ^>= 1.3,
+                      vector ^>= 0.11 || ^>= 0.12 || ^>= 0.13,
 
     hs-source-dirs:   lib
     default-language: Haskell2010
diff --git a/lib/Hasql/Interpolate/Internal/TH.hs b/lib/Hasql/Interpolate/Internal/TH.hs
--- a/lib/Hasql/Interpolate/Internal/TH.hs
+++ b/lib/Hasql/Interpolate/Internal/TH.hs
@@ -21,7 +21,8 @@
 where
 
 import Control.Applicative
-import Control.Monad.State.Strict
+import Control.Monad (replicateM)
+import Control.Monad.State.Strict (State, StateT, execStateT, get, put, state)
 import Data.Array (listArray, (!))
 import Data.ByteString.Builder (Builder, stringUtf8)
 import Data.Char
