diff --git a/manifest.dhall b/manifest.dhall
index 8f50933a6a2fe24ce94331c0fe8d4e5dc5f7b422..e85fdba674818ac38587808f6e0793105550a510 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -499,6 +499,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "pretty-show" "1.10"
     , callHackage "pretty-simple" "4.1.1.0"
     , callHackage "prettyprinter-ansi-terminal" "1.1.3"
+    , callHackage "prettyprinter" "1.7.1"
     , callHackage "primitive" "0.7.4.0"
     , callHackage "primitive-addr" "0.1.0.2"
     , callHackage "profunctors" "5.6.2"
diff --git a/overlay.nix b/overlay.nix
index ea8dfb636a912af31df67ed2e77e7523afb4a7f1..823e351c6aec13c6d74fb61103bed01f4ebc85c2 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -721,6 +721,8 @@ self: with pkgs.haskell.lib; {
 
   pretty-simple = self.callPackage (./pkgs/pretty-simple.nix) { };
 
+  prettyprinter = self.callPackage (./pkgs/prettyprinter.nix) { };
+
   prettyprinter-ansi-terminal = self.callPackage (./pkgs/prettyprinter-ansi-terminal.nix) { };
 
   primitive = self.callPackage (./pkgs/primitive.nix) { };
diff --git a/pkgs/prettyprinter.nix b/pkgs/prettyprinter.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c5f7cbceee45991faa23f11b1707b8ceacbb54a4
--- /dev/null
+++ b/pkgs/prettyprinter.nix
@@ -0,0 +1,66 @@
+{ mkDerivation
+, ansi-wl-pprint
+, base
+, base-compat
+, bytestring
+, containers
+, deepseq
+, doctest
+, gauge
+, lib
+, mtl
+, pgp-wordlist
+, QuickCheck
+, quickcheck-instances
+, random
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "prettyprinter";
+  version = "1.7.1";
+  sha256 = "5e6ea6903114fa118fcc359633dfb7ecddecb92c06c853d02a77b72b251f0b45";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base text ];
+  testHaskellDepends = [
+    base
+    bytestring
+    doctest
+    pgp-wordlist
+    QuickCheck
+    quickcheck-instances
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    text
+  ];
+  benchmarkHaskellDepends = [
+    ansi-wl-pprint
+    base
+    base-compat
+    containers
+    deepseq
+    gauge
+    mtl
+    QuickCheck
+    random
+    text
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/quchen/prettyprinter";
+  description = "A modern, easy to use, well-documented, extensible pretty-printer";
+  license = lib.licenses.bsd2;
+  broken = false;
+}