diff --git a/manifest.dhall b/manifest.dhall
index 4bdd0738c3d8f54bdba632641acb312db6ffd677..f016aba52275c42733fceb0f007129c962c425ea 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -224,6 +224,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "data-sketches-core" "0.1.0.0"
     , callHackage "dec" "0.0.5"
     , callHackage "dense-linear-algebra" "0.1.0.0"
+    , callHackage "dependent-sum" "0.7.1.0"
     , callHackage "derp" "0.1.6"
     , callHackage "deriving-aeson" "0.2.8"
     , callHackage "dhall" "1.41.2"
diff --git a/overlay.nix b/overlay.nix
index 2c6a1d18cf6a9c575e2127cf1fdcf6dec4d6a1f2..21efb450f41def3e1e8aab822916e67e0ce2c2ff 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -301,6 +301,8 @@ self: with pkgs.haskell.lib; {
 
   dense-linear-algebra = self.callPackage (./pkgs/dense-linear-algebra.nix) { };
 
+  dependent-sum = self.callPackage (./pkgs/dependent-sum.nix) { };
+
   deriving-aeson = self.callPackage (./pkgs/deriving-aeson.nix) { };
 
   derp = self.callPackage (./pkgs/derp.nix) { };
diff --git a/pkgs/dependent-sum.nix b/pkgs/dependent-sum.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f693252f264f6ec5ea5bdf4eae94abb1972e62dd
--- /dev/null
+++ b/pkgs/dependent-sum.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, constraints-extras, lib, some }:
+mkDerivation {
+  pname = "dependent-sum";
+  version = "0.7.1.0";
+  sha256 = "81cb55907f321f62bea095ae72e9711095c4cb7378fa66fbabc483a9f61b462a";
+  revision = "2";
+  editedCabalFile = "0d7wb1ag60mcm56axcrx9pd6hgrsxmqynyplbcfl01ms2i60fhr9";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base constraints-extras some ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/obsidiansystems/dependent-sum";
+  description = "Dependent sum type";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}