diff --git a/manifest.dhall b/manifest.dhall
index 58d47933dc4d477dc3404e806671206602cc81d1..e2833868f4725c1e1d82c9aca50cb295d54ca10b 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -318,6 +318,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "hashable" "1.4.1.0"
     , callHackage "hashing" "0.1.0.1"
     , callHackage "hashtables" "1.3"
+    , callHackage "haskell-src-exts" "1.23.1"
     , callHackage "haskell-src-meta" "0.8.11"
     , callCabal2nix
         "hedgehog-golden"
diff --git a/overlay.nix b/overlay.nix
index 10c53898e3fbfa8fdc62b6299c153e7803d52331..1844f977b393a6bdcedf8f4c8f2214676be694b4 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -441,6 +441,8 @@ self: with pkgs.haskell.lib; {
 
   hashtables = self.callPackage (./pkgs/hashtables.nix) { };
 
+  haskell-src-exts = self.callPackage (./pkgs/haskell-src-exts.nix) { };
+
   haskell-src-meta = self.callPackage (./pkgs/haskell-src-meta.nix) { };
 
   hedgehog = self.callPackage (./pkgs/hedgehog.nix) { };
diff --git a/pkgs/haskell-src-exts.nix b/pkgs/haskell-src-exts.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1ebb1d5d9281cf6e55c94fa4a3798f70aff5f60e
--- /dev/null
+++ b/pkgs/haskell-src-exts.nix
@@ -0,0 +1,50 @@
+{ mkDerivation
+, array
+, base
+, containers
+, directory
+, filepath
+, ghc-prim
+, happy
+, lib
+, mtl
+, pretty
+, pretty-show
+, smallcheck
+, tasty
+, tasty-golden
+, tasty-smallcheck
+}:
+mkDerivation {
+  pname = "haskell-src-exts";
+  version = "1.23.1";
+  sha256 = "67853047169fff7d3e5d87acef214ee185a6ab8c6a104ed9c59e389574cf6c05";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base ghc-prim pretty ];
+  libraryToolDepends = [ happy ];
+  testHaskellDepends = [
+    base
+    containers
+    directory
+    filepath
+    mtl
+    pretty-show
+    smallcheck
+    tasty
+    tasty-golden
+    tasty-smallcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-suite/haskell-src-exts";
+  description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
+  license = lib.licenses.bsd3;
+  broken = false;
+}