diff --git a/manifest.dhall b/manifest.dhall
index 2c8385cc2686f14cda2705fafb566a63d3b24a6e..aee81d05f52547286c2bc0b983dd5771f14f7b31 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -275,6 +275,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "file-embed" "0.0.15.0"
     , callHackage "filemanip" "0.3.6.3"
     , callHackage "filepattern" "0.1.3"
+    , callHackage "fingertree" "0.1.5.0"
     , callHackage "finite-field" "0.10.0"
     , callHackage "first-class-families" "0.8.0.1"
     , callHackage "fin" "0.2.1"
diff --git a/overlay.nix b/overlay.nix
index 4dd64ae3c16c7eab5f2a214da259349569a954ed..76fa8a0d722393755d8dbe0a5c3606a80a475f91 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -365,6 +365,8 @@ self: with pkgs.haskell.lib; {
 
   fin = self.callPackage (./pkgs/fin.nix) { };
 
+  fingertree = self.callPackage (./pkgs/fingertree.nix) { };
+
   finite-field = self.callPackage (./pkgs/finite-field.nix) { };
 
   first-class-families = self.callPackage (./pkgs/first-class-families.nix) { };
diff --git a/pkgs/fingertree.nix b/pkgs/fingertree.nix
new file mode 100644
index 0000000000000000000000000000000000000000..60e604e1f4c8ba3b476fc3a57e1c111647ffa84b
--- /dev/null
+++ b/pkgs/fingertree.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, base
+, HUnit
+, lib
+, QuickCheck
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "fingertree";
+  version = "0.1.5.0";
+  sha256 = "f3263c92fa8b18f1e1a64cd12480c8c1bee2c1fa0584ab3345f3dd8522bdbf71";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Generic finger-tree structure, with example instances";
+  license = lib.licenses.bsd3;
+  broken = false;
+}