diff --git a/manifest.dhall b/manifest.dhall
index 091d1466e10d058d73bb3a779e439e4efc447c4d..9fc6a30720cba4f1e5c5a1bc395da0d253fe1d18 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -71,6 +71,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "OneTuple" "0.3.1"
     , callHackage "OpenGLRaw" "3.3.4.1"
     , callHackage "PyF" "0.11.1.0"
+    , callHackage "QuickCheck" "2.14.2"
     , callHackage "adjunctions" "4.4.2"
     , callHackage "aeson" "2.1.0.0"
     , callHackage "aeson-pretty" "0.8.9"
diff --git a/overlay.nix b/overlay.nix
index 39231e3a2d5fc59daf705da1166736665183b265..5534395c04074307941eb22cf95be7f4363af317 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -25,6 +25,8 @@ self: with pkgs.haskell.lib; {
 
   PyF = self.callPackage (./pkgs/PyF.nix) { };
 
+  QuickCheck = self.callPackage (./pkgs/QuickCheck.nix) { };
+
   adjunctions = self.callPackage (./pkgs/adjunctions.nix) { };
 
   aeson = self.callPackage (./pkgs/aeson.nix) { };
diff --git a/pkgs/QuickCheck.nix b/pkgs/QuickCheck.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8fed016915a6e0805f5b2c27d1b67d0133830eb6
--- /dev/null
+++ b/pkgs/QuickCheck.nix
@@ -0,0 +1,40 @@
+{ mkDerivation
+, base
+, containers
+, deepseq
+, lib
+, process
+, random
+, splitmix
+, template-haskell
+, transformers
+}:
+mkDerivation {
+  pname = "QuickCheck";
+  version = "2.14.2";
+  sha256 = "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    deepseq
+    random
+    splitmix
+    template-haskell
+    transformers
+  ];
+  testHaskellDepends = [ base deepseq process ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nick8325/quickcheck";
+  description = "Automatic testing of Haskell programs";
+  license = lib.licenses.bsd3;
+  broken = false;
+}