diff --git a/manifest.dhall b/manifest.dhall
index bf60fe8a8415732ceeb78470bf1b0cf32dd3ca6a..330265f5340e351ef99d8fa8b3c67efd79374e94 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -156,7 +156,11 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "finite-field" "0.10.0"
     , callHackage "first-class-families" "0.8.0.1"
     , callHackage "foldl" "1.4.12"
-    , callHackage "fourmolu" "0.8.2.0"
+    , callCabal2nix
+        "fourmolu"
+        "https://github.com/fourmolu/fourmolu"
+        (Some "c6d7156b5f3e8287960a76e777c40b62ebfdbcb3")
+        (None Text)
     , callHackage "foundation" "0.0.29"
     , callHackage "generic-lens-core" "2.2.1.0"
     , callHackage "generic-lens-lite" "0.1"
diff --git a/pkgs/fourmolu.nix b/pkgs/fourmolu.nix
index 5f53ca1f81d2ee1a5874660da2b9a23a0aca2568..fa8b6483be7c2f1ab5e5de1e593a9217ca11bd6d 100644
--- a/pkgs/fourmolu.nix
+++ b/pkgs/fourmolu.nix
@@ -1,95 +1,34 @@
-{ mkDerivation
-, aeson
-, ansi-terminal
-, array
-, base
-, bytestring
-, Cabal
-, containers
-, Diff
-, directory
-, dlist
-, exceptions
-, filepath
-, ghc-lib-parser
-, gitrev
-, hspec
-, hspec-discover
-, hspec-megaparsec
-, lib
-, megaparsec
-, MemoTrie
-, mtl
-, optparse-applicative
-, path
-, path-io
-, pretty
-, process
-, QuickCheck
-, syb
-, template-haskell
-, temporary
-, text
-, th-lift-instances
-, yaml
+{ mkDerivation, aeson, ansi-terminal, array, base, bytestring
+, Cabal, containers, Diff, directory, dlist, exceptions, fetchgit
+, filepath, ghc-lib-parser, gitrev, hspec, hspec-discover
+, hspec-megaparsec, lib, megaparsec, MemoTrie, mtl
+, optparse-applicative, path, path-io, pretty, process, QuickCheck
+, syb, template-haskell, temporary, text, th-lift-instances, yaml
 }:
 mkDerivation {
   pname = "fourmolu";
   version = "0.8.2.0";
-  sha256 = "3dfa8569f16f5aa12f43442e25d1bce13e291b526b2ea941be005ce8fc90cef3";
+  src = fetchgit {
+    url = "https://github.com/fourmolu/fourmolu";
+    sha256 = "0y4gdwimyvh6ha86hwjp62b9cnjwsb0svd3jcwjjaffcikwalbvs";
+    rev = "c6d7156b5f3e8287960a76e777c40b62ebfdbcb3";
+    fetchSubmodules = true;
+  };
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
-    aeson
-    ansi-terminal
-    array
-    base
-    bytestring
-    Cabal
-    containers
-    Diff
-    directory
-    dlist
-    exceptions
-    filepath
-    ghc-lib-parser
-    megaparsec
-    MemoTrie
-    mtl
-    syb
-    template-haskell
-    text
-    th-lift-instances
-    yaml
+    aeson ansi-terminal array base bytestring Cabal containers Diff
+    directory dlist exceptions filepath ghc-lib-parser megaparsec
+    MemoTrie mtl syb template-haskell text th-lift-instances yaml
   ];
   executableHaskellDepends = [
-    base
-    containers
-    directory
-    filepath
-    ghc-lib-parser
-    gitrev
-    optparse-applicative
-    text
-    yaml
+    base containers directory filepath ghc-lib-parser gitrev
+    optparse-applicative text yaml
   ];
   testHaskellDepends = [
-    base
-    containers
-    Diff
-    directory
-    filepath
-    ghc-lib-parser
-    hspec
-    hspec-megaparsec
-    megaparsec
-    path
-    path-io
-    pretty
-    process
-    QuickCheck
-    temporary
-    text
+    base containers Diff directory filepath ghc-lib-parser hspec
+    hspec-megaparsec megaparsec path path-io pretty process QuickCheck
+    temporary text
   ];
   testToolDepends = [ hspec-discover ];
   doHaddock = false;
@@ -100,4 +39,4 @@ mkDerivation {
   description = "A formatter for Haskell source code";
   license = lib.licenses.bsd3;
   mainProgram = "fourmolu";
-}
+}
\ No newline at end of file