diff --git a/manifest.dhall b/manifest.dhall
index aee81d05f52547286c2bc0b983dd5771f14f7b31..0f624d45d6b2540e6f94ec2310bbcd21715e5f0b 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -275,6 +275,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "file-embed" "0.0.15.0"
     , callHackage "filemanip" "0.3.6.3"
     , callHackage "filepattern" "0.1.3"
+    , callHackage "fingertree-psqueue" "0.3"
     , callHackage "fingertree" "0.1.5.0"
     , callHackage "finite-field" "0.10.0"
     , callHackage "first-class-families" "0.8.0.1"
diff --git a/overlay.nix b/overlay.nix
index 76fa8a0d722393755d8dbe0a5c3606a80a475f91..e2635cf76a7c0e4529895c0120c0c8fffdc12dfa 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -367,6 +367,8 @@ self: with pkgs.haskell.lib; {
 
   fingertree = self.callPackage (./pkgs/fingertree.nix) { };
 
+  fingertree-psqueue = self.callPackage (./pkgs/fingertree-psqueue.nix) { };
+
   finite-field = self.callPackage (./pkgs/finite-field.nix) { };
 
   first-class-families = self.callPackage (./pkgs/first-class-families.nix) { };
diff --git a/pkgs/fingertree-psqueue.nix b/pkgs/fingertree-psqueue.nix
new file mode 100644
index 0000000000000000000000000000000000000000..37493aea59af7760496bf7266cbc8e0c22b8b960
--- /dev/null
+++ b/pkgs/fingertree-psqueue.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, fingertree, lib }:
+mkDerivation {
+  pname = "fingertree-psqueue";
+  version = "0.3";
+  sha256 = "9f8c2f1965ea7a618d969db6506c8f373c95e09072b2182de40713d265046c92";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base fingertree ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Implementation of priority search queues as finger trees";
+  license = lib.licenses.bsd3;
+  broken = false;
+}