diff --git a/manifest.dhall b/manifest.dhall
index f12a916587a5b763c4cacb4c3795f66c2c05e696..885cc288327cbdbb092481bb4d35d965778f8ea3 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -489,6 +489,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "monoid-subclasses" "1.1.3"
     , callHackage "mwc-random" "0.15.0.2"
     , callHackage "nanospec" "0.2.2"
+    , callHackage "natural-transformation" "0.4"
     , callHackage "network-bsd" "2.8.1.0"
     , callHackage "network-byte-order" "0.1.6"
     , callHackage "network-conduit-tls" "1.3.2"
diff --git a/overlay.nix b/overlay.nix
index 86d1817718b2d8973816ea1c626c04d57ffd4cdf..2b3d44806adf0d4cc8d95ef46ccdac9d00c06035 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -725,6 +725,8 @@ self: with pkgs.haskell.lib; {
 
   nanospec = self.callPackage (./pkgs/nanospec.nix) { };
 
+  natural-transformation = self.callPackage (./pkgs/natural-transformation.nix) { };
+
   net-mqtt = self.callPackage (./pkgs/net-mqtt.nix) { };
 
   network = self.callPackage (./pkgs/network.nix) { };
diff --git a/pkgs/natural-transformation.nix b/pkgs/natural-transformation.nix
new file mode 100644
index 0000000000000000000000000000000000000000..50369a079c548e282b11477cc1179bb625dd208c
--- /dev/null
+++ b/pkgs/natural-transformation.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, base
+, containers
+, lib
+, quickcheck-instances
+, tasty
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "natural-transformation";
+  version = "0.4";
+  sha256 = "aac28e2c1147ed77c1ec0f0eb607a577fa26d0fd67474293ba860ec124efc8af";
+  revision = "10";
+  editedCabalFile = "18d14fasp1l5xdfgp8swgcyyjd3irqj19cn298ksx9wiw43j818p";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base
+    containers
+    quickcheck-instances
+    tasty
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ku-fpg/natural-transformation";
+  description = "A natural transformation package";
+  license = lib.licenses.bsd3;
+  broken = false;
+}