diff --git a/manifest.dhall b/manifest.dhall
index f6785bdecee28bb3019684772d1749fc62e18b56..e7abfcf0d9f3c3cf7dcfab408688c7812d4bd335 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -432,6 +432,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "quickcheck-instances" "0.3.28"
     , callHackage "rebase" "1.16"
     , callHackage "refined" "0.8"
+    , callHackage "reflection" "2.1.6"
     , callHackage "resource-pool" "0.3.1.0"
     , callHackage "resourcet" "1.3.0"
     , callHackage "rerebase" "1.15.0.3"
diff --git a/overlay.nix b/overlay.nix
index a710f05c51486519ca318afcefe96c76c530eded..89025c613aa2c408b9b1e071255585e9b2d1e8f6 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -569,6 +569,8 @@ final: prev: with pkgs.haskell.lib; {
 
   refined = prev.callPackage (./pkgs/refined.nix) { };
 
+  reflection = prev.callPackage (./pkgs/reflection.nix) { };
+
   relude = prev.callPackage (./pkgs/relude.nix) { };
 
   rere = prev.callPackage (./pkgs/rere.nix) { };
diff --git a/pkgs/reflection.nix b/pkgs/reflection.nix
new file mode 100644
index 0000000000000000000000000000000000000000..92577d318c918c1544cbc3d4c63504aff72b548c
--- /dev/null
+++ b/pkgs/reflection.nix
@@ -0,0 +1,33 @@
+{ mkDerivation
+, base
+, containers
+, hspec
+, hspec-discover
+, lib
+, QuickCheck
+, template-haskell
+}:
+mkDerivation {
+  pname = "reflection";
+  version = "2.1.6";
+  sha256 = "bf3e14917ebb329a53701a3cce0afe670f20037a0148dbfa5cbfa574ed6ba6cd";
+  revision = "1";
+  editedCabalFile = "1bnpkfmagii4mc8258yjy4f4lykflmljkqcifnxpfqv99bszw6pl";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base template-haskell ];
+  testHaskellDepends = [ base containers hspec QuickCheck ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/reflection";
+  description = "Reifies arbitrary terms into types that can be reflected back into terms";
+  license = lib.licenses.bsd3;
+  broken = false;
+}