diff --git a/flake.lock b/flake.lock
index 8ba6aaceb0eb78e5aae70b54ddcb21a09be18e6e..20db56ab55a40b27d621cbd10749ab737be46e6d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -199,6 +199,23 @@
         "type": "github"
       }
     },
+    "polysemy": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1662391458,
+        "narHash": "sha256-ny1RDNdNbCehHEpBfEGBtsM+oWxmRJmNIlylx3iVwus=",
+        "owner": "locallycompact",
+        "repo": "polysemy",
+        "rev": "bd944ca000c1ca69602d4723e3859af431b9d0c4",
+        "type": "github"
+      },
+      "original": {
+        "owner": "locallycompact",
+        "ref": "ghc-942",
+        "repo": "polysemy",
+        "type": "github"
+      }
+    },
     "root": {
       "inputs": {
         "all-cabal-hashes": "all-cabal-hashes",
@@ -211,6 +228,7 @@
         "lint-utils": "lint-utils",
         "memory": "memory",
         "nixpkgs": "nixpkgs_2",
+        "polysemy": "polysemy",
         "servant": "servant",
         "tasty": "tasty",
         "tasty-hedgehog": "tasty-hedgehog"
diff --git a/flake.nix b/flake.nix
index 3b6b4d1bd1d97fc9c7f58dad88c7139993702fd8..ed9b021d04d010693b7ca2a9281c29b9e5480b39 100644
--- a/flake.nix
+++ b/flake.nix
@@ -25,6 +25,10 @@
       flake = false;
     };
     nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+    polysemy = {
+      url = "github:locallycompact/polysemy?ref=ghc-942";
+      flake = false;
+    };
     servant = {
       url = "github:TeofilC/servant?ref=ghc-9.4";
       flake = false;
diff --git a/overlay.nix b/overlay.nix
index fabcf185832199abe8497dc78162fbcf369922bf..2d0d76c15ff37a14462a9acdf7f0f825d088ff7e 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -184,6 +184,8 @@ final: prev: with pkgs.haskell.lib; {
 
   polysemy-path = doJailbreak (prev.callHackage "polysemy-path" "0.2.1.0" { });
 
+  polysemy-plugin = dontCheck (doJailbreak (prev.callCabal2nix "polysemy-plugin" (inputs.polysemy + /polysemy-plugin) { }));
+
   polysemy-several = prev.callHackage "polysemy-several" "0.1.1.0" { };
 
   polysemy-time = dontCheck (prev.callHackage "polysemy-time" "0.5.1.0" { });