diff --git a/manifest.dhall b/manifest.dhall
index 7dd8fa30eb67519d7b1d375ed0b97be88d4e9cba..cc387b3006dfb58eb3f36ade88134e40d0ac8809 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -218,6 +218,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "effectful" "2.1.0.0"
     , callHackage "enclosed-exceptions" "1.0.3"
     , callHackage "extra" "1.7.12"
+    , callHackage "expiring-cache-map" "0.0.6.1"
     , callHackage "fcf-containers" "0.7.1"
     , callHackage "filepattern" "0.1.3"
     , callHackage "finite-field" "0.10.0"
diff --git a/overlay.nix b/overlay.nix
index f56c1d9e5e6320f632360c2f5e2ae600ef663ee8..6cd83b798499218ddd691b38f5fe237e4d3ffdc6 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -237,6 +237,8 @@ final: prev: with pkgs.haskell.lib; {
 
   enclosed-exceptions = prev.callPackage (./pkgs/enclosed-exceptions.nix) { };
 
+  expiring-cache-map = prev.callPackage (./pkgs/expiring-cache-map.nix) { };
+
   extra = prev.callPackage (./pkgs/extra.nix) { };
 
   fcf-containers = prev.callPackage (./pkgs/fcf-containers.nix) { };
diff --git a/pkgs/expiring-cache-map.nix b/pkgs/expiring-cache-map.nix
new file mode 100644
index 0000000000000000000000000000000000000000..abeac0f6688d3d772239a4a79cb0ca750db24bc9
--- /dev/null
+++ b/pkgs/expiring-cache-map.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, base
+, bytestring
+, containers
+, hashable
+, lib
+, time
+, unordered-containers
+}:
+mkDerivation {
+  pname = "expiring-cache-map";
+  version = "0.0.6.1";
+  sha256 = "0e3bc294978b46ee59bf0b4a7e7a5bd7ed5da7bc261ffebdb0cb1b60353c64b9";
+  revision = "1";
+  editedCabalFile = "1k5wqilafxp3ksqb7qy90cwipk0db568f15amn3mnf9krc1qjabg";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    hashable
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    containers
+    hashable
+    time
+    unordered-containers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://codeberg.org/elblake/expiring-cache-map";
+  description = "General purpose simple caching";
+  license = lib.licenses.bsd3;
+  broken = false;
+}