diff --git a/flake.nix b/flake.nix
index 93ce0cbbd8e7c74f6a424594d2b29409ba82993f..cfa201b764752a479c041e37fea7eff23305c7e5 100644
--- a/flake.nix
+++ b/flake.nix
@@ -42,6 +42,10 @@
     };
     flake-parts.url = "github:hercules-ci/flake-parts";
     flake-parts.inputs.nixpkgs.follows = "nixpkgs";
+    ghc-exactprint = {
+      url = "github:alanz/ghc-exactprint?ref=ghc-9.4";
+      flake = false;
+    };
     haskell-src-meta = {
       url = "github:parsonsmatt/haskell-src-meta?ref=matt/support-new-th";
       flake = false;
diff --git a/overlay.nix b/overlay.nix
index 5e4bb1348f94b066c24f27cb5e5a286269e5c20b..ad8481a6ddbc8838c2b994bd8855668bbf2d1288 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -149,6 +149,8 @@ final: prev: with pkgs.haskell.lib; {
 
   ghc-byteorder = doJailbreak (prev.callHackage "ghc-byteorder" "4.11.0.0.10" { });
 
+  ghc-exactprint = prev.callCabal2nix "ghc-exactprint" inputs.ghc-exactprint { };
+
   ghc-lib-parser = doJailbreak (prev.callHackage "ghc-lib-parser" "9.4.2.20220822" { });
 
   ghc-lib-parser-ex = doJailbreak (prev.callHackage "ghc-lib-parser-ex" "9.4.0.0" { });