diff --git a/manifest.dhall b/manifest.dhall
index 086e57c7d892d24d9350d1797f8827772c27bf97..3b83334ef8bc8cc9f926d10183814eef1cb70896 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -321,6 +321,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "indexed-traversable" "0.1.2"
     , callHackage "indexed-traversable-instances" "0.1.1.1"
     , callHackage "infer-license" "0.2.0"
+    , callHackage "insert-ordered-containers" "0.2.5.1"
     , callHackage "inspection-testing" "0.5"
     , callHackage "integer-logarithms" "1.0.3.1"
     , callHackage "invariant" "0.6"
diff --git a/overlay.nix b/overlay.nix
index 1470930e6adb9c240f84d3dc7df131d5669d20b1..ab640c194bbac21344f9b5e9d7f662a9ee9e9738 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -411,6 +411,8 @@ final: prev: with pkgs.haskell.lib; {
 
   infer-license = prev.callPackage (./pkgs/infer-license.nix) { };
 
+  insert-ordered-containers = prev.callPackage (./pkgs/insert-ordered-containers.nix) { };
+
   inspection-testing = prev.callPackage (./pkgs/inspection-testing.nix) { };
 
   integer-logarithms = prev.callPackage (./pkgs/integer-logarithms.nix) { };
diff --git a/pkgs/insert-ordered-containers.nix b/pkgs/insert-ordered-containers.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5abb954556a4fac5438907c2b35a979a845f6410
--- /dev/null
+++ b/pkgs/insert-ordered-containers.nix
@@ -0,0 +1,67 @@
+{ mkDerivation
+, aeson
+, base
+, base-compat
+, deepseq
+, hashable
+, indexed-traversable
+, lens
+, lib
+, optics-core
+, optics-extra
+, QuickCheck
+, semigroupoids
+, tasty
+, tasty-quickcheck
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "insert-ordered-containers";
+  version = "0.2.5.1";
+  sha256 = "f9a8217d7afa8ddeb7e6fbe1e4c37e40e31d26561acf9d8b01e8f7e3d703ccd6";
+  revision = "3";
+  editedCabalFile = "11awwf3lm3qzjqxy8gw9cizr30228cjwhqzff7wvjvdx131s0raa";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    deepseq
+    hashable
+    indexed-traversable
+    lens
+    optics-core
+    optics-extra
+    semigroupoids
+    text
+    transformers
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    base-compat
+    hashable
+    lens
+    QuickCheck
+    semigroupoids
+    tasty
+    tasty-quickcheck
+    text
+    unordered-containers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/phadej/insert-ordered-containers#readme";
+  description = "Associative containers retaining insertion order for traversals";
+  license = lib.licenses.bsd3;
+  broken = false;
+}