diff --git a/manifest.dhall b/manifest.dhall
index fad6ad3f13cbf14f26a7b5d8b8df6d6f1c731ca0..ccc98e8eedcbb1bb43751b2245da6ed2dd940cf5 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -125,6 +125,11 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "dec" "0.0.5"
     , callHackage "dhall" "1.41.2"
     , callHackage "dimensional" "1.5"
+    , callCabal2nix
+        "dirforest"
+        "https://github.com/NorfairKing/dirforest"
+        (Some "69e8ae036b047fae105c1fe990e175a7572a3eba")
+        (Some "dirforest")
     , callHackage "distribution-nixpkgs" "1.7.0"
     , callCabal2nix
         "doctest"
diff --git a/overlay.nix b/overlay.nix
index 2960b55e7b8ad68a3babf4e856fca24c7a355ab7..a272bca414ca08b4ebbc2ecb1723def12a353af2 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -117,6 +117,8 @@ final: prev: with pkgs.haskell.lib; {
 
     dimensional = prev.callPackage (./pkgs/dimensional.nix) { };
 
+    dirforest = prev.callPackage (./pkgs/dirforest.nix) { };
+
     distribution-nixpkgs = prev.callPackage (./pkgs/distribution-nixpkgs.nix) { };
 
     doctest = prev.callPackage (./pkgs/doctest.nix) { };
diff --git a/pkgs/dirforest.nix b/pkgs/dirforest.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e7d83741c2ded58147bcc9172924924ad3e2ce0d
--- /dev/null
+++ b/pkgs/dirforest.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, aeson, base, containers, deepseq, fetchgit
+, filepath, lib, path, path-io, validity, validity-containers
+, validity-path
+}:
+mkDerivation {
+  pname = "dirforest";
+  version = "0.0.0.0";
+  src = fetchgit {
+    url = "https://github.com/NorfairKing/dirforest";
+    sha256 = "0d5gf7y46nrrrysmpmhfq7iij9xcpbiqp4bnzz09730zqfs40rm4";
+    rev = "69e8ae036b047fae105c1fe990e175a7572a3eba";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/dirforest/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    aeson base containers deepseq filepath path path-io validity
+    validity-containers validity-path
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/dirforest#readme";
+  license = "unknown";
+}
\ No newline at end of file