diff --git a/manifest.dhall b/manifest.dhall
index 11089732f7484b81f5790d16c8d293efed17f22b..757e906d2b883ea0bd81e0cccdeae325e2ac8f62 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -572,6 +572,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
         (Some "e212239b685e1ecf7ee95dd1e944cc563351907f")
         (None Text)
     , callHackage "tls" "1.6.0"
+    , callHackage "trifecta" "2.1.2"
     , callHackage "typed-process" "0.2.10.1"
     , callHackage "type-errors-pretty" "0.0.1.2"
     , callHackage "type-errors" "0.2.0.0"
diff --git a/overlay.nix b/overlay.nix
index 01889e5c88bc411b4909fd5d97273bb67dfd27e1..c54339bd8066a9a6a9084b979fa259fd8c3e92de 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -767,6 +767,8 @@ final: prev: with pkgs.haskell.lib; {
 
   tls = prev.callPackage (./pkgs/tls.nix) { };
 
+  trifecta = prev.callPackage (./pkgs/trifecta.nix) { };
+
   type-equality = prev.callPackage (./pkgs/type-equality.nix) { };
 
   type-errors = prev.callPackage (./pkgs/type-errors.nix) { };
diff --git a/pkgs/trifecta.nix b/pkgs/trifecta.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d56ed7e97bcdb0b8db3cf5c0974af5e64eff87c6
--- /dev/null
+++ b/pkgs/trifecta.nix
@@ -0,0 +1,78 @@
+{ mkDerivation
+, ansi-terminal
+, array
+, base
+, blaze-builder
+, blaze-html
+, blaze-markup
+, bytestring
+, charset
+, comonad
+, containers
+, deepseq
+, fingertree
+, ghc-prim
+, hashable
+, indexed-traversable
+, lens
+, lib
+, mtl
+, parsers
+, prettyprinter
+, prettyprinter-ansi-terminal
+, profunctors
+, QuickCheck
+, reducers
+, transformers
+, unordered-containers
+, utf8-string
+}:
+mkDerivation {
+  pname = "trifecta";
+  version = "2.1.2";
+  sha256 = "8a3a4e3367f6b62152dd4f75c52f9972082c31ed0c24a7e1d27cea574d457daa";
+  revision = "1";
+  editedCabalFile = "0a7cfbd04w3zbm234mmpib9mxar46ra5xvb62gcnbmixr7b343j9";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    ansi-terminal
+    array
+    base
+    blaze-builder
+    blaze-html
+    blaze-markup
+    bytestring
+    charset
+    comonad
+    containers
+    deepseq
+    fingertree
+    ghc-prim
+    hashable
+    indexed-traversable
+    lens
+    mtl
+    parsers
+    prettyprinter
+    prettyprinter-ansi-terminal
+    profunctors
+    reducers
+    transformers
+    unordered-containers
+    utf8-string
+  ];
+  testHaskellDepends = [ base parsers QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/trifecta/";
+  description = "A modern parser combinator library with convenient diagnostics";
+  license = lib.licenses.bsd3;
+  broken = false;
+}