diff --git a/manifest.dhall b/manifest.dhall
index a4e9af860c1b1245d11176bcc0dcee0a1f438ea2..4bdd0738c3d8f54bdba632641acb312db6ffd677 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -550,6 +550,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "optics-extra" "0.4.2.1"
     , callHackage "optics-th" "0.4.1"
     , callHackage "optics" "0.4.2"
+    , callHackage "optional-args" "1.0.2"
     , callHackage "options" "1.2.1.1"
     , callHackage "optparse-applicative" "0.17.0.0"
     , callHackage "ordered-containers" "0.2.3"
diff --git a/overlay.nix b/overlay.nix
index 901ae671c400c17d6cbc5bc8c1a3bc9b243e9614..2c6a1d18cf6a9c575e2127cf1fdcf6dec4d6a1f2 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -841,6 +841,8 @@ self: with pkgs.haskell.lib; {
 
   optics-th = self.callPackage (./pkgs/optics-th.nix) { };
 
+  optional-args = self.callPackage (./pkgs/optional-args.nix) { };
+
   options = self.callPackage (./pkgs/options.nix) { };
 
   optparse-applicative = self.callPackage (./pkgs/optparse-applicative.nix) { };
diff --git a/pkgs/optional-args.nix b/pkgs/optional-args.nix
new file mode 100644
index 0000000000000000000000000000000000000000..25b1e5436d3f0bec2a7ceb3b89abadb90feb8de1
--- /dev/null
+++ b/pkgs/optional-args.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "optional-args";
+  version = "1.0.2";
+  sha256 = "2e3454ad77cba80b15c02dbe1915889fafa81a22deb7fe5e7e01b0dd8d85b0e4";
+  revision = "2";
+  editedCabalFile = "1f3j092lk2qa6hi2p4iciyyxg27mzm37dlcw5hg3ch2wh6jw0a37";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Optional function arguments";
+  license = lib.licenses.bsd3;
+  broken = false;
+}