diff --git a/manifest.dhall b/manifest.dhall
index f6c9c7ed0ecbaeb897c40bf75796ceb988e6317e..f6785bdecee28bb3019684772d1749fc62e18b56 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -517,6 +517,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "syb" "0.7.2.1"
     , callHackage "sydtest" "0.13.0.0"
     , callHackage "sydtest-discover" "0.0.0.2"
+    , callHackage "tagged" "0.8.6.1"
     , callCabal2nix
         "tasty"
         "https://github.com/UnkindPartition/tasty"
diff --git a/overlay.nix b/overlay.nix
index 2d0e2029974d78bab2d2d2279f2df099c998cf1a..a710f05c51486519ca318afcefe96c76c530eded 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -689,6 +689,8 @@ final: prev: with pkgs.haskell.lib; {
 
   sydtest-discover = prev.callPackage (./pkgs/sydtest-discover.nix) { };
 
+  tagged = prev.callPackage (./pkgs/tagged.nix) { };
+
   tasty = prev.callPackage (./pkgs/tasty.nix) { };
 
   tasty-discover = prev.callPackage (./pkgs/tasty-discover.nix) { };
diff --git a/pkgs/tagged.nix b/pkgs/tagged.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1d76304a5c668f49467083d622ac6f862bb5c0b4
--- /dev/null
+++ b/pkgs/tagged.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, base
+, deepseq
+, lib
+, template-haskell
+, transformers
+}:
+mkDerivation {
+  pname = "tagged";
+  version = "0.8.6.1";
+  sha256 = "f5e0fcf95f0bb4aa63f428f2c01955a41ea1a42cfcf39145ed631f59a9616c02";
+  revision = "3";
+  editedCabalFile = "19klgkhkca9qgq2ylc41z85x7piagjh8wranriy48dcfkgraw94a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    deepseq
+    template-haskell
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/tagged";
+  description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments";
+  license = lib.licenses.bsd3;
+  broken = false;
+}