diff --git a/manifest.dhall b/manifest.dhall
index 52887ebeeeff79cc30f2236484214b2008377b35..08a434805fb95763cc84163d6903e3340eeaae00 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -509,6 +509,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "microlens-platform" "0.4.3.2"
     , callHackage "microlens-th" "0.4.3.10"
     , callHackage "microlens" "0.4.13.0"
+    , callHackage "microspec" "0.2.1.3"
     , callHackage "microstache" "1.0.2.2"
     , callHackage "mmorph" "1.2.0"
     , callHackage "mockery" "0.3.5"
diff --git a/overlay.nix b/overlay.nix
index 91a5f807f7a6d51ccd34ccc353fb44622992aa49..60e67855108cd929d32ce3e40eded1c7a6491df1 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -763,6 +763,8 @@ self: with pkgs.haskell.lib; {
 
   microlens-th = self.callPackage (./pkgs/microlens-th.nix) { };
 
+  microspec = self.callPackage (./pkgs/microspec.nix) { };
+
   microstache = self.callPackage (./pkgs/microstache.nix) { };
 
   mmorph = self.callPackage (./pkgs/mmorph.nix) { };
diff --git a/pkgs/microspec.nix b/pkgs/microspec.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d5d930ee1f8a5bc532b76f79780df4d0bdffa18f
--- /dev/null
+++ b/pkgs/microspec.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib, QuickCheck, time }:
+mkDerivation {
+  pname = "microspec";
+  version = "0.2.1.3";
+  sha256 = "8bf530a4bce642431014d5395e4c8ab412bed44fe6caa6c2e1239ea9577b2518";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base QuickCheck time ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Tiny QuickCheck test library with minimal dependencies";
+  license = lib.licenses.bsd3;
+  broken = false;
+}