diff --git a/manifest.dhall b/manifest.dhall
index 999f4662f58d9f593f33ce7c04f49b185adba3ce..86e54afeeba8c3a98831773f3c21f746885969f3 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -622,6 +622,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "these" "1.1.1.1"
     , callHackage "these-skinny" "0.7.5"
     , callHackage "tf-random" "0.5"
+    , callHackage "th-abstraction" "0.4.5.0"
     , callHackage "th-env" "0.1.1"
     , callHackage "th-expand-syns" "0.4.10.0"
     , callHackage "th-extras" "0.0.0.6"
diff --git a/overlay.nix b/overlay.nix
index b41bb73ddc983ad789cdce9b22300bc43d06e393..9d40601013561767fd3ea31cfcdf2d142dcd09b6 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -879,6 +879,8 @@ self: with pkgs.haskell.lib; {
 
   tf-random = self.callPackage (./pkgs/tf-random.nix) { };
 
+  th-abstraction = self.callPackage (./pkgs/th-abstraction.nix) { };
+
   th-env = self.callPackage (./pkgs/th-env.nix) { };
 
   th-expand-syns = self.callPackage (./pkgs/th-expand-syns.nix) { };
diff --git a/pkgs/th-abstraction.nix b/pkgs/th-abstraction.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5631e4f40e53989d3a9d1475fc98509d654d2c79
--- /dev/null
+++ b/pkgs/th-abstraction.nix
@@ -0,0 +1,33 @@
+{ mkDerivation
+, base
+, containers
+, ghc-prim
+, lib
+, template-haskell
+}:
+mkDerivation {
+  pname = "th-abstraction";
+  version = "0.4.5.0";
+  sha256 = "00d5e24f247e328bd9898d5af5915c1e86b134b4d40baa680258635f95031526";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    ghc-prim
+    template-haskell
+  ];
+  testHaskellDepends = [ base containers template-haskell ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/glguy/th-abstraction";
+  description = "Nicer interface for reified information about data types";
+  license = lib.licenses.isc;
+  broken = false;
+}