diff --git a/manifest.dhall b/manifest.dhall
index 65006d8567d73c021f358f8216d705462db5cca5..786ab8c4d35b0ab96d47dbdadfff035915e1d896 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -60,6 +60,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
         (None Text)
         (Some "Cabal-tree-diff")
     , callHackage "ChasingBottoms" "1.3.1.12"
+    , callHackage "Decimal" "0.5.2"
     , callHackage "Diff" "0.4.1"
     , callHackage "Glob" "0.10.2"
     , callHackage "HTTP" "4000.4.1"
diff --git a/overlay.nix b/overlay.nix
index c9619ddcd3042bf98a1720603c642c08c3ad83f3..82bc049d996f274a277b5f534ee12f6502a7f336 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -13,6 +13,8 @@ self: with pkgs.haskell.lib; {
 
   ChasingBottoms = self.callPackage (./pkgs/ChasingBottoms.nix) { };
 
+  Decimal = self.callPackage (./pkgs/Decimal.nix) { };
+
   Diff = self.callPackage (./pkgs/Diff.nix) { };
 
   Glob = self.callPackage (./pkgs/Glob.nix) { };
diff --git a/pkgs/Decimal.nix b/pkgs/Decimal.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3c898cecfce85c83fb9b53ff40fc2bb816977430
--- /dev/null
+++ b/pkgs/Decimal.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, base
+, deepseq
+, HUnit
+, lib
+, QuickCheck
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "Decimal";
+  version = "0.5.2";
+  sha256 = "a37a0220424e4bcb8cae1d38844c7027ee314449758d0d14ff3e2e0a5c8a87a7";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  testHaskellDepends = [
+    base
+    deepseq
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/PaulJohnson/Haskell-Decimal";
+  description = "Decimal numbers with variable precision";
+  license = lib.licenses.bsd3;
+  broken = false;
+}