diff --git a/manifest.dhall b/manifest.dhall
index ac9011a6c0602575d52f96b793057d82ba43c04b..77f8492ec054fe12f31aa0c81ba131189a64a462 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -364,6 +364,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "happy" "1.20.0"
     , callHackage "hashable" "1.4.1.0"
     , callHackage "hashing" "0.1.0.1"
+    , callHackage "hashmap" "1.3.3"
     , callHackage "hashtables" "1.3"
     , callHackage "haskell-lexer" "1.1"
     , callHackage "haskell-src-exts" "1.23.1"
diff --git a/overlay.nix b/overlay.nix
index 9a431a444af9c00890fa23c00c8824dd3b01ecae..b23f3397a29728a7b3b66482a8e26c63de86f1d1 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -533,6 +533,8 @@ self: with pkgs.haskell.lib; {
 
   hashing = self.callPackage (./pkgs/hashing.nix) { };
 
+  hashmap = self.callPackage (./pkgs/hashmap.nix) { };
+
   hashtables = self.callPackage (./pkgs/hashtables.nix) { };
 
   haskell-lexer = self.callPackage (./pkgs/haskell-lexer.nix) { };
diff --git a/pkgs/hashmap.nix b/pkgs/hashmap.nix
new file mode 100644
index 0000000000000000000000000000000000000000..085caea4bfefed164ccdc8f307e40038942e45a8
--- /dev/null
+++ b/pkgs/hashmap.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, containers, deepseq, hashable, lib }:
+mkDerivation {
+  pname = "hashmap";
+  version = "1.3.3";
+  sha256 = "dc06b57cd1bcd656d4602df7705a3f11a54ae65f664e9be472d42a9bdcd64755";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers deepseq hashable ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/foxik/hashmap";
+  description = "Persistent containers Map and Set based on hashing";
+  license = lib.licenses.bsd3;
+  broken = false;
+}