diff --git a/manifest.dhall b/manifest.dhall
index 70045ef709c405ca64c78d207fe840ea8439abcf..c9cb0bb3138b8caeaff4d8ec1aca5d9adade5919 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -217,6 +217,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "ghc-lib-parser-ex" "9.4.0.0"
     , callHackage "ghc-paths" "0.1.0.12"
     , callHackage "ghc-tcplugins-extra" "0.4.3"
+    , callHackage "ghc-typelits-knownnat" "0.7.7"
     , callHackage "ghc-typelits-natnormalise" "0.7.7"
     , callHackage "ghcid" "0.8.8"
     , callHackage "hackage-security" "0.6.2.2"
diff --git a/overlay.nix b/overlay.nix
index 8ec48c96ca8fab1fb5963fb064707b0667ba5f22..36cd0cf9b3163977a5a3e19d3dadac239c974fab 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -229,6 +229,8 @@ final: prev: with pkgs.haskell.lib; {
 
     ghc-tcplugins-extra = prev.callPackage (./pkgs/ghc-tcplugins-extra.nix) { };
 
+    ghc-typelits-knownnat = prev.callPackage (./pkgs/ghc-typelits-knownnat.nix) { };
+
     ghc-typelits-natnormalise = prev.callPackage (./pkgs/ghc-typelits-natnormalise.nix) { };
 
     ghcid = prev.callPackage (./pkgs/ghcid.nix) { };
diff --git a/pkgs/ghc-typelits-knownnat.nix b/pkgs/ghc-typelits-knownnat.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c9066d12fa5cb24196c15c66e69915b9805ad64d
--- /dev/null
+++ b/pkgs/ghc-typelits-knownnat.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, ghc, ghc-prim, ghc-tcplugins-extra
+, ghc-typelits-natnormalise, lib, tasty, tasty-hunit
+, tasty-quickcheck, template-haskell, transformers
+}:
+mkDerivation {
+  pname = "ghc-typelits-knownnat";
+  version = "0.7.7";
+  sha256 = "c79018557e88cd1b3937d15d9fb75c4cc7e6b44856ad53b15ae4c421a385f92c";
+  libraryHaskellDepends = [
+    base ghc ghc-prim ghc-tcplugins-extra ghc-typelits-natnormalise
+    template-haskell transformers
+  ];
+  testHaskellDepends = [
+    base ghc-typelits-natnormalise tasty tasty-hunit tasty-quickcheck
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://clash-lang.org/";
+  description = "Derive KnownNat constraints from other KnownNat constraints";
+  license = lib.licenses.bsd2;
+}
\ No newline at end of file