diff --git a/manifest.dhall b/manifest.dhall
index 6255b0edbdf15cb95d3f36f4293a64242d7dbbfa..0fcf8df33c2a69aae864a94656037b2ab724d164 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -469,6 +469,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "optics-th" "0.4.1"
     , callHackage "optics" "0.4.2"
     , callHackage "optparse-applicative" "0.17.0.0"
+    , callHackage "ordered-containers" "0.2.3"
     , callHackage "parsers" "0.12.11"
     , callHackage "parser-combinators" "1.3.0"
     , callHackage "pandoc-lua-marshal" "0.1.7"
diff --git a/overlay.nix b/overlay.nix
index cebfef480066acdae739791ffc67288b1148ad46..3b76a99b988f937c629a54fcb552d0ae6a3507a3 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -679,6 +679,8 @@ self: with pkgs.haskell.lib; {
 
   optparse-applicative = self.callPackage (./pkgs/optparse-applicative.nix) { };
 
+  ordered-containers = self.callPackage (./pkgs/ordered-containers.nix) { };
+
   pandoc = self.callPackage (./pkgs/pandoc.nix) { };
 
   pandoc-lua-marshal = self.callPackage (./pkgs/pandoc-lua-marshal.nix) { };
diff --git a/pkgs/ordered-containers.nix b/pkgs/ordered-containers.nix
new file mode 100644
index 0000000000000000000000000000000000000000..89a1831779488e332f462765a91fd137cbfbb464
--- /dev/null
+++ b/pkgs/ordered-containers.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, containers, lib }:
+mkDerivation {
+  pname = "ordered-containers";
+  version = "0.2.3";
+  sha256 = "36849705752f3bc367fa1d172e1ec57375418341e9d74de572ae1b6fb56a81a3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Set- and Map-like types that remember the order elements were inserted";
+  license = lib.licenses.bsd3;
+  broken = false;
+}