diff --git a/manifest.dhall b/manifest.dhall
index f7d90a5426117778565987c92d3075bb59260a5d..2c8385cc2686f14cda2705fafb566a63d3b24a6e 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -71,6 +71,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "OneTuple" "0.3.1"
     , callHackage "Only" "0.1"
     , callHackage "OpenGLRaw" "3.3.4.1"
+    , callHackage "PSQueue" "1.1.1"
     , callHackage "PyF" "0.11.1.0"
     , callHackage "QuickCheck" "2.14.2"
     , callHackage "SHA" "1.6.4.4"
diff --git a/overlay.nix b/overlay.nix
index 49c2a668c5d2b08e65599d46293993f6bf8b0929..4dd64ae3c16c7eab5f2a214da259349569a954ed 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -35,6 +35,8 @@ self: with pkgs.haskell.lib; {
 
   OpenGLRaw = self.callPackage (./pkgs/OpenGLRaw.nix) { };
 
+  PSQueue = self.callPackage (./pkgs/PSQueue.nix) { };
+
   PyF = self.callPackage (./pkgs/PyF.nix) { };
 
   QuickCheck = self.callPackage (./pkgs/QuickCheck.nix) { };
diff --git a/pkgs/PSQueue.nix b/pkgs/PSQueue.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1db4e2a9597a7c79e20c4eaece204fed4b3735e0
--- /dev/null
+++ b/pkgs/PSQueue.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, lib, QuickCheck }:
+mkDerivation {
+  pname = "PSQueue";
+  version = "1.1.1";
+  sha256 = "7191ef25e63df3658ad3eccde7d7a7e31fa8dd43c6705714672836dbf9c7ef0a";
+  revision = "1";
+  editedCabalFile = "02a5g59sc9jh3v4pibhjpijv8lsbiydznrpqyin7qhwsyc0p813a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Priority Search Queue";
+  license = lib.licenses.bsd3;
+  broken = false;
+}