diff --git a/flake.lock b/flake.lock
index 7457ce0dce6e7b7ff88dcc18524ce8b7e921f3c6..98fcc7e9524a0b4c61c2877217a3926e854e0109 100644
--- a/flake.lock
+++ b/flake.lock
@@ -211,10 +211,28 @@
         "lint-utils": "lint-utils",
         "memory": "memory",
         "nixpkgs": "nixpkgs_2",
+        "servant": "servant",
         "tasty": "tasty",
         "tasty-hedgehog": "tasty-hedgehog"
       }
     },
+    "servant": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1661296516,
+        "narHash": "sha256-molPpcquyLIAK2FlPOLgsQhhAPuitGYCEYKY12ZcRBo=",
+        "owner": "TeofilC",
+        "repo": "servant",
+        "rev": "e9a799ecb5cef047909b4c22071a8fa68ba30a8a",
+        "type": "github"
+      },
+      "original": {
+        "owner": "TeofilC",
+        "ref": "ghc-9.4",
+        "repo": "servant",
+        "type": "github"
+      }
+    },
     "tasty": {
       "flake": false,
       "locked": {
diff --git a/flake.nix b/flake.nix
index d33d2e7b6d70b425e6f46fbd5de56c36bf9b7a86..3b6b4d1bd1d97fc9c7f58dad88c7139993702fd8 100644
--- a/flake.nix
+++ b/flake.nix
@@ -25,6 +25,10 @@
       flake = false;
     };
     nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+    servant = {
+      url = "github:TeofilC/servant?ref=ghc-9.4";
+      flake = false;
+    };
     tasty = {
       url = "github:UnkindPartition/tasty";
       flake = false;
diff --git a/overlay.nix b/overlay.nix
index 93e30848cc6fae97972edfb1c6b08c3e2b90ef2b..b462a0b285f87d57a287f93a4853465825863b06 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -199,6 +199,14 @@ final: prev: with pkgs.haskell.lib; {
 
   semialign = doJailbreak prev.semialign;
 
+  servant = prev.callCabal2nix "servant" (inputs.servant + /servant) { };
+
+  servant-server = prev.callCabal2nix "servant-server" (inputs.servant + /servant-server) { };
+
+  servant-client-core = prev.callCabal2nix "servant-client-core" (inputs.servant + /servant-client-core) { };
+
+  servant-client = prev.callCabal2nix "servant-client" (inputs.servant + /servant-client) { };
+
   serialise = doJailbreak (prev.callCabal2nix "serialise" (inputs.cborg + /serialise) { });
 
   singleton-bool = doJailbreak prev.singleton-bool;