diff --git a/manifest.dhall b/manifest.dhall
index 9361f7281c7327b92e45a85d7b9609fa8a191558..976d396c0c3a7e0381a6050050b0aba88f1fd61c 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -75,6 +75,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "QuickCheck" "2.14.2"
     , callHackage "SHA" "1.6.4.4"
     , callHackage "StateVar" "1.2.2"
+    , callHackage "abstract-deque" "0.3"
     , callHackage "abstract-par" "0.3.3"
     , callHackage "adjunctions" "4.4.2"
     , callHackage "aeson" "2.1.0.0"
diff --git a/overlay.nix b/overlay.nix
index 91e9e4731afc6a2fe23703422ff4fe43b02fb084..9e5086ab521a20e5e28e283a2975d0ca9854d938 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -43,6 +43,8 @@ self: with pkgs.haskell.lib; {
 
   StateVar = self.callPackage (./pkgs/StateVar.nix) { };
 
+  abstract-deque = self.callPackage (./pkgs/abstract-deque.nix) { };
+
   abstract-par = self.callPackage (./pkgs/abstract-par.nix) { };
 
   adjunctions = self.callPackage (./pkgs/adjunctions.nix) { };
diff --git a/pkgs/abstract-deque.nix b/pkgs/abstract-deque.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8b021fbaf425b69ebc8ce6ff0d40c4f7befb996b
--- /dev/null
+++ b/pkgs/abstract-deque.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, array, base, containers, lib, random, time }:
+mkDerivation {
+  pname = "abstract-deque";
+  version = "0.3";
+  sha256 = "09aa10f38193a8275a7791b92a4f3a7192a304874637e2a35c897dde25d75ca2";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base containers random time ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/rrnewton/haskell-lockfree/wiki";
+  description = "Abstract, parameterized interface to mutable Deques";
+  license = lib.licenses.bsd3;
+  broken = false;
+}