diff --git a/flake.lock b/flake.lock
index d2b7e8e58a2316b5366e2b7ea07d587270d2c236..d0d8755211a6e767b3b1bf1188ace8a4498a8aa8 100644
--- a/flake.lock
+++ b/flake.lock
@@ -195,6 +195,22 @@
         "type": "github"
       }
     },
+    "hlint": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1662124777,
+        "narHash": "sha256-5xLQVRmpTELwR28CbT9Ja2rsFddurs1mtfLr67NI0BA=",
+        "owner": "ndmitchell",
+        "repo": "hlint",
+        "rev": "68f9139403838b442110d5ab60da446768e8a26f",
+        "type": "github"
+      },
+      "original": {
+        "owner": "ndmitchell",
+        "repo": "hlint",
+        "type": "github"
+      }
+    },
     "lint-utils": {
       "inputs": {
         "flake-utils": "flake-utils_2",
@@ -309,6 +325,7 @@
         "flake-utils": "flake-utils",
         "haskell-flake": "haskell-flake",
         "hedgehog-golden": "hedgehog-golden",
+        "hlint": "hlint",
         "lint-utils": "lint-utils",
         "memory": "memory",
         "nixpkgs": "nixpkgs_2",
diff --git a/flake.nix b/flake.nix
index 38c42fc128137e230235bc5f1046157f0b00d182..1e7d2f38d8d943bff0127492a5ce73d0d8c33446 100644
--- a/flake.nix
+++ b/flake.nix
@@ -36,6 +36,10 @@
       url = "github:maybe-hedgehog-later/hedgehog-golden";
       flake = false;
     };
+    hlint = {
+      url = "github:ndmitchell/hlint";
+      flake = false;
+    };
     memory = {
       url = "github:parsonsmatt/hs-memory/0f760c8ba0b7d5aacf04a7294e87e5e4fff53f40";
       flake = false;
diff --git a/overlay.nix b/overlay.nix
index 036d6062c1017c0fce5f9fd626b94b6e3c8cb721..7210c968379d1e0b9e78d890026303278457ce73 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -150,6 +150,8 @@ final: prev: with pkgs.haskell.lib; {
 
   hedgehog-quickcheck = doJailbreak (prev.callHackage "hedgehog-quickcheck" "0.1.1" { });
 
+  hlint = prev.callCabal2nix "hlint" inputs.hlint { };
+
   hourglass = dontCheck (prev.callHackage "hourglass" "0.2.12" { });
 
   hslua-aeson = doJailbreak (prev.callHackage "hslua-aeson" "2.2.1" { });