From f9017b727a3976e151191c8d14e91896b35d8c1b Mon Sep 17 00:00:00 2001
From: Daniel Firth <dan.firth@homotopic.tech>
Date: Sun, 4 Sep 2022 19:49:41 +0100
Subject: [PATCH] Add servant, servant-client and servant-server

---
 flake.lock  | 18 ++++++++++++++++++
 flake.nix   |  4 ++++
 overlay.nix |  8 ++++++++
 3 files changed, 30 insertions(+)

diff --git a/flake.lock b/flake.lock
index 7457ce0d..98fcc7e9 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 d33d2e7b..3b6b4d1b 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 93e30848..b462a0b2 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;
-- 
GitLab