diff --git a/manifest.dhall b/manifest.dhall
index 6ec19792c56c4e4c216833a64d82cccbae550fd6..338c19cc4e2a67fb73fa3e086ff0ab67030f7883 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -196,6 +196,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
         (Some "dirforest")
     , callHackage "distribution-nixpkgs" "1.7.0"
     , callHackage "distributive" "0.6.2.1"
+    , callHackage "dlist" "1.0"
     , callCabal2nix
         "doctest"
         "https://github.com/sol/doctest"
diff --git a/overlay.nix b/overlay.nix
index e05c397136c5e3311f3f8751d3c41e3654a252e4..4aae2f2aae9c0bc31f07dc4945e9856ea1998be1 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -227,6 +227,8 @@ self: with pkgs.haskell.lib; {
 
   distributive = self.callPackage (./pkgs/distributive.nix) { };
 
+  dlist = self.callPackage (./pkgs/dlist.nix) { };
+
   doctemplates = self.callPackage (./pkgs/doctemplates.nix) { };
 
   doctest = self.callPackage (./pkgs/doctest.nix) { };
diff --git a/pkgs/dlist.nix b/pkgs/dlist.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2a9bf06708ccd7c202ca6d8565bca2e23c1ddbab
--- /dev/null
+++ b/pkgs/dlist.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, deepseq, lib, QuickCheck }:
+mkDerivation {
+  pname = "dlist";
+  version = "1.0";
+  sha256 = "173d637328bb173fcc365f30d29ff4a94292a1e0e5558aeb3dfc11de81510115";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  testHaskellDepends = [ base QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/spl/dlist";
+  description = "Difference lists";
+  license = lib.licenses.bsd3;
+  broken = false;
+}