diff --git a/manifest.dhall b/manifest.dhall
index 52e3f7d09e7abb5297fec3869f8fadceafcab622..08bf8cf0bf48ed4dee2d75aa39c861fea6026a75 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -406,6 +406,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "sdl2-ttf" "2.1.3"
     , callHackage "semialign" "1.2.0.1"
     , callHackage "semigroups" "0.20"
+    , callHackage "semigroupoids" "5.3.7"
     , callHackage "semirings" "0.6"
     , callHackage "serialise" "0.2.6.0"
     , callCabal2nix
diff --git a/overlay.nix b/overlay.nix
index 4db0a46fe2959326f0035110c900d6a0ddd59ce0..2010b60eaa8c15c40a2874fe79ce58a180811339 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -517,6 +517,8 @@ final: prev: with pkgs.haskell.lib; {
 
   semialign = prev.callPackage (./pkgs/semialign.nix) { };
 
+  semigroupoids = prev.callPackage (./pkgs/semigroupoids.nix) { };
+
   semigroups = prev.callPackage (./pkgs/semigroups.nix) { };
 
   semirings = prev.callPackage (./pkgs/semirings.nix) { };
diff --git a/pkgs/semigroupoids.nix b/pkgs/semigroupoids.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c559b972604d8949e47bc823babae84a0788e75a
--- /dev/null
+++ b/pkgs/semigroupoids.nix
@@ -0,0 +1,50 @@
+{ mkDerivation
+, base
+, base-orphans
+, bifunctors
+, comonad
+, containers
+, contravariant
+, distributive
+, hashable
+, lib
+, tagged
+, template-haskell
+, transformers
+, transformers-compat
+, unordered-containers
+}:
+mkDerivation {
+  pname = "semigroupoids";
+  version = "5.3.7";
+  sha256 = "6d45cdb6c58c75ca588859b80b2c92b6f48590a03e065c24ce5d767a6a963799";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    base-orphans
+    bifunctors
+    comonad
+    containers
+    contravariant
+    distributive
+    hashable
+    tagged
+    template-haskell
+    transformers
+    transformers-compat
+    unordered-containers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/semigroupoids";
+  description = "Semigroupoids: Category sans id";
+  license = lib.licenses.bsd2;
+  broken = false;
+}