diff --git a/manifest.dhall b/manifest.dhall
index d66b406705b9e691e06a6cb6344c5052c69a3c5c..78db686f89e785286331d35cba016d7aa97170b2 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -651,6 +651,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "socks" "0.6.1"
     , callHackage "some" "1.0.4"
     , callHackage "sop-core" "0.5.0.1"
+    , callHackage "sorted-list" "0.2.1.0"
     , callHackage "souffle-haskell" "3.5.0"
     , callHackage "special-values" "0.1.0.0"
     , callHackage "splitmix" "0.1.0.4"
diff --git a/overlay.nix b/overlay.nix
index c0d5a9b63ded39fc9a30f6166e8a9cc5632d0cf4..1fffd10a3bd6c9a461c9d538a8542b7c3dd5783f 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -977,6 +977,8 @@ self: with pkgs.haskell.lib; {
 
   sop-core = self.callPackage (./pkgs/sop-core.nix) { };
 
+  sorted-list = self.callPackage (./pkgs/sorted-list.nix) { };
+
   souffle-haskell = self.callPackage (./pkgs/souffle-haskell.nix) { };
 
   special-values = self.callPackage (./pkgs/special-values.nix) { };
diff --git a/pkgs/sorted-list.nix b/pkgs/sorted-list.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5108fe306c7ae4fbbd394912f2c27186aa87174f
--- /dev/null
+++ b/pkgs/sorted-list.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, criterion, deepseq, lib }:
+mkDerivation {
+  pname = "sorted-list";
+  version = "0.2.1.0";
+  sha256 = "b4e476157cf0df745eb3c39921357ffb2bf411cd169e755e99536031e07c5ef4";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  benchmarkHaskellDepends = [ base criterion ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Daniel-Diaz/sorted-list/blob/master/README.md";
+  description = "Type-enforced sorted lists and related functions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}