diff --git a/manifest.dhall b/manifest.dhall
index 6e89a7517b3bd6a71fba707bb96accf846bc3ae0..37eba48a84d211467646787b271ff2793dcd52a2 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -246,6 +246,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "effectful" "2.1.0.0"
     , callHackage "emojis" "0.1.2"
     , callHackage "enclosed-exceptions" "1.0.3"
+    , callHackage "erf" "2.0.0.0"
     , callHackage "exact-pi" "0.5.0.2"
     , callHackage "extra" "1.7.12"
     , callHackage "expiring-cache-map" "0.0.6.1"
diff --git a/overlay.nix b/overlay.nix
index 50df17bb4cefd0f4620b31023b2da435652d2f5b..4c4faff4202e67a5c54e294ff01c9a0d50b4b010 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -305,6 +305,8 @@ self: with pkgs.haskell.lib; {
 
   enclosed-exceptions = self.callPackage (./pkgs/enclosed-exceptions.nix) { };
 
+  erf = self.callPackage (./pkgs/erf.nix) { };
+
   exact-pi = self.callPackage (./pkgs/exact-pi.nix) { };
 
   expiring-cache-map = self.callPackage (./pkgs/expiring-cache-map.nix) { };
diff --git a/pkgs/erf.nix b/pkgs/erf.nix
new file mode 100644
index 0000000000000000000000000000000000000000..37823d66e149acc964d11e20951790dddf472a8a
--- /dev/null
+++ b/pkgs/erf.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "erf";
+  version = "2.0.0.0";
+  sha256 = "24f0b79c7e1d25cb2cd44c2258d7a464bf6db8079775b50b60b54a254616b337";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "The error function, erf, and related functions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}