diff --git a/horizon.dhall b/horizon.dhall
index 5badd34a0559ed895ab0930cf067b24ce5f58907..34c5ef15579ad0d04163e0104702e66707bda1eb 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -557,7 +557,11 @@ let packages =
       , snap-server = H.callHackage "snap-server" "1.1.2.1"
       , sort = H.callHackage "sort" "1.0.0.0"
       , sorted-list = H.callHackage "sorted-list" "0.2.2.0"
-      , souffle-haskell = H.callHackage "souffle-haskell" "3.5.1"
+      , souffle-haskell =
+          H.callGit
+            "https://github.com/luc-tielen/souffle-haskell"
+            "e441c84f1d64890e31c92fbb278c074ae8bcaff5"
+            (None H.Subdir)
       , sqlite-simple = H.callHackage "sqlite-simple" "0.4.18.2"
       , statestack = H.callHackage "statestack" "0.3.1.1"
       , statistics-linreg = H.callHackage "statistics-linreg" "0.3"
diff --git a/horizon.lock b/horizon.lock
index 6265c47efac0b4cfcd4a908587875e1b2bfadf8a..e2d09ef574aab56a0653a77426c83e81f3750c19 100644
--- a/horizon.lock
+++ b/horizon.lock
@@ -1828,7 +1828,7 @@
   }
 , { mapKey = "souffle-haskell"
   , mapValue =
-      "ee44e9b748a808329d7460c370ddc0e7dade782cc039b6b2e577dab8e1740328"
+      "c7a4d4b2d6401d2a21eeb43191ff5b2adfc5b3ee01f537e6f95c1b6d28b426f3"
   }
 , { mapKey = "sqlite-simple"
   , mapValue =
diff --git a/pkgs/souffle-haskell.nix b/pkgs/souffle-haskell.nix
index 970ba085a2fbe1919b7080b178feee8aafccd287..b46ffc032e7260eaac195c4cfb54763424fb804d 100644
--- a/pkgs/souffle-haskell.nix
+++ b/pkgs/souffle-haskell.nix
@@ -1,21 +1,26 @@
 { mkDerivation, array, base, bytestring, criterion, deepseq
-, directory, filepath, hedgehog, hspec, hspec-hedgehog, lib, mtl
-, process, profunctors, temporary, text, text-short, vector
+, directory, fetchgit, filepath, hedgehog, hspec, hspec-hedgehog
+, lib, mtl, process, profunctors, temporary, text, vector
 }:
 mkDerivation {
   pname = "souffle-haskell";
-  version = "3.5.1";
-  sha256 = "70b9b8fb6e58609675c5b29137557f1cbe599443dd0ab31ca33b1f66815ebc6f";
+  version = "4.0.0";
+  src = fetchgit {
+    url = "https://github.com/luc-tielen/souffle-haskell";
+    sha256 = "03kn2ap5wkiiqajln48gn70pq5dsypivvb6n3nl3i4gqdh8l2xnm";
+    rev = "e441c84f1d64890e31c92fbb278c074ae8bcaff5";
+    fetchSubmodules = true;
+  };
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
   libraryHaskellDepends = [
     array base bytestring deepseq directory filepath mtl process
-    profunctors temporary text text-short vector
+    profunctors temporary text vector
   ];
   testHaskellDepends = [
     array base directory hedgehog hspec hspec-hedgehog profunctors
-    temporary text text-short vector
+    temporary text vector
   ];
   benchmarkHaskellDepends = [ base criterion deepseq text vector ];
   enableLibraryProfiling = true;