diff --git a/manifest.dhall b/manifest.dhall
index 6e9b88a387f5f3ce0d427e0e6f9c712b42603a72..3ce759b41ab8e479dc344f6d1a3c8dd68de4f151 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -369,6 +369,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "pretty-simple" "4.1.1.0"
     , callHackage "prettyprinter-ansi-terminal" "1.1.3"
     , callHackage "primitive" "0.7.4.0"
+    , callHackage "primitive-addr" "0.1.0.2"
     , callHackage "prometheus-proc" "0.1.4.0"
     , callHackage "proteaaudio-sdl" "0.9.2"
     , callHackage "quickcheck-dynamic" "2.0.0"
diff --git a/overlay.nix b/overlay.nix
index da7095e8be847ccc4f660394ff880754a4dc27d5..b39d4dc1d1b6898c4ed8635dfec8cfb8bf753a62 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -445,6 +445,8 @@ final: prev: with pkgs.haskell.lib; {
 
   primitive = prev.callPackage (./pkgs/primitive.nix) { };
 
+  primitive-addr = prev.callPackage (./pkgs/primitive-addr.nix) { };
+
   prometheus-proc = prev.callPackage (./pkgs/prometheus-proc.nix) { };
 
   proteaaudio-sdl = prev.callPackage (./pkgs/proteaaudio-sdl.nix) { };
diff --git a/pkgs/primitive-addr.nix b/pkgs/primitive-addr.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a7fda3e99d83f8ff73c586a155b0552c04e2d611
--- /dev/null
+++ b/pkgs/primitive-addr.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, primitive }:
+mkDerivation {
+  pname = "primitive-addr";
+  version = "0.1.0.2";
+  sha256 = "4281c3a429bc03ab2940d072a6cbd63948bdf2607561456d972ba3ca4db9211b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base primitive ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/andrewthad/primitive-addr";
+  description = "Addresses to unmanaged memory";
+  license = lib.licenses.bsd3;
+  broken = false;
+}