diff --git a/manifest.dhall b/manifest.dhall
index 3c72a23736ccaa8eb46d263f3645e528070a4017..bec04fb4bf93fd6d9140aff56642552032730c03 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -832,6 +832,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "x509-validation" "1.6.12"
     , callHackage "x509" "1.7.7"
     , callHackage "xml-conduit" "1.9.1.1"
+    , callHackage "xml-types" "0.3.8"
     , callHackage "xml" "1.3.14"
     , callHackage "yaml" "0.11.8.0"
     , callHackage "zip-archive" "0.4.2.2"
diff --git a/overlay.nix b/overlay.nix
index 6432e5a7d898e60d43aa037275f37746905110bb..6fd1bd580cd1948ebd55566b319fb51f68866d37 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -1293,6 +1293,8 @@ self: with pkgs.haskell.lib; {
 
   xml-conduit = self.callPackage (./pkgs/xml-conduit.nix) { };
 
+  xml-types = self.callPackage (./pkgs/xml-types.nix) { };
+
   yaml = self.callPackage (./pkgs/yaml.nix) { };
 
   zip-archive = self.callPackage (./pkgs/zip-archive.nix) { };
diff --git a/pkgs/xml-types.nix b/pkgs/xml-types.nix
new file mode 100644
index 0000000000000000000000000000000000000000..27e165ec03705901e225dedbd75e4d02a2e131d1
--- /dev/null
+++ b/pkgs/xml-types.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, deepseq, lib, text }:
+mkDerivation {
+  pname = "xml-types";
+  version = "0.3.8";
+  sha256 = "dad5e4ce602b7d1f4be37c0cfd99a261a4573746bfd80d917dc955b72da84c80";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://git.singpolyma.net/xml-types-haskell";
+  description = "Basic types for representing XML";
+  license = lib.licenses.mit;
+  broken = false;
+}