diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## Stache 2.3.2
+
+* Builds with `mtl-2.3`.
+
 ## Stache 2.3.1
 
 * Uses `aeson-2.x.x.x`.
diff --git a/Text/Mustache/Compile.hs b/Text/Mustache/Compile.hs
--- a/Text/Mustache/Compile.hs
+++ b/Text/Mustache/Compile.hs
@@ -22,7 +22,8 @@
 where
 
 import Control.Exception
-import Control.Monad.Except
+import Control.Monad (filterM, foldM)
+import Control.Monad.IO.Class (MonadIO (..))
 import qualified Data.Map as M
 import Data.Text (Text)
 import qualified Data.Text as T
diff --git a/Text/Mustache/Render.hs b/Text/Mustache/Render.hs
--- a/Text/Mustache/Render.hs
+++ b/Text/Mustache/Render.hs
@@ -18,7 +18,8 @@
   )
 where
 
-import Control.Monad.Reader
+import Control.Monad (forM_, unless, when)
+import Control.Monad.Reader (MonadReader (local), ReaderT (runReaderT), asks)
 import Control.Monad.State.Strict (State, execState, modify')
 import Data.Aeson hiding (Key)
 import qualified Data.Aeson.Key as Aeson.Key
diff --git a/stache.cabal b/stache.cabal
--- a/stache.cabal
+++ b/stache.cabal
@@ -1,11 +1,11 @@
-cabal-version:   1.18
+cabal-version:   2.4
 name:            stache
-version:         2.3.1
-license:         BSD3
+version:         2.3.2
+license:         BSD-3-Clause
 license-file:    LICENSE.md
 maintainer:      Mark Karpov <markkarpov92@gmail.com>
 author:          Mark Karpov <markkarpov92@gmail.com>
-tested-with:     ghc ==8.8.4 ghc ==8.10.5 ghc ==9.0.1
+tested-with:     ghc ==8.10.7 ghc ==9.0.2 ghc ==9.2.1
 homepage:        https://github.com/stackbuilders/stache
 bug-reports:     https://github.com/stackbuilders/stache/issues
 synopsis:        Mustache templates for Haskell
@@ -50,8 +50,8 @@
         filepath >=1.2 && <1.5,
         megaparsec >=7.0 && <10.0,
         mtl >=2.1 && <3.0,
-        template-haskell >=2.11 && <2.18,
-        text >=1.2 && <1.3,
+        template-haskell >=2.11 && <2.19,
+        text >=1.2 && <2.1,
         vector >=0.11 && <0.13
 
     if flag(dev)
@@ -69,14 +69,15 @@
     main-is:          Main.hs
     hs-source-dirs:   app
     other-modules:    Paths_stache
+    autogen-modules:  Paths_stache
     default-language: Haskell2010
     build-depends:
         aeson >=2 && <3,
         base >=4.13 && <5.0,
         gitrev >=1.3 && <1.4,
-        optparse-applicative >=0.14 && <0.17,
+        optparse-applicative >=0.14 && <0.18,
         stache,
-        text >=0.2 && <1.3,
+        text >=0.2 && <2.1,
         yaml >=0.8 && <0.12,
         filepath >=1.2 && <1.5
 
@@ -89,17 +90,17 @@
         ghc-options: -O2 -Wall
 
 test-suite tests
-    type:             exitcode-stdio-1.0
-    main-is:          Spec.hs
-    build-tools:      hspec-discover >=2.0 && <3.0
-    hs-source-dirs:   tests
+    type:               exitcode-stdio-1.0
+    main-is:            Spec.hs
+    build-tool-depends: hspec-discover:hspec-discover >=2.0 && <3.0
+    hs-source-dirs:     tests
     other-modules:
         Text.Mustache.Compile.THSpec
         Text.Mustache.ParserSpec
         Text.Mustache.RenderSpec
         Text.Mustache.TypeSpec
 
-    default-language: Haskell2010
+    default-language:   Haskell2010
     build-depends:
         aeson >=2 && <3,
         base >=4.13 && <5.0,
@@ -108,8 +109,8 @@
         hspec-megaparsec >=2.0 && <3.0,
         megaparsec >=7.0 && <10.0,
         stache,
-        template-haskell >=2.11 && <2.18,
-        text >=1.2 && <1.3
+        template-haskell >=2.11 && <2.19,
+        text >=1.2 && <2.1
 
     if flag(dev)
         ghc-options: -O0 -Wall -Werror
@@ -131,7 +132,7 @@
         hspec >=2.0 && <3.0,
         megaparsec >=7.0 && <10.0,
         stache,
-        text >=1.2 && <1.3,
+        text >=1.2 && <2.1,
         yaml >=0.8 && <0.12
 
     if flag(dev)
@@ -152,7 +153,7 @@
         deepseq >=1.4 && <1.5,
         megaparsec >=7.0 && <10.0,
         stache,
-        text >=1.2 && <1.3
+        text >=1.2 && <2.1
 
     if flag(dev)
         ghc-options: -O2 -Wall -Werror
