From 362cc6932c3b6a6b3a5110b5e0b883e32f3726f9 Mon Sep 17 00:00:00 2001
From: Matthew Pickering <matthewtpickering@gmail.com>
Date: Wed, 1 Nov 2023 12:24:46 +0000
Subject: [PATCH] hadrian: Update bootstrap plans (9.4.6, 9.4.7, 9.6.2, 9.6.3,
 9.8.1)

Updating the bootstrap plans with more recent GHC versions.
---
 hadrian/bootstrap/generate_bootstrap_plans  |   4 +
 hadrian/bootstrap/plan-9_4_1.json           | 114 +--
 hadrian/bootstrap/plan-9_4_2.json           | 114 +--
 hadrian/bootstrap/plan-9_4_3.json           | 114 +--
 hadrian/bootstrap/plan-9_4_4.json           | 166 ++--
 hadrian/bootstrap/plan-9_4_5.json           | 110 +--
 hadrian/bootstrap/plan-9_4_6.json           | 856 +++++++++++++++++++
 hadrian/bootstrap/plan-9_4_7.json           | 856 +++++++++++++++++++
 hadrian/bootstrap/plan-9_6_1.json           | 148 ++--
 hadrian/bootstrap/plan-9_6_2.json           | 144 ++--
 hadrian/bootstrap/plan-9_6_3.json           | 858 ++++++++++++++++++++
 hadrian/bootstrap/plan-9_8_1.json           | 857 +++++++++++++++++++
 hadrian/bootstrap/plan-bootstrap-9_4_1.json |  42 +-
 hadrian/bootstrap/plan-bootstrap-9_4_2.json |  42 +-
 hadrian/bootstrap/plan-bootstrap-9_4_3.json |  42 +-
 hadrian/bootstrap/plan-bootstrap-9_4_4.json |  44 +-
 hadrian/bootstrap/plan-bootstrap-9_4_5.json |  42 +-
 hadrian/bootstrap/plan-bootstrap-9_4_6.json | 298 +++++++
 hadrian/bootstrap/plan-bootstrap-9_4_7.json | 298 +++++++
 hadrian/bootstrap/plan-bootstrap-9_6_1.json |  66 +-
 hadrian/bootstrap/plan-bootstrap-9_6_2.json |  66 +-
 hadrian/bootstrap/plan-bootstrap-9_6_3.json | 296 +++++++
 hadrian/bootstrap/plan-bootstrap-9_8_1.json | 296 +++++++
 23 files changed, 5210 insertions(+), 663 deletions(-)
 create mode 100644 hadrian/bootstrap/plan-9_4_6.json
 create mode 100644 hadrian/bootstrap/plan-9_4_7.json
 create mode 100644 hadrian/bootstrap/plan-9_6_3.json
 create mode 100644 hadrian/bootstrap/plan-9_8_1.json
 create mode 100644 hadrian/bootstrap/plan-bootstrap-9_4_6.json
 create mode 100644 hadrian/bootstrap/plan-bootstrap-9_4_7.json
 create mode 100644 hadrian/bootstrap/plan-bootstrap-9_6_3.json
 create mode 100644 hadrian/bootstrap/plan-bootstrap-9_8_1.json

diff --git a/hadrian/bootstrap/generate_bootstrap_plans b/hadrian/bootstrap/generate_bootstrap_plans
index c2b5960e3284..2ab5ef189d36 100755
--- a/hadrian/bootstrap/generate_bootstrap_plans
+++ b/hadrian/bootstrap/generate_bootstrap_plans
@@ -20,5 +20,9 @@ run "9_4_2"
 run "9_4_3"
 run "9_4_4"
 run "9_4_5"
+run "9_4_6"
+run "9_4_7"
 run "9_6_1"
 run "9_6_2"
+run "9_6_3"
+run "9_8_1"
diff --git a/hadrian/bootstrap/plan-9_4_1.json b/hadrian/bootstrap/plan-9_4_1.json
index 7edc1977c94d..67ac5efe53d9 100644
--- a/hadrian/bootstrap/plan-9_4_1.json
+++ b/hadrian/bootstrap/plan-9_4_1.json
@@ -7,7 +7,7 @@
     {
       "component-name": "lib",
       "depends": [
-        "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+        "Cabal-syntax-3.10.1.0-a2f0d9673cc87b79d9cfb9f8719ba62ea6d1f8b95de9b923659200b9b074a4cb",
         "array-0.5.4.0",
         "base-4.17.0.0",
         "bytestring-0.11.3.1",
@@ -26,7 +26,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+      "id": "Cabal-3.10.1.0-af85f8fc8f6c3fb5da88550fc643f5aead967ebfe8ce3e89474854be0a88a789",
       "pkg-cabal-sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
       "pkg-name": "Cabal",
       "pkg-src": {
@@ -62,7 +62,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+      "id": "Cabal-syntax-3.10.1.0-a2f0d9673cc87b79d9cfb9f8719ba62ea6d1f8b95de9b923659200b9b074a4cb",
       "pkg-cabal-sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
       "pkg-name": "Cabal-syntax",
       "pkg-src": {
@@ -106,7 +106,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "base16-bytestring-1.0.2.0-1f4d5cfa7c972d59268ad23a58928ca71cb3b0b4d99ecfb3365582489f8d5c7a",
-      "pkg-cabal-sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "pkg-name": "base16-bytestring",
       "pkg-src": {
         "repo": {
@@ -153,8 +153,8 @@
       "flags": {
         "llvm": false
       },
-      "id": "clock-0.8.3-e675cadb63ad5e90c1cabbe27850d99000d5db86a5062c884ce4164f4a7378d1",
-      "pkg-cabal-sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "id": "clock-0.8.4-e3edc28713bc21341bbc6002beb8a2c715f84ce5c2518b048b37b22483acdc5b",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "pkg-name": "clock",
       "pkg-src": {
         "repo": {
@@ -163,8 +163,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "pkg-version": "0.8.3",
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
       "style": "global",
       "type": "configured"
     },
@@ -192,7 +192,7 @@
         "use-cbits": true
       },
       "id": "cryptohash-sha256-0.11.102.1-803ebe82e336a8fd4af224a090f5332c52868d6c62c4e5b0fb177db5fa3b6e39",
-      "pkg-cabal-sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "pkg-name": "cryptohash-sha256",
       "pkg-src": {
         "repo": {
@@ -233,7 +233,7 @@
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0",
-        "clock-0.8.3-e675cadb63ad5e90c1cabbe27850d99000d5db86a5062c884ce4164f4a7378d1",
+        "clock-0.8.4-e3edc28713bc21341bbc6002beb8a2c715f84ce5c2518b048b37b22483acdc5b",
         "directory-1.3.7.1",
         "filepath-1.4.2.2",
         "process-1.6.15.0",
@@ -242,8 +242,8 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd",
-      "pkg-cabal-sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "id": "extra-1.7.14-76901140533582520b2377513509b7d78d32fe936170645b21ef87a24e44133e",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "pkg-name": "extra",
       "pkg-src": {
         "repo": {
@@ -252,8 +252,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "pkg-version": "1.7.12",
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
       "style": "global",
       "type": "configured"
     },
@@ -271,12 +271,12 @@
       "depends": [
         "base-4.17.0.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd",
+        "extra-1.7.14-76901140533582520b2377513509b7d78d32fe936170645b21ef87a24e44133e",
         "filepath-1.4.2.2"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "filepattern-0.1.3-002c7183c9aab179816c0672de9fddf0aee1ca80b60510ac8dbe97b45f3925c2",
+      "id": "filepattern-0.1.3-2d0b8589081b9da35cad9994f5da832a29a356038ce4142f8a7f331e731604e4",
       "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
       "pkg-name": "filepattern",
       "pkg-src": {
@@ -310,18 +310,18 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/ghc-platform-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/ghc-platform-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/ghc-platform-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/ghc-platform-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-platform-0.1.0.0-inplace",
       "pkg-name": "ghc-platform",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../libraries/ghc-platform",
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -338,7 +338,7 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/ghc-toolchain-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/ghc-toolchain-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0",
@@ -349,13 +349,13 @@
         "text-2.0.1",
         "transformers-0.5.6.2"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/ghc-toolchain-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/ghc-toolchain-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-toolchain-0.1.0.0-inplace",
       "pkg-name": "ghc-toolchain",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../utils/ghc-toolchain",
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -363,30 +363,30 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian/build-info.json",
       "component-name": "exe:hadrian",
       "depends": [
-        "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+        "Cabal-3.10.1.0-af85f8fc8f6c3fb5da88550fc643f5aead967ebfe8ce3e89474854be0a88a789",
         "base-4.17.0.0",
         "base16-bytestring-1.0.2.0-1f4d5cfa7c972d59268ad23a58928ca71cb3b0b4d99ecfb3365582489f8d5c7a",
         "bytestring-0.11.3.1",
         "containers-0.6.6",
         "cryptohash-sha256-0.11.102.1-803ebe82e336a8fd4af224a090f5332c52868d6c62c4e5b0fb177db5fa3b6e39",
         "directory-1.3.7.1",
-        "extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd",
+        "extra-1.7.14-76901140533582520b2377513509b7d78d32fe936170645b21ef87a24e44133e",
         "filepath-1.4.2.2",
         "ghc-platform-0.1.0.0-inplace",
         "ghc-toolchain-0.1.0.0-inplace",
         "mtl-2.2.2",
         "parsec-3.1.15.0",
-        "shake-0.19.7-d2fc1dfc6d25adb31e2ca3c13239acbcbadee6c43f4b302967b77dda678899a4",
+        "shake-0.19.7-3828862d6a9bbc9c4cd25a89488b7aa0178995fb0462d5f287f6795d10fba6c8",
         "text-2.0.1",
         "time-1.12.2",
         "transformers-0.5.6.2",
-        "unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84"
+        "unordered-containers-0.2.19.1-a731e1e8d98096abcf7d153cfda069a5a5e450953246e3493c262302c0ea7b43"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian",
       "exe-depends": [],
       "flags": {
         "selftest": false,
@@ -395,7 +395,7 @@
       "id": "hadrian-0.1.0.0-inplace-hadrian",
       "pkg-name": "hadrian",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/.",
+        "path": "/home/matt/ghc-clean/hadrian/.",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -419,8 +419,8 @@
         "integer-gmp": true,
         "random-initial-seed": false
       },
-      "id": "hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd",
-      "pkg-cabal-sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "id": "hashable-1.4.3.0-944bf071b864eb46b0dc5818116a1f1ebd12d09df2e94469f3d933f9110c6dad",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "pkg-name": "hashable",
       "pkg-src": {
         "repo": {
@@ -429,8 +429,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "pkg-version": "1.4.2.0",
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
       "style": "global",
       "type": "configured"
     },
@@ -566,7 +566,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "primitive-0.8.0.0-a07f2cbfdf3613880c3e9948bf6f846af5c8ceff5ece4c0866ecec26372c90ef",
-      "pkg-cabal-sha256": "826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
       "pkg-name": "primitive",
       "pkg-src": {
         "repo": {
@@ -600,12 +600,12 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "mtl-2.2.2",
-        "splitmix-0.1.0.4-db906bed6d86598d897c981156f45a8b2165bae1ccdb86e3aa835176a54e17bd"
+        "splitmix-0.1.0.5-0dbf3028080d345426a99a5d67d8937318cb88629e23530a4ec9962874d939bd"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12",
-      "pkg-cabal-sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "id": "random-1.2.1.1-da1e9fcc174cdde838ed06ee0c5f9adc4c468374e22f2ac9b090d83a36270976",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "pkg-name": "random",
       "pkg-src": {
         "repo": {
@@ -634,21 +634,21 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd",
+        "extra-1.7.14-76901140533582520b2377513509b7d78d32fe936170645b21ef87a24e44133e",
         "filepath-1.4.2.2",
-        "filepattern-0.1.3-002c7183c9aab179816c0672de9fddf0aee1ca80b60510ac8dbe97b45f3925c2",
-        "hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd",
+        "filepattern-0.1.3-2d0b8589081b9da35cad9994f5da832a29a356038ce4142f8a7f331e731604e4",
+        "hashable-1.4.3.0-944bf071b864eb46b0dc5818116a1f1ebd12d09df2e94469f3d933f9110c6dad",
         "heaps-0.4-d1d68f7c84e754e5527bfaaf57fe936b7f3b2b13e01ac163bc9a145b2c17fb89",
         "js-dgtable-0.5.2-7f3616a8d595fe6976ea0cb3b170d51977ab2192394f2cced30c728a1d74f43f",
         "js-flot-0.8.3-de26baf8fa0904dfce2de4ccf078d2c29c945ae9f648843adff7b2ba89aaf21e",
         "js-jquery-3.3.1-8a9c7917a9dfc2db75c2a6e4ccbf90329439c9eafb99fef5ab5eaf3d84b7367a",
         "primitive-0.8.0.0-a07f2cbfdf3613880c3e9948bf6f846af5c8ceff5ece4c0866ecec26372c90ef",
         "process-1.6.15.0",
-        "random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12",
+        "random-1.2.1.1-da1e9fcc174cdde838ed06ee0c5f9adc4c468374e22f2ac9b090d83a36270976",
         "time-1.12.2",
         "transformers-0.5.6.2",
         "unix-2.7.3",
-        "unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84",
+        "unordered-containers-0.2.19.1-a731e1e8d98096abcf7d153cfda069a5a5e450953246e3493c262302c0ea7b43",
         "utf8-string-1.0.2-8b361b9c94c1703201cb4bc630efe378dcce466e835f8da6034b19636a724526"
       ],
       "exe-depends": [],
@@ -657,7 +657,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-d2fc1dfc6d25adb31e2ca3c13239acbcbadee6c43f4b302967b77dda678899a4",
+      "id": "shake-0.19.7-3828862d6a9bbc9c4cd25a89488b7aa0178995fb0462d5f287f6795d10fba6c8",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -673,7 +673,7 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/.cabal/store/ghc-9.4.1/shake-0.19.7-e-shake-62b640d9e5423cbe62368e849a8bc6542054769417e601f88f487fca539d0d6a/bin/shake",
+      "bin-file": "/home/matt/.cabal/store/ghc-9.4.1/shake-0.19.7-e-shake-4e6e3f2d9887fa26808df38fbddbc9250a8c6b5819331616488afbae8492a6fb/bin/shake",
       "component-name": "exe:shake",
       "depends": [
         "base-4.17.0.0",
@@ -681,21 +681,21 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd",
+        "extra-1.7.14-76901140533582520b2377513509b7d78d32fe936170645b21ef87a24e44133e",
         "filepath-1.4.2.2",
-        "filepattern-0.1.3-002c7183c9aab179816c0672de9fddf0aee1ca80b60510ac8dbe97b45f3925c2",
-        "hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd",
+        "filepattern-0.1.3-2d0b8589081b9da35cad9994f5da832a29a356038ce4142f8a7f331e731604e4",
+        "hashable-1.4.3.0-944bf071b864eb46b0dc5818116a1f1ebd12d09df2e94469f3d933f9110c6dad",
         "heaps-0.4-d1d68f7c84e754e5527bfaaf57fe936b7f3b2b13e01ac163bc9a145b2c17fb89",
         "js-dgtable-0.5.2-7f3616a8d595fe6976ea0cb3b170d51977ab2192394f2cced30c728a1d74f43f",
         "js-flot-0.8.3-de26baf8fa0904dfce2de4ccf078d2c29c945ae9f648843adff7b2ba89aaf21e",
         "js-jquery-3.3.1-8a9c7917a9dfc2db75c2a6e4ccbf90329439c9eafb99fef5ab5eaf3d84b7367a",
         "primitive-0.8.0.0-a07f2cbfdf3613880c3e9948bf6f846af5c8ceff5ece4c0866ecec26372c90ef",
         "process-1.6.15.0",
-        "random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12",
+        "random-1.2.1.1-da1e9fcc174cdde838ed06ee0c5f9adc4c468374e22f2ac9b090d83a36270976",
         "time-1.12.2",
         "transformers-0.5.6.2",
         "unix-2.7.3",
-        "unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84",
+        "unordered-containers-0.2.19.1-a731e1e8d98096abcf7d153cfda069a5a5e450953246e3493c262302c0ea7b43",
         "utf8-string-1.0.2-8b361b9c94c1703201cb4bc630efe378dcce466e835f8da6034b19636a724526"
       ],
       "exe-depends": [],
@@ -704,7 +704,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-e-shake-62b640d9e5423cbe62368e849a8bc6542054769417e601f88f487fca539d0d6a",
+      "id": "shake-0.19.7-e-shake-4e6e3f2d9887fa26808df38fbddbc9250a8c6b5819331616488afbae8492a6fb",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -729,8 +729,8 @@
       "flags": {
         "optimised-mixer": false
       },
-      "id": "splitmix-0.1.0.4-db906bed6d86598d897c981156f45a8b2165bae1ccdb86e3aa835176a54e17bd",
-      "pkg-cabal-sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "id": "splitmix-0.1.0.5-0dbf3028080d345426a99a5d67d8937318cb88629e23530a4ec9962874d939bd",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "pkg-name": "splitmix",
       "pkg-src": {
         "repo": {
@@ -739,8 +739,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "pkg-version": "0.1.0.4",
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
       "style": "global",
       "type": "configured"
     },
@@ -806,14 +806,14 @@
       "depends": [
         "base-4.17.0.0",
         "deepseq-1.4.8.0",
-        "hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd",
+        "hashable-1.4.3.0-944bf071b864eb46b0dc5818116a1f1ebd12d09df2e94469f3d933f9110c6dad",
         "template-haskell-2.19.0.0"
       ],
       "exe-depends": [],
       "flags": {
         "debug": false
       },
-      "id": "unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84",
+      "id": "unordered-containers-0.2.19.1-a731e1e8d98096abcf7d153cfda069a5a5e450953246e3493c262302c0ea7b43",
       "pkg-cabal-sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
       "pkg-name": "unordered-containers",
       "pkg-src": {
diff --git a/hadrian/bootstrap/plan-9_4_2.json b/hadrian/bootstrap/plan-9_4_2.json
index 643f93e08dfe..93c8eb7cfe5c 100644
--- a/hadrian/bootstrap/plan-9_4_2.json
+++ b/hadrian/bootstrap/plan-9_4_2.json
@@ -7,7 +7,7 @@
     {
       "component-name": "lib",
       "depends": [
-        "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+        "Cabal-syntax-3.10.1.0-7a624b5098593c9a4cdb6be42c4aa99270da31d60d41f45d98d9a41ac596de9c",
         "array-0.5.4.0",
         "base-4.17.0.0",
         "bytestring-0.11.3.1",
@@ -26,7 +26,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+      "id": "Cabal-3.10.1.0-d7f4b447dfe982047cc5f52c4b95a0c4a42ce39c4f63fe58186f1d8da47e624b",
       "pkg-cabal-sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
       "pkg-name": "Cabal",
       "pkg-src": {
@@ -62,7 +62,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+      "id": "Cabal-syntax-3.10.1.0-7a624b5098593c9a4cdb6be42c4aa99270da31d60d41f45d98d9a41ac596de9c",
       "pkg-cabal-sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
       "pkg-name": "Cabal-syntax",
       "pkg-src": {
@@ -106,7 +106,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "base16-bytestring-1.0.2.0-8845b9b845268782664a9731259247bb8eb1e18dc03a39dadfe77b42101a894d",
-      "pkg-cabal-sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "pkg-name": "base16-bytestring",
       "pkg-src": {
         "repo": {
@@ -153,8 +153,8 @@
       "flags": {
         "llvm": false
       },
-      "id": "clock-0.8.3-0129568eebbfa961d0c38a3dcb8b8cd195f8a921fe59eb9ceddfc368d87f7b74",
-      "pkg-cabal-sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "id": "clock-0.8.4-94f03e59f0dbc5da83a95f8540473f217ae21b8021f2b113284b764c032e0e18",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "pkg-name": "clock",
       "pkg-src": {
         "repo": {
@@ -163,8 +163,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "pkg-version": "0.8.3",
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
       "style": "global",
       "type": "configured"
     },
@@ -192,7 +192,7 @@
         "use-cbits": true
       },
       "id": "cryptohash-sha256-0.11.102.1-e0ecce2a2a105f81f515ad74e9fd132a406a856efa250f47178547d401b9ef87",
-      "pkg-cabal-sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "pkg-name": "cryptohash-sha256",
       "pkg-src": {
         "repo": {
@@ -233,7 +233,7 @@
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0",
-        "clock-0.8.3-0129568eebbfa961d0c38a3dcb8b8cd195f8a921fe59eb9ceddfc368d87f7b74",
+        "clock-0.8.4-94f03e59f0dbc5da83a95f8540473f217ae21b8021f2b113284b764c032e0e18",
         "directory-1.3.7.1",
         "filepath-1.4.2.2",
         "process-1.6.15.0",
@@ -242,8 +242,8 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d",
-      "pkg-cabal-sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "id": "extra-1.7.14-a97afbf47bcedc09cfe883cddb7791edf359849ff8672e2940dd809bd57e528d",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "pkg-name": "extra",
       "pkg-src": {
         "repo": {
@@ -252,8 +252,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "pkg-version": "1.7.12",
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
       "style": "global",
       "type": "configured"
     },
@@ -271,12 +271,12 @@
       "depends": [
         "base-4.17.0.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d",
+        "extra-1.7.14-a97afbf47bcedc09cfe883cddb7791edf359849ff8672e2940dd809bd57e528d",
         "filepath-1.4.2.2"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "filepattern-0.1.3-08a9ec632f1ac6000bb77c2013c1110b63c20c3139ed08f95a22f36da4f3ae2d",
+      "id": "filepattern-0.1.3-f303652a8da5b24bb3de5bdba71f956b7cc18a559df508784671a4306cfb2a27",
       "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
       "pkg-name": "filepattern",
       "pkg-src": {
@@ -310,18 +310,18 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/ghc-platform-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/ghc-platform-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/ghc-platform-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/ghc-platform-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-platform-0.1.0.0-inplace",
       "pkg-name": "ghc-platform",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../libraries/ghc-platform",
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -338,7 +338,7 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/ghc-toolchain-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/ghc-toolchain-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0",
@@ -349,13 +349,13 @@
         "text-2.0.1",
         "transformers-0.5.6.2"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/ghc-toolchain-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/ghc-toolchain-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-toolchain-0.1.0.0-inplace",
       "pkg-name": "ghc-toolchain",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../utils/ghc-toolchain",
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -363,30 +363,30 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian/build-info.json",
       "component-name": "exe:hadrian",
       "depends": [
-        "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+        "Cabal-3.10.1.0-d7f4b447dfe982047cc5f52c4b95a0c4a42ce39c4f63fe58186f1d8da47e624b",
         "base-4.17.0.0",
         "base16-bytestring-1.0.2.0-8845b9b845268782664a9731259247bb8eb1e18dc03a39dadfe77b42101a894d",
         "bytestring-0.11.3.1",
         "containers-0.6.6",
         "cryptohash-sha256-0.11.102.1-e0ecce2a2a105f81f515ad74e9fd132a406a856efa250f47178547d401b9ef87",
         "directory-1.3.7.1",
-        "extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d",
+        "extra-1.7.14-a97afbf47bcedc09cfe883cddb7791edf359849ff8672e2940dd809bd57e528d",
         "filepath-1.4.2.2",
         "ghc-platform-0.1.0.0-inplace",
         "ghc-toolchain-0.1.0.0-inplace",
         "mtl-2.2.2",
         "parsec-3.1.15.0",
-        "shake-0.19.7-e941cd8c6a2384d93b27d15bed9271abdfc1bd3584c51ce36cdfa5ebef75e2d1",
+        "shake-0.19.7-e45d30b7d0b9b4c6ded0205f86e195328e745ccd3d15ba85ed84ab0992b7e841",
         "text-2.0.1",
         "time-1.12.2",
         "transformers-0.5.6.2",
-        "unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357"
+        "unordered-containers-0.2.19.1-605cc4d0d7cc573beaaa8c26e0b0a759878f0f220758e031160ef7ae5208a68d"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian",
       "exe-depends": [],
       "flags": {
         "selftest": false,
@@ -395,7 +395,7 @@
       "id": "hadrian-0.1.0.0-inplace-hadrian",
       "pkg-name": "hadrian",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/.",
+        "path": "/home/matt/ghc-clean/hadrian/.",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -419,8 +419,8 @@
         "integer-gmp": true,
         "random-initial-seed": false
       },
-      "id": "hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962",
-      "pkg-cabal-sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "id": "hashable-1.4.3.0-1a35fbaa3faabcc0c381f5aa7330fe436d8af61c2711fdd9764ee9aba0fcdcf1",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "pkg-name": "hashable",
       "pkg-src": {
         "repo": {
@@ -429,8 +429,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "pkg-version": "1.4.2.0",
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
       "style": "global",
       "type": "configured"
     },
@@ -566,7 +566,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "primitive-0.8.0.0-c149e96dd6c8e609c75b5c29aa28e8cd219c971a12e6e067d5b176788da134c7",
-      "pkg-cabal-sha256": "826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
       "pkg-name": "primitive",
       "pkg-src": {
         "repo": {
@@ -600,12 +600,12 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "mtl-2.2.2",
-        "splitmix-0.1.0.4-038952c2592bf9a18f363fc90951b486b79df30ad213b8f2b39e885e464e4944"
+        "splitmix-0.1.0.5-8adf66a0e95691e8d1455f7a8487fb2464dc2da545a35bd88e75e071cac5816c"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948",
-      "pkg-cabal-sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "id": "random-1.2.1.1-8a613adc0408b9188e9f5f6b9a9334cb9cb3bb022c712faee9552e6b7739f9c2",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "pkg-name": "random",
       "pkg-src": {
         "repo": {
@@ -627,7 +627,7 @@
       "type": "pre-existing"
     },
     {
-      "bin-file": "/home/matt/.cabal/store/ghc-9.4.2/shake-0.19.7-e-shake-93a6abbc9595b6d85ad9802cf629596ab2d5d3c72261d6dce269f07068d1b8aa/bin/shake",
+      "bin-file": "/home/matt/.cabal/store/ghc-9.4.2/shake-0.19.7-e-shake-fb4ada82cc527d6f4c8d2173d22d4774d09258ce73d49f7e4246b27acdb16027/bin/shake",
       "component-name": "exe:shake",
       "depends": [
         "base-4.17.0.0",
@@ -635,21 +635,21 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d",
+        "extra-1.7.14-a97afbf47bcedc09cfe883cddb7791edf359849ff8672e2940dd809bd57e528d",
         "filepath-1.4.2.2",
-        "filepattern-0.1.3-08a9ec632f1ac6000bb77c2013c1110b63c20c3139ed08f95a22f36da4f3ae2d",
-        "hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962",
+        "filepattern-0.1.3-f303652a8da5b24bb3de5bdba71f956b7cc18a559df508784671a4306cfb2a27",
+        "hashable-1.4.3.0-1a35fbaa3faabcc0c381f5aa7330fe436d8af61c2711fdd9764ee9aba0fcdcf1",
         "heaps-0.4-3f9ca831e2a710f80e5a253748a1aa605a7219f998fa88ce43b69c22d0075c73",
         "js-dgtable-0.5.2-f7a634b948774c98a2be281a9a2244964a18c3b15b559a34248b4d851e8efb1b",
         "js-flot-0.8.3-b34534f666396e8ad058c9e0cb79b8d2cfe4294fc870aa2daf758c66a4533545",
         "js-jquery-3.3.1-4a51d1b0e66cd03e445290dde0449cd0ba22dd046bccc10876992c1527bc8a6f",
         "primitive-0.8.0.0-c149e96dd6c8e609c75b5c29aa28e8cd219c971a12e6e067d5b176788da134c7",
         "process-1.6.15.0",
-        "random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948",
+        "random-1.2.1.1-8a613adc0408b9188e9f5f6b9a9334cb9cb3bb022c712faee9552e6b7739f9c2",
         "time-1.12.2",
         "transformers-0.5.6.2",
         "unix-2.7.3",
-        "unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357",
+        "unordered-containers-0.2.19.1-605cc4d0d7cc573beaaa8c26e0b0a759878f0f220758e031160ef7ae5208a68d",
         "utf8-string-1.0.2-74175dc1969f6d60b6b78e0f9ae512859446f68011f9742d4519de87229b0554"
       ],
       "exe-depends": [],
@@ -658,7 +658,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-e-shake-93a6abbc9595b6d85ad9802cf629596ab2d5d3c72261d6dce269f07068d1b8aa",
+      "id": "shake-0.19.7-e-shake-fb4ada82cc527d6f4c8d2173d22d4774d09258ce73d49f7e4246b27acdb16027",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -681,21 +681,21 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d",
+        "extra-1.7.14-a97afbf47bcedc09cfe883cddb7791edf359849ff8672e2940dd809bd57e528d",
         "filepath-1.4.2.2",
-        "filepattern-0.1.3-08a9ec632f1ac6000bb77c2013c1110b63c20c3139ed08f95a22f36da4f3ae2d",
-        "hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962",
+        "filepattern-0.1.3-f303652a8da5b24bb3de5bdba71f956b7cc18a559df508784671a4306cfb2a27",
+        "hashable-1.4.3.0-1a35fbaa3faabcc0c381f5aa7330fe436d8af61c2711fdd9764ee9aba0fcdcf1",
         "heaps-0.4-3f9ca831e2a710f80e5a253748a1aa605a7219f998fa88ce43b69c22d0075c73",
         "js-dgtable-0.5.2-f7a634b948774c98a2be281a9a2244964a18c3b15b559a34248b4d851e8efb1b",
         "js-flot-0.8.3-b34534f666396e8ad058c9e0cb79b8d2cfe4294fc870aa2daf758c66a4533545",
         "js-jquery-3.3.1-4a51d1b0e66cd03e445290dde0449cd0ba22dd046bccc10876992c1527bc8a6f",
         "primitive-0.8.0.0-c149e96dd6c8e609c75b5c29aa28e8cd219c971a12e6e067d5b176788da134c7",
         "process-1.6.15.0",
-        "random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948",
+        "random-1.2.1.1-8a613adc0408b9188e9f5f6b9a9334cb9cb3bb022c712faee9552e6b7739f9c2",
         "time-1.12.2",
         "transformers-0.5.6.2",
         "unix-2.7.3",
-        "unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357",
+        "unordered-containers-0.2.19.1-605cc4d0d7cc573beaaa8c26e0b0a759878f0f220758e031160ef7ae5208a68d",
         "utf8-string-1.0.2-74175dc1969f6d60b6b78e0f9ae512859446f68011f9742d4519de87229b0554"
       ],
       "exe-depends": [],
@@ -704,7 +704,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-e941cd8c6a2384d93b27d15bed9271abdfc1bd3584c51ce36cdfa5ebef75e2d1",
+      "id": "shake-0.19.7-e45d30b7d0b9b4c6ded0205f86e195328e745ccd3d15ba85ed84ab0992b7e841",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -729,8 +729,8 @@
       "flags": {
         "optimised-mixer": false
       },
-      "id": "splitmix-0.1.0.4-038952c2592bf9a18f363fc90951b486b79df30ad213b8f2b39e885e464e4944",
-      "pkg-cabal-sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "id": "splitmix-0.1.0.5-8adf66a0e95691e8d1455f7a8487fb2464dc2da545a35bd88e75e071cac5816c",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "pkg-name": "splitmix",
       "pkg-src": {
         "repo": {
@@ -739,8 +739,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "pkg-version": "0.1.0.4",
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
       "style": "global",
       "type": "configured"
     },
@@ -806,14 +806,14 @@
       "depends": [
         "base-4.17.0.0",
         "deepseq-1.4.8.0",
-        "hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962",
+        "hashable-1.4.3.0-1a35fbaa3faabcc0c381f5aa7330fe436d8af61c2711fdd9764ee9aba0fcdcf1",
         "template-haskell-2.19.0.0"
       ],
       "exe-depends": [],
       "flags": {
         "debug": false
       },
-      "id": "unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357",
+      "id": "unordered-containers-0.2.19.1-605cc4d0d7cc573beaaa8c26e0b0a759878f0f220758e031160ef7ae5208a68d",
       "pkg-cabal-sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
       "pkg-name": "unordered-containers",
       "pkg-src": {
diff --git a/hadrian/bootstrap/plan-9_4_3.json b/hadrian/bootstrap/plan-9_4_3.json
index 45cf162111ba..7b0b64ddfc47 100644
--- a/hadrian/bootstrap/plan-9_4_3.json
+++ b/hadrian/bootstrap/plan-9_4_3.json
@@ -7,7 +7,7 @@
     {
       "component-name": "lib",
       "depends": [
-        "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+        "Cabal-syntax-3.10.1.0-6459239d0308ec697d1f60e14e099d6b19174ee1583325bce28bf2aa5ec43bef",
         "array-0.5.4.0",
         "base-4.17.0.0",
         "bytestring-0.11.3.1",
@@ -26,7 +26,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+      "id": "Cabal-3.10.1.0-2189d100c804419a3b5b56f30f1942bb77687b52e628e9037fcc6164c7253907",
       "pkg-cabal-sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
       "pkg-name": "Cabal",
       "pkg-src": {
@@ -62,7 +62,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+      "id": "Cabal-syntax-3.10.1.0-6459239d0308ec697d1f60e14e099d6b19174ee1583325bce28bf2aa5ec43bef",
       "pkg-cabal-sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
       "pkg-name": "Cabal-syntax",
       "pkg-src": {
@@ -106,7 +106,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "base16-bytestring-1.0.2.0-022be67a0e4d2e8bed3248f110a529e722a677692e78084e184611e934a069d4",
-      "pkg-cabal-sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "pkg-name": "base16-bytestring",
       "pkg-src": {
         "repo": {
@@ -153,8 +153,8 @@
       "flags": {
         "llvm": false
       },
-      "id": "clock-0.8.3-27cb5e33ec1e869f298606d596f82ca84fe82486f8033c732d01ac07350ac528",
-      "pkg-cabal-sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "id": "clock-0.8.4-ec4c5469a8a32ceb38546f0394f2ed7777d62d62b357da0612bf12c2d17b8956",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "pkg-name": "clock",
       "pkg-src": {
         "repo": {
@@ -163,8 +163,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "pkg-version": "0.8.3",
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
       "style": "global",
       "type": "configured"
     },
@@ -192,7 +192,7 @@
         "use-cbits": true
       },
       "id": "cryptohash-sha256-0.11.102.1-e68c05e71af300ee0140f7ecda5ed0439a27ba54936b05cd7b35b19a275e2b94",
-      "pkg-cabal-sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "pkg-name": "cryptohash-sha256",
       "pkg-src": {
         "repo": {
@@ -233,7 +233,7 @@
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0",
-        "clock-0.8.3-27cb5e33ec1e869f298606d596f82ca84fe82486f8033c732d01ac07350ac528",
+        "clock-0.8.4-ec4c5469a8a32ceb38546f0394f2ed7777d62d62b357da0612bf12c2d17b8956",
         "directory-1.3.7.1",
         "filepath-1.4.2.2",
         "process-1.6.16.0",
@@ -242,8 +242,8 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede",
-      "pkg-cabal-sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "id": "extra-1.7.14-244e22e0fa0caa7122fe0a9da39473db6acf685f18d2d5f76ec65b2fe8cf39b4",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "pkg-name": "extra",
       "pkg-src": {
         "repo": {
@@ -252,8 +252,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "pkg-version": "1.7.12",
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
       "style": "global",
       "type": "configured"
     },
@@ -271,12 +271,12 @@
       "depends": [
         "base-4.17.0.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede",
+        "extra-1.7.14-244e22e0fa0caa7122fe0a9da39473db6acf685f18d2d5f76ec65b2fe8cf39b4",
         "filepath-1.4.2.2"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "filepattern-0.1.3-23d7f8ede2c552ae35fa6871e68c09d5495fe0ac277049b6b325cc6f11259b80",
+      "id": "filepattern-0.1.3-58cc3a8400cbb8744f17c76f2f008b3b0bcfeab10b70eac1016a6dac8d7c6e99",
       "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
       "pkg-name": "filepattern",
       "pkg-src": {
@@ -310,18 +310,18 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-platform-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-platform-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-platform-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-platform-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-platform-0.1.0.0-inplace",
       "pkg-name": "ghc-platform",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../libraries/ghc-platform",
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -338,7 +338,7 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-toolchain-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-toolchain-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0",
@@ -349,13 +349,13 @@
         "text-2.0.1",
         "transformers-0.5.6.2"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-toolchain-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-toolchain-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-toolchain-0.1.0.0-inplace",
       "pkg-name": "ghc-toolchain",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../utils/ghc-toolchain",
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -363,30 +363,30 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian/build-info.json",
       "component-name": "exe:hadrian",
       "depends": [
-        "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+        "Cabal-3.10.1.0-2189d100c804419a3b5b56f30f1942bb77687b52e628e9037fcc6164c7253907",
         "base-4.17.0.0",
         "base16-bytestring-1.0.2.0-022be67a0e4d2e8bed3248f110a529e722a677692e78084e184611e934a069d4",
         "bytestring-0.11.3.1",
         "containers-0.6.6",
         "cryptohash-sha256-0.11.102.1-e68c05e71af300ee0140f7ecda5ed0439a27ba54936b05cd7b35b19a275e2b94",
         "directory-1.3.7.1",
-        "extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede",
+        "extra-1.7.14-244e22e0fa0caa7122fe0a9da39473db6acf685f18d2d5f76ec65b2fe8cf39b4",
         "filepath-1.4.2.2",
         "ghc-platform-0.1.0.0-inplace",
         "ghc-toolchain-0.1.0.0-inplace",
         "mtl-2.2.2",
         "parsec-3.1.15.0",
-        "shake-0.19.7-210fc1cbce69aed26102707e3a1f9a8d35afdb700b5ceb2aa5cba89db1cc9fcb",
+        "shake-0.19.7-858c4c12624ea5ad74e50756ac3148c5907db3f7bb149cb9faa047b109b64a30",
         "text-2.0.1",
         "time-1.12.2",
         "transformers-0.5.6.2",
-        "unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457"
+        "unordered-containers-0.2.19.1-5f551314a01c5736adcef5fa205c568f58d2674318227f36fb35532e604d15f2"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian",
       "exe-depends": [],
       "flags": {
         "selftest": false,
@@ -395,7 +395,7 @@
       "id": "hadrian-0.1.0.0-inplace-hadrian",
       "pkg-name": "hadrian",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/.",
+        "path": "/home/matt/ghc-clean/hadrian/.",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -419,8 +419,8 @@
         "integer-gmp": true,
         "random-initial-seed": false
       },
-      "id": "hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73",
-      "pkg-cabal-sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "id": "hashable-1.4.3.0-7c439c9841bf1f1ee61b2b5be3725b5f2766dffc3aa23e22eae8d6e49336aac1",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "pkg-name": "hashable",
       "pkg-src": {
         "repo": {
@@ -429,8 +429,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "pkg-version": "1.4.2.0",
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
       "style": "global",
       "type": "configured"
     },
@@ -566,7 +566,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531",
-      "pkg-cabal-sha256": "826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
       "pkg-name": "primitive",
       "pkg-src": {
         "repo": {
@@ -600,12 +600,12 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "mtl-2.2.2",
-        "splitmix-0.1.0.4-710f6aef842a6d0debca56a044407f2910ce264a4b0602d9d4de9ddecf46e668"
+        "splitmix-0.1.0.5-09e5f19da796178d1e2414f75b54ad5a551c1ea93df669c559a03dd222d1626d"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af",
-      "pkg-cabal-sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "id": "random-1.2.1.1-6a2504e17aaf58936ac6a1e2fce3f071bbc1af0c5a14daa7efc7fad63518a273",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "pkg-name": "random",
       "pkg-src": {
         "repo": {
@@ -634,21 +634,21 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede",
+        "extra-1.7.14-244e22e0fa0caa7122fe0a9da39473db6acf685f18d2d5f76ec65b2fe8cf39b4",
         "filepath-1.4.2.2",
-        "filepattern-0.1.3-23d7f8ede2c552ae35fa6871e68c09d5495fe0ac277049b6b325cc6f11259b80",
-        "hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73",
+        "filepattern-0.1.3-58cc3a8400cbb8744f17c76f2f008b3b0bcfeab10b70eac1016a6dac8d7c6e99",
+        "hashable-1.4.3.0-7c439c9841bf1f1ee61b2b5be3725b5f2766dffc3aa23e22eae8d6e49336aac1",
         "heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6",
         "js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d",
         "js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa",
         "js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f",
         "primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531",
         "process-1.6.16.0",
-        "random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af",
+        "random-1.2.1.1-6a2504e17aaf58936ac6a1e2fce3f071bbc1af0c5a14daa7efc7fad63518a273",
         "time-1.12.2",
         "transformers-0.5.6.2",
         "unix-2.7.3",
-        "unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457",
+        "unordered-containers-0.2.19.1-5f551314a01c5736adcef5fa205c568f58d2674318227f36fb35532e604d15f2",
         "utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939"
       ],
       "exe-depends": [],
@@ -657,7 +657,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-210fc1cbce69aed26102707e3a1f9a8d35afdb700b5ceb2aa5cba89db1cc9fcb",
+      "id": "shake-0.19.7-858c4c12624ea5ad74e50756ac3148c5907db3f7bb149cb9faa047b109b64a30",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -673,7 +673,7 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/.cabal/store/ghc-9.4.3/shake-0.19.7-e-shake-67e15cde7c1cb49bcea296a54aa439315e66dfa316723d77c5efedbe480561be/bin/shake",
+      "bin-file": "/home/matt/.cabal/store/ghc-9.4.3/shake-0.19.7-e-shake-7ce254b09e77522709fddc506a870167a48080b34d01153dc3648b306569cb90/bin/shake",
       "component-name": "exe:shake",
       "depends": [
         "base-4.17.0.0",
@@ -681,21 +681,21 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede",
+        "extra-1.7.14-244e22e0fa0caa7122fe0a9da39473db6acf685f18d2d5f76ec65b2fe8cf39b4",
         "filepath-1.4.2.2",
-        "filepattern-0.1.3-23d7f8ede2c552ae35fa6871e68c09d5495fe0ac277049b6b325cc6f11259b80",
-        "hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73",
+        "filepattern-0.1.3-58cc3a8400cbb8744f17c76f2f008b3b0bcfeab10b70eac1016a6dac8d7c6e99",
+        "hashable-1.4.3.0-7c439c9841bf1f1ee61b2b5be3725b5f2766dffc3aa23e22eae8d6e49336aac1",
         "heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6",
         "js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d",
         "js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa",
         "js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f",
         "primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531",
         "process-1.6.16.0",
-        "random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af",
+        "random-1.2.1.1-6a2504e17aaf58936ac6a1e2fce3f071bbc1af0c5a14daa7efc7fad63518a273",
         "time-1.12.2",
         "transformers-0.5.6.2",
         "unix-2.7.3",
-        "unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457",
+        "unordered-containers-0.2.19.1-5f551314a01c5736adcef5fa205c568f58d2674318227f36fb35532e604d15f2",
         "utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939"
       ],
       "exe-depends": [],
@@ -704,7 +704,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-e-shake-67e15cde7c1cb49bcea296a54aa439315e66dfa316723d77c5efedbe480561be",
+      "id": "shake-0.19.7-e-shake-7ce254b09e77522709fddc506a870167a48080b34d01153dc3648b306569cb90",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -729,8 +729,8 @@
       "flags": {
         "optimised-mixer": false
       },
-      "id": "splitmix-0.1.0.4-710f6aef842a6d0debca56a044407f2910ce264a4b0602d9d4de9ddecf46e668",
-      "pkg-cabal-sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "id": "splitmix-0.1.0.5-09e5f19da796178d1e2414f75b54ad5a551c1ea93df669c559a03dd222d1626d",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "pkg-name": "splitmix",
       "pkg-src": {
         "repo": {
@@ -739,8 +739,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "pkg-version": "0.1.0.4",
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
       "style": "global",
       "type": "configured"
     },
@@ -806,14 +806,14 @@
       "depends": [
         "base-4.17.0.0",
         "deepseq-1.4.8.0",
-        "hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73",
+        "hashable-1.4.3.0-7c439c9841bf1f1ee61b2b5be3725b5f2766dffc3aa23e22eae8d6e49336aac1",
         "template-haskell-2.19.0.0"
       ],
       "exe-depends": [],
       "flags": {
         "debug": false
       },
-      "id": "unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457",
+      "id": "unordered-containers-0.2.19.1-5f551314a01c5736adcef5fa205c568f58d2674318227f36fb35532e604d15f2",
       "pkg-cabal-sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
       "pkg-name": "unordered-containers",
       "pkg-src": {
diff --git a/hadrian/bootstrap/plan-9_4_4.json b/hadrian/bootstrap/plan-9_4_4.json
index 32b8971e19db..7b0b64ddfc47 100644
--- a/hadrian/bootstrap/plan-9_4_4.json
+++ b/hadrian/bootstrap/plan-9_4_4.json
@@ -2,12 +2,12 @@
   "arch": "x86_64",
   "cabal-lib-version": "3.10.1.0",
   "cabal-version": "3.10.1.0",
-  "compiler-id": "ghc-9.4.4",
+  "compiler-id": "ghc-9.4.3",
   "install-plan": [
     {
       "component-name": "lib",
       "depends": [
-        "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+        "Cabal-syntax-3.10.1.0-6459239d0308ec697d1f60e14e099d6b19174ee1583325bce28bf2aa5ec43bef",
         "array-0.5.4.0",
         "base-4.17.0.0",
         "bytestring-0.11.3.1",
@@ -26,7 +26,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+      "id": "Cabal-3.10.1.0-2189d100c804419a3b5b56f30f1942bb77687b52e628e9037fcc6164c7253907",
       "pkg-cabal-sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
       "pkg-name": "Cabal",
       "pkg-src": {
@@ -62,7 +62,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+      "id": "Cabal-syntax-3.10.1.0-6459239d0308ec697d1f60e14e099d6b19174ee1583325bce28bf2aa5ec43bef",
       "pkg-cabal-sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
       "pkg-name": "Cabal-syntax",
       "pkg-src": {
@@ -105,8 +105,8 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "base16-bytestring-1.0.2.0-2c05b63cefa5d7007acd478c1dbfe18a190bfba61d8945d4d5b87798ed9ca8c2",
-      "pkg-cabal-sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "id": "base16-bytestring-1.0.2.0-022be67a0e4d2e8bed3248f110a529e722a677692e78084e184611e934a069d4",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "pkg-name": "base16-bytestring",
       "pkg-src": {
         "repo": {
@@ -153,8 +153,8 @@
       "flags": {
         "llvm": false
       },
-      "id": "clock-0.8.3-e1cb5c09c08b802543e1c283427ef69d76d97cf2dec49fcef18840c2a8f690bf",
-      "pkg-cabal-sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "id": "clock-0.8.4-ec4c5469a8a32ceb38546f0394f2ed7777d62d62b357da0612bf12c2d17b8956",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "pkg-name": "clock",
       "pkg-src": {
         "repo": {
@@ -163,8 +163,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "pkg-version": "0.8.3",
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
       "style": "global",
       "type": "configured"
     },
@@ -191,8 +191,8 @@
         "exe": false,
         "use-cbits": true
       },
-      "id": "cryptohash-sha256-0.11.102.1-ae70c6c39b427440638d8d0177551367c44baa0fcf044bb565f9e69c4daafe02",
-      "pkg-cabal-sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "id": "cryptohash-sha256-0.11.102.1-e68c05e71af300ee0140f7ecda5ed0439a27ba54936b05cd7b35b19a275e2b94",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "pkg-name": "cryptohash-sha256",
       "pkg-src": {
         "repo": {
@@ -233,7 +233,7 @@
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0",
-        "clock-0.8.3-e1cb5c09c08b802543e1c283427ef69d76d97cf2dec49fcef18840c2a8f690bf",
+        "clock-0.8.4-ec4c5469a8a32ceb38546f0394f2ed7777d62d62b357da0612bf12c2d17b8956",
         "directory-1.3.7.1",
         "filepath-1.4.2.2",
         "process-1.6.16.0",
@@ -242,8 +242,8 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9",
-      "pkg-cabal-sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "id": "extra-1.7.14-244e22e0fa0caa7122fe0a9da39473db6acf685f18d2d5f76ec65b2fe8cf39b4",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "pkg-name": "extra",
       "pkg-src": {
         "repo": {
@@ -252,8 +252,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "pkg-version": "1.7.12",
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
       "style": "global",
       "type": "configured"
     },
@@ -271,12 +271,12 @@
       "depends": [
         "base-4.17.0.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9",
+        "extra-1.7.14-244e22e0fa0caa7122fe0a9da39473db6acf685f18d2d5f76ec65b2fe8cf39b4",
         "filepath-1.4.2.2"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "filepattern-0.1.3-3209dee43b8f78099b7623a80834f0944d05b5c63e74e5607c738100e0aeefb7",
+      "id": "filepattern-0.1.3-58cc3a8400cbb8744f17c76f2f008b3b0bcfeab10b70eac1016a6dac8d7c6e99",
       "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
       "pkg-name": "filepattern",
       "pkg-src": {
@@ -304,24 +304,24 @@
       "depends": [
         "base-4.17.0.0"
       ],
-      "id": "ghc-boot-th-9.4.4",
+      "id": "ghc-boot-th-9.4.3",
       "pkg-name": "ghc-boot-th",
-      "pkg-version": "9.4.4",
+      "pkg-version": "9.4.3",
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/ghc-platform-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-platform-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/ghc-platform-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-platform-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-platform-0.1.0.0-inplace",
       "pkg-name": "ghc-platform",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../libraries/ghc-platform",
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -338,7 +338,7 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/ghc-toolchain-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-toolchain-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.17.0.0",
@@ -349,13 +349,13 @@
         "text-2.0.1",
         "transformers-0.5.6.2"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/ghc-toolchain-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/ghc-toolchain-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-toolchain-0.1.0.0-inplace",
       "pkg-name": "ghc-toolchain",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../utils/ghc-toolchain",
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -363,30 +363,30 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian/build-info.json",
       "component-name": "exe:hadrian",
       "depends": [
-        "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+        "Cabal-3.10.1.0-2189d100c804419a3b5b56f30f1942bb77687b52e628e9037fcc6164c7253907",
         "base-4.17.0.0",
-        "base16-bytestring-1.0.2.0-2c05b63cefa5d7007acd478c1dbfe18a190bfba61d8945d4d5b87798ed9ca8c2",
+        "base16-bytestring-1.0.2.0-022be67a0e4d2e8bed3248f110a529e722a677692e78084e184611e934a069d4",
         "bytestring-0.11.3.1",
         "containers-0.6.6",
-        "cryptohash-sha256-0.11.102.1-ae70c6c39b427440638d8d0177551367c44baa0fcf044bb565f9e69c4daafe02",
+        "cryptohash-sha256-0.11.102.1-e68c05e71af300ee0140f7ecda5ed0439a27ba54936b05cd7b35b19a275e2b94",
         "directory-1.3.7.1",
-        "extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9",
+        "extra-1.7.14-244e22e0fa0caa7122fe0a9da39473db6acf685f18d2d5f76ec65b2fe8cf39b4",
         "filepath-1.4.2.2",
         "ghc-platform-0.1.0.0-inplace",
         "ghc-toolchain-0.1.0.0-inplace",
         "mtl-2.2.2",
         "parsec-3.1.15.0",
-        "shake-0.19.7-9447f50d9da0cc8668e587f8e555d4d8c2a3b4aef6766374d908e2942c04845d",
+        "shake-0.19.7-858c4c12624ea5ad74e50756ac3148c5907db3f7bb149cb9faa047b109b64a30",
         "text-2.0.1",
         "time-1.12.2",
         "transformers-0.5.6.2",
-        "unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce"
+        "unordered-containers-0.2.19.1-5f551314a01c5736adcef5fa205c568f58d2674318227f36fb35532e604d15f2"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/hadrian-0.1.0.0/x/hadrian",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian",
       "exe-depends": [],
       "flags": {
         "selftest": false,
@@ -395,7 +395,7 @@
       "id": "hadrian-0.1.0.0-inplace-hadrian",
       "pkg-name": "hadrian",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/.",
+        "path": "/home/matt/ghc-clean/hadrian/.",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -419,8 +419,8 @@
         "integer-gmp": true,
         "random-initial-seed": false
       },
-      "id": "hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898",
-      "pkg-cabal-sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "id": "hashable-1.4.3.0-7c439c9841bf1f1ee61b2b5be3725b5f2766dffc3aa23e22eae8d6e49336aac1",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "pkg-name": "hashable",
       "pkg-src": {
         "repo": {
@@ -429,8 +429,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "pkg-version": "1.4.2.0",
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
       "style": "global",
       "type": "configured"
     },
@@ -441,7 +441,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "heaps-0.4-7a6066160342ac2a9ea4aec008f23eb9d92ad7a8c8d2e78cbeed667d8096912c",
+      "id": "heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6",
       "pkg-cabal-sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
       "pkg-name": "heaps",
       "pkg-src": {
@@ -463,7 +463,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "js-dgtable-0.5.2-b37805c8ad3dc85830c773ec5da0d4cdfd56a534a3f6acb334c4517b737e5cb1",
+      "id": "js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d",
       "pkg-cabal-sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
       "pkg-name": "js-dgtable",
       "pkg-src": {
@@ -485,7 +485,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "js-flot-0.8.3-65df5b8c3953095207aa8a04d9d37d07aed474c73133bf9239df4e5cdbe4a9bd",
+      "id": "js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa",
       "pkg-cabal-sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
       "pkg-name": "js-flot",
       "pkg-src": {
@@ -507,7 +507,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "js-jquery-3.3.1-8c84fdfa715ddd833b67b8a90ef47411829e61b194d5967e0699193776231e76",
+      "id": "js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f",
       "pkg-cabal-sha256": "59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5",
       "pkg-name": "js-jquery",
       "pkg-src": {
@@ -565,8 +565,8 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "primitive-0.8.0.0-621aca8de1dc201eec4f41917b8b5a6a9b9074831d6e26b48d3157f27593d2cb",
-      "pkg-cabal-sha256": "826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19",
+      "id": "primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
       "pkg-name": "primitive",
       "pkg-src": {
         "repo": {
@@ -600,12 +600,12 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "mtl-2.2.2",
-        "splitmix-0.1.0.4-d4d340dc5b93e4aadb6f0ee62f239d1f28fbadeae3c81529c67f4df279c3cae7"
+        "splitmix-0.1.0.5-09e5f19da796178d1e2414f75b54ad5a551c1ea93df669c559a03dd222d1626d"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21",
-      "pkg-cabal-sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "id": "random-1.2.1.1-6a2504e17aaf58936ac6a1e2fce3f071bbc1af0c5a14daa7efc7fad63518a273",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "pkg-name": "random",
       "pkg-src": {
         "repo": {
@@ -634,22 +634,22 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9",
+        "extra-1.7.14-244e22e0fa0caa7122fe0a9da39473db6acf685f18d2d5f76ec65b2fe8cf39b4",
         "filepath-1.4.2.2",
-        "filepattern-0.1.3-3209dee43b8f78099b7623a80834f0944d05b5c63e74e5607c738100e0aeefb7",
-        "hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898",
-        "heaps-0.4-7a6066160342ac2a9ea4aec008f23eb9d92ad7a8c8d2e78cbeed667d8096912c",
-        "js-dgtable-0.5.2-b37805c8ad3dc85830c773ec5da0d4cdfd56a534a3f6acb334c4517b737e5cb1",
-        "js-flot-0.8.3-65df5b8c3953095207aa8a04d9d37d07aed474c73133bf9239df4e5cdbe4a9bd",
-        "js-jquery-3.3.1-8c84fdfa715ddd833b67b8a90ef47411829e61b194d5967e0699193776231e76",
-        "primitive-0.8.0.0-621aca8de1dc201eec4f41917b8b5a6a9b9074831d6e26b48d3157f27593d2cb",
+        "filepattern-0.1.3-58cc3a8400cbb8744f17c76f2f008b3b0bcfeab10b70eac1016a6dac8d7c6e99",
+        "hashable-1.4.3.0-7c439c9841bf1f1ee61b2b5be3725b5f2766dffc3aa23e22eae8d6e49336aac1",
+        "heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6",
+        "js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d",
+        "js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa",
+        "js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f",
+        "primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531",
         "process-1.6.16.0",
-        "random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21",
+        "random-1.2.1.1-6a2504e17aaf58936ac6a1e2fce3f071bbc1af0c5a14daa7efc7fad63518a273",
         "time-1.12.2",
         "transformers-0.5.6.2",
         "unix-2.7.3",
-        "unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce",
-        "utf8-string-1.0.2-ecbcc42d461fefe46d60189b7229cddccce61f9cc8c90c79b2546be729015263"
+        "unordered-containers-0.2.19.1-5f551314a01c5736adcef5fa205c568f58d2674318227f36fb35532e604d15f2",
+        "utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939"
       ],
       "exe-depends": [],
       "flags": {
@@ -657,7 +657,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-9447f50d9da0cc8668e587f8e555d4d8c2a3b4aef6766374d908e2942c04845d",
+      "id": "shake-0.19.7-858c4c12624ea5ad74e50756ac3148c5907db3f7bb149cb9faa047b109b64a30",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -673,7 +673,7 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/.cabal/store/ghc-9.4.4/shake-0.19.7-e-shake-58a8239f06abe2b027b3d505240dffcac7bbaa4718579418aa458c0ac50d8beb/bin/shake",
+      "bin-file": "/home/matt/.cabal/store/ghc-9.4.3/shake-0.19.7-e-shake-7ce254b09e77522709fddc506a870167a48080b34d01153dc3648b306569cb90/bin/shake",
       "component-name": "exe:shake",
       "depends": [
         "base-4.17.0.0",
@@ -681,22 +681,22 @@
         "bytestring-0.11.3.1",
         "deepseq-1.4.8.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9",
+        "extra-1.7.14-244e22e0fa0caa7122fe0a9da39473db6acf685f18d2d5f76ec65b2fe8cf39b4",
         "filepath-1.4.2.2",
-        "filepattern-0.1.3-3209dee43b8f78099b7623a80834f0944d05b5c63e74e5607c738100e0aeefb7",
-        "hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898",
-        "heaps-0.4-7a6066160342ac2a9ea4aec008f23eb9d92ad7a8c8d2e78cbeed667d8096912c",
-        "js-dgtable-0.5.2-b37805c8ad3dc85830c773ec5da0d4cdfd56a534a3f6acb334c4517b737e5cb1",
-        "js-flot-0.8.3-65df5b8c3953095207aa8a04d9d37d07aed474c73133bf9239df4e5cdbe4a9bd",
-        "js-jquery-3.3.1-8c84fdfa715ddd833b67b8a90ef47411829e61b194d5967e0699193776231e76",
-        "primitive-0.8.0.0-621aca8de1dc201eec4f41917b8b5a6a9b9074831d6e26b48d3157f27593d2cb",
+        "filepattern-0.1.3-58cc3a8400cbb8744f17c76f2f008b3b0bcfeab10b70eac1016a6dac8d7c6e99",
+        "hashable-1.4.3.0-7c439c9841bf1f1ee61b2b5be3725b5f2766dffc3aa23e22eae8d6e49336aac1",
+        "heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6",
+        "js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d",
+        "js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa",
+        "js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f",
+        "primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531",
         "process-1.6.16.0",
-        "random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21",
+        "random-1.2.1.1-6a2504e17aaf58936ac6a1e2fce3f071bbc1af0c5a14daa7efc7fad63518a273",
         "time-1.12.2",
         "transformers-0.5.6.2",
         "unix-2.7.3",
-        "unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce",
-        "utf8-string-1.0.2-ecbcc42d461fefe46d60189b7229cddccce61f9cc8c90c79b2546be729015263"
+        "unordered-containers-0.2.19.1-5f551314a01c5736adcef5fa205c568f58d2674318227f36fb35532e604d15f2",
+        "utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939"
       ],
       "exe-depends": [],
       "flags": {
@@ -704,7 +704,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-e-shake-58a8239f06abe2b027b3d505240dffcac7bbaa4718579418aa458c0ac50d8beb",
+      "id": "shake-0.19.7-e-shake-7ce254b09e77522709fddc506a870167a48080b34d01153dc3648b306569cb90",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -729,8 +729,8 @@
       "flags": {
         "optimised-mixer": false
       },
-      "id": "splitmix-0.1.0.4-d4d340dc5b93e4aadb6f0ee62f239d1f28fbadeae3c81529c67f4df279c3cae7",
-      "pkg-cabal-sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "id": "splitmix-0.1.0.5-09e5f19da796178d1e2414f75b54ad5a551c1ea93df669c559a03dd222d1626d",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "pkg-name": "splitmix",
       "pkg-src": {
         "repo": {
@@ -739,15 +739,15 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "pkg-version": "0.1.0.4",
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
       "style": "global",
       "type": "configured"
     },
     {
       "depends": [
         "base-4.17.0.0",
-        "ghc-boot-th-9.4.4",
+        "ghc-boot-th-9.4.3",
         "ghc-prim-0.9.0",
         "pretty-1.1.3.6"
       ],
@@ -806,14 +806,14 @@
       "depends": [
         "base-4.17.0.0",
         "deepseq-1.4.8.0",
-        "hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898",
+        "hashable-1.4.3.0-7c439c9841bf1f1ee61b2b5be3725b5f2766dffc3aa23e22eae8d6e49336aac1",
         "template-haskell-2.19.0.0"
       ],
       "exe-depends": [],
       "flags": {
         "debug": false
       },
-      "id": "unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce",
+      "id": "unordered-containers-0.2.19.1-5f551314a01c5736adcef5fa205c568f58d2674318227f36fb35532e604d15f2",
       "pkg-cabal-sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
       "pkg-name": "unordered-containers",
       "pkg-src": {
@@ -836,7 +836,7 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "utf8-string-1.0.2-ecbcc42d461fefe46d60189b7229cddccce61f9cc8c90c79b2546be729015263",
+      "id": "utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939",
       "pkg-cabal-sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
       "pkg-name": "utf8-string",
       "pkg-src": {
diff --git a/hadrian/bootstrap/plan-9_4_5.json b/hadrian/bootstrap/plan-9_4_5.json
index 3a6faf1e2843..d140a984d52c 100644
--- a/hadrian/bootstrap/plan-9_4_5.json
+++ b/hadrian/bootstrap/plan-9_4_5.json
@@ -106,7 +106,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "base16-bytestring-1.0.2.0-1562190683b25c2fe2deaf09b565f90fb7542655a2a02b012fe1b10df4b7e2f4",
-      "pkg-cabal-sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "pkg-name": "base16-bytestring",
       "pkg-src": {
         "repo": {
@@ -153,8 +153,8 @@
       "flags": {
         "llvm": false
       },
-      "id": "clock-0.8.3-cc1b358a2ee29d64c6fb96162b4ea5fcea4cd8bb2181c6f5ebe1f5f95b54ab4f",
-      "pkg-cabal-sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "id": "clock-0.8.4-57957a1bfccaada1cc56d72117f0dc04b8c7daef6f8b9791463948f76d83298d",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "pkg-name": "clock",
       "pkg-src": {
         "repo": {
@@ -163,8 +163,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "pkg-version": "0.8.3",
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
       "style": "global",
       "type": "configured"
     },
@@ -192,7 +192,7 @@
         "use-cbits": true
       },
       "id": "cryptohash-sha256-0.11.102.1-acddc77e078ebf51b3458d0865f61f361140a39f18d05e6b723f84b0bf6e27e4",
-      "pkg-cabal-sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "pkg-name": "cryptohash-sha256",
       "pkg-src": {
         "repo": {
@@ -233,7 +233,7 @@
       "component-name": "lib",
       "depends": [
         "base-4.17.1.0",
-        "clock-0.8.3-cc1b358a2ee29d64c6fb96162b4ea5fcea4cd8bb2181c6f5ebe1f5f95b54ab4f",
+        "clock-0.8.4-57957a1bfccaada1cc56d72117f0dc04b8c7daef6f8b9791463948f76d83298d",
         "directory-1.3.7.1",
         "filepath-1.4.2.2",
         "process-1.6.16.0",
@@ -242,8 +242,8 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "extra-1.7.12-c12770013ff99291be029d0abf6b3a4b50636ab4a9f39eab7830ec4799592585",
-      "pkg-cabal-sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "id": "extra-1.7.14-3c135a33213d9e73fc061f2938e3aebc002f75a4e39573ac0b477569d286ffe9",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "pkg-name": "extra",
       "pkg-src": {
         "repo": {
@@ -252,8 +252,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "pkg-version": "1.7.12",
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
       "style": "global",
       "type": "configured"
     },
@@ -271,12 +271,12 @@
       "depends": [
         "base-4.17.1.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-c12770013ff99291be029d0abf6b3a4b50636ab4a9f39eab7830ec4799592585",
+        "extra-1.7.14-3c135a33213d9e73fc061f2938e3aebc002f75a4e39573ac0b477569d286ffe9",
         "filepath-1.4.2.2"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "filepattern-0.1.3-77ba6cc5e8505fc3867d61f31f4992ad457071fddd5f32a6642189f66924d740",
+      "id": "filepattern-0.1.3-7bb9c8b3ca4504ebc74c905852a4f0a1de8584d479210f0716c887378b640223",
       "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
       "pkg-name": "filepattern",
       "pkg-src": {
@@ -310,18 +310,18 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-platform-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-platform-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.17.1.0"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-platform-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-platform-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-platform-0.1.0.0-inplace",
       "pkg-name": "ghc-platform",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../libraries/ghc-platform",
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -338,7 +338,7 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-toolchain-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-toolchain-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.17.1.0",
@@ -349,13 +349,13 @@
         "text-2.0.2",
         "transformers-0.5.6.2"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-toolchain-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-toolchain-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-toolchain-0.1.0.0-inplace",
       "pkg-name": "ghc-toolchain",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../utils/ghc-toolchain",
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -363,8 +363,8 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/hadrian-0.1.0.0/x/hadrian/build-info.json",
       "component-name": "exe:hadrian",
       "depends": [
         "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
@@ -374,19 +374,19 @@
         "containers-0.6.7",
         "cryptohash-sha256-0.11.102.1-acddc77e078ebf51b3458d0865f61f361140a39f18d05e6b723f84b0bf6e27e4",
         "directory-1.3.7.1",
-        "extra-1.7.12-c12770013ff99291be029d0abf6b3a4b50636ab4a9f39eab7830ec4799592585",
+        "extra-1.7.14-3c135a33213d9e73fc061f2938e3aebc002f75a4e39573ac0b477569d286ffe9",
         "filepath-1.4.2.2",
         "ghc-platform-0.1.0.0-inplace",
         "ghc-toolchain-0.1.0.0-inplace",
         "mtl-2.2.2",
         "parsec-3.1.16.1",
-        "shake-0.19.7-7327ef6f1d5e53378b5ff9ab6b70f2ac50c86c59cbd46002910561bcc533dddf",
+        "shake-0.19.7-f71745b46f22f6234860e1e8c1485231913c01f35a23ce99895df3eb6d28380b",
         "text-2.0.2",
         "time-1.12.2",
         "transformers-0.5.6.2",
-        "unordered-containers-0.2.19.1-0a3ca6b60d6d6aeac27cf98af961585dfa6b3536f2ca437d68d2dbd15ff89613"
+        "unordered-containers-0.2.19.1-d24c37c689def916e86aa83074dbfab953e97becf1c2afe78f57aef91465933c"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/hadrian-0.1.0.0/x/hadrian",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/hadrian-0.1.0.0/x/hadrian",
       "exe-depends": [],
       "flags": {
         "selftest": false,
@@ -395,7 +395,7 @@
       "id": "hadrian-0.1.0.0-inplace-hadrian",
       "pkg-name": "hadrian",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/.",
+        "path": "/home/matt/ghc-clean/hadrian/.",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -419,8 +419,8 @@
         "integer-gmp": true,
         "random-initial-seed": false
       },
-      "id": "hashable-1.4.2.0-3b04fd77294fe61195ae1c2394169c93cbb57f70b835d67f53fbc4c7527e2642",
-      "pkg-cabal-sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "id": "hashable-1.4.3.0-37fea282e73b3a240cd260ae4ff2fe7516b32c564382d860d19fdf55e0d414c2",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "pkg-name": "hashable",
       "pkg-src": {
         "repo": {
@@ -429,8 +429,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "pkg-version": "1.4.2.0",
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
       "style": "global",
       "type": "configured"
     },
@@ -566,7 +566,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "primitive-0.8.0.0-211187599cff725317e299b747c780c346889529ec86d77458b3399dd533f17c",
-      "pkg-cabal-sha256": "826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
       "pkg-name": "primitive",
       "pkg-src": {
         "repo": {
@@ -600,12 +600,12 @@
         "bytestring-0.11.4.0",
         "deepseq-1.4.8.0",
         "mtl-2.2.2",
-        "splitmix-0.1.0.4-7cd85a7b6eba54ccf6d8f7bc26d14f39de5f0af4fb6d0c0d6e5b0e28ff9a201c"
+        "splitmix-0.1.0.5-a76fcff6778587ab189e44ca6bcc425171016975bf033f4ba08e29302b217412"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "random-1.2.1.1-3ce3d7b2c98a882431cadc2fbb72664c6684a0afe472c085d50fd3a2abcfcb23",
-      "pkg-cabal-sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "id": "random-1.2.1.1-1b0d5d2af6bfb7303fa92d29e6939b7778c32fabe0cbcc752fd74724644c4533",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "pkg-name": "random",
       "pkg-src": {
         "repo": {
@@ -627,28 +627,29 @@
       "type": "pre-existing"
     },
     {
-      "component-name": "lib",
+      "bin-file": "/home/matt/.cabal/store/ghc-9.4.5/shake-0.19.7-e-shake-4c001db2ff5b0db584e791b45b0293054fafa7c86c69d7c6b31c4a9950f01570/bin/shake",
+      "component-name": "exe:shake",
       "depends": [
         "base-4.17.1.0",
         "binary-0.8.9.1",
         "bytestring-0.11.4.0",
         "deepseq-1.4.8.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-c12770013ff99291be029d0abf6b3a4b50636ab4a9f39eab7830ec4799592585",
+        "extra-1.7.14-3c135a33213d9e73fc061f2938e3aebc002f75a4e39573ac0b477569d286ffe9",
         "filepath-1.4.2.2",
-        "filepattern-0.1.3-77ba6cc5e8505fc3867d61f31f4992ad457071fddd5f32a6642189f66924d740",
-        "hashable-1.4.2.0-3b04fd77294fe61195ae1c2394169c93cbb57f70b835d67f53fbc4c7527e2642",
+        "filepattern-0.1.3-7bb9c8b3ca4504ebc74c905852a4f0a1de8584d479210f0716c887378b640223",
+        "hashable-1.4.3.0-37fea282e73b3a240cd260ae4ff2fe7516b32c564382d860d19fdf55e0d414c2",
         "heaps-0.4-603c1c71e662ec29cc728283d7fe7527e0686dc213e55d125fe19cc10c6b733e",
         "js-dgtable-0.5.2-aab316f232ac5d36ab4423a466ef7107cb8d91d470e651610356727186379078",
         "js-flot-0.8.3-b9fdf04b71b9f190fffc13103b6cc234a1ef985ddd3fc04ab86a4c4e0a9e278f",
         "js-jquery-3.3.1-de927d6b63a2e7ecb7dee40e0f7d18df8f129e2307e25bc44adfcb35f185405d",
         "primitive-0.8.0.0-211187599cff725317e299b747c780c346889529ec86d77458b3399dd533f17c",
         "process-1.6.16.0",
-        "random-1.2.1.1-3ce3d7b2c98a882431cadc2fbb72664c6684a0afe472c085d50fd3a2abcfcb23",
+        "random-1.2.1.1-1b0d5d2af6bfb7303fa92d29e6939b7778c32fabe0cbcc752fd74724644c4533",
         "time-1.12.2",
         "transformers-0.5.6.2",
         "unix-2.7.3",
-        "unordered-containers-0.2.19.1-0a3ca6b60d6d6aeac27cf98af961585dfa6b3536f2ca437d68d2dbd15ff89613",
+        "unordered-containers-0.2.19.1-d24c37c689def916e86aa83074dbfab953e97becf1c2afe78f57aef91465933c",
         "utf8-string-1.0.2-76a082425a4861f05bd3f8a95b66da2c4f52a12eda35f67c591b4d8b48afcc5f"
       ],
       "exe-depends": [],
@@ -657,7 +658,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-7327ef6f1d5e53378b5ff9ab6b70f2ac50c86c59cbd46002910561bcc533dddf",
+      "id": "shake-0.19.7-e-shake-4c001db2ff5b0db584e791b45b0293054fafa7c86c69d7c6b31c4a9950f01570",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -673,29 +674,28 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/.cabal/store/ghc-9.4.5/shake-0.19.7-e-shake-c5d2fbfc9fbd1f18d283e469804777c3e474e7b6a88aa4c818d6aa05c120ef0c/bin/shake",
-      "component-name": "exe:shake",
+      "component-name": "lib",
       "depends": [
         "base-4.17.1.0",
         "binary-0.8.9.1",
         "bytestring-0.11.4.0",
         "deepseq-1.4.8.0",
         "directory-1.3.7.1",
-        "extra-1.7.12-c12770013ff99291be029d0abf6b3a4b50636ab4a9f39eab7830ec4799592585",
+        "extra-1.7.14-3c135a33213d9e73fc061f2938e3aebc002f75a4e39573ac0b477569d286ffe9",
         "filepath-1.4.2.2",
-        "filepattern-0.1.3-77ba6cc5e8505fc3867d61f31f4992ad457071fddd5f32a6642189f66924d740",
-        "hashable-1.4.2.0-3b04fd77294fe61195ae1c2394169c93cbb57f70b835d67f53fbc4c7527e2642",
+        "filepattern-0.1.3-7bb9c8b3ca4504ebc74c905852a4f0a1de8584d479210f0716c887378b640223",
+        "hashable-1.4.3.0-37fea282e73b3a240cd260ae4ff2fe7516b32c564382d860d19fdf55e0d414c2",
         "heaps-0.4-603c1c71e662ec29cc728283d7fe7527e0686dc213e55d125fe19cc10c6b733e",
         "js-dgtable-0.5.2-aab316f232ac5d36ab4423a466ef7107cb8d91d470e651610356727186379078",
         "js-flot-0.8.3-b9fdf04b71b9f190fffc13103b6cc234a1ef985ddd3fc04ab86a4c4e0a9e278f",
         "js-jquery-3.3.1-de927d6b63a2e7ecb7dee40e0f7d18df8f129e2307e25bc44adfcb35f185405d",
         "primitive-0.8.0.0-211187599cff725317e299b747c780c346889529ec86d77458b3399dd533f17c",
         "process-1.6.16.0",
-        "random-1.2.1.1-3ce3d7b2c98a882431cadc2fbb72664c6684a0afe472c085d50fd3a2abcfcb23",
+        "random-1.2.1.1-1b0d5d2af6bfb7303fa92d29e6939b7778c32fabe0cbcc752fd74724644c4533",
         "time-1.12.2",
         "transformers-0.5.6.2",
         "unix-2.7.3",
-        "unordered-containers-0.2.19.1-0a3ca6b60d6d6aeac27cf98af961585dfa6b3536f2ca437d68d2dbd15ff89613",
+        "unordered-containers-0.2.19.1-d24c37c689def916e86aa83074dbfab953e97becf1c2afe78f57aef91465933c",
         "utf8-string-1.0.2-76a082425a4861f05bd3f8a95b66da2c4f52a12eda35f67c591b4d8b48afcc5f"
       ],
       "exe-depends": [],
@@ -704,7 +704,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-e-shake-c5d2fbfc9fbd1f18d283e469804777c3e474e7b6a88aa4c818d6aa05c120ef0c",
+      "id": "shake-0.19.7-f71745b46f22f6234860e1e8c1485231913c01f35a23ce99895df3eb6d28380b",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -729,8 +729,8 @@
       "flags": {
         "optimised-mixer": false
       },
-      "id": "splitmix-0.1.0.4-7cd85a7b6eba54ccf6d8f7bc26d14f39de5f0af4fb6d0c0d6e5b0e28ff9a201c",
-      "pkg-cabal-sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "id": "splitmix-0.1.0.5-a76fcff6778587ab189e44ca6bcc425171016975bf033f4ba08e29302b217412",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "pkg-name": "splitmix",
       "pkg-src": {
         "repo": {
@@ -739,8 +739,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "pkg-version": "0.1.0.4",
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
       "style": "global",
       "type": "configured"
     },
@@ -806,14 +806,14 @@
       "depends": [
         "base-4.17.1.0",
         "deepseq-1.4.8.0",
-        "hashable-1.4.2.0-3b04fd77294fe61195ae1c2394169c93cbb57f70b835d67f53fbc4c7527e2642",
+        "hashable-1.4.3.0-37fea282e73b3a240cd260ae4ff2fe7516b32c564382d860d19fdf55e0d414c2",
         "template-haskell-2.19.0.0"
       ],
       "exe-depends": [],
       "flags": {
         "debug": false
       },
-      "id": "unordered-containers-0.2.19.1-0a3ca6b60d6d6aeac27cf98af961585dfa6b3536f2ca437d68d2dbd15ff89613",
+      "id": "unordered-containers-0.2.19.1-d24c37c689def916e86aa83074dbfab953e97becf1c2afe78f57aef91465933c",
       "pkg-cabal-sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
       "pkg-name": "unordered-containers",
       "pkg-src": {
diff --git a/hadrian/bootstrap/plan-9_4_6.json b/hadrian/bootstrap/plan-9_4_6.json
new file mode 100644
index 000000000000..d140a984d52c
--- /dev/null
+++ b/hadrian/bootstrap/plan-9_4_6.json
@@ -0,0 +1,856 @@
+{
+  "arch": "x86_64",
+  "cabal-lib-version": "3.10.1.0",
+  "cabal-version": "3.10.1.0",
+  "compiler-id": "ghc-9.4.5",
+  "install-plan": [
+    {
+      "component-name": "lib",
+      "depends": [
+        "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+        "array-0.5.4.0",
+        "base-4.17.1.0",
+        "bytestring-0.11.4.0",
+        "containers-0.6.7",
+        "deepseq-1.4.8.0",
+        "directory-1.3.7.1",
+        "filepath-1.4.2.2",
+        "mtl-2.2.2",
+        "parsec-3.1.16.1",
+        "pretty-1.1.3.6",
+        "process-1.6.16.0",
+        "text-2.0.2",
+        "time-1.12.2",
+        "transformers-0.5.6.2",
+        "unix-2.7.3"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+      "pkg-cabal-sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
+      "pkg-name": "Cabal",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "0bdbab8e4c3178016fb0f070d8b62bc3067f93afabfbd3aa17c8065d0ecc98ee",
+      "pkg-version": "3.10.1.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "array-0.5.4.0",
+        "base-4.17.1.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.4.0",
+        "containers-0.6.7",
+        "deepseq-1.4.8.0",
+        "directory-1.3.7.1",
+        "filepath-1.4.2.2",
+        "mtl-2.2.2",
+        "parsec-3.1.16.1",
+        "pretty-1.1.3.6",
+        "text-2.0.2",
+        "time-1.12.2",
+        "transformers-0.5.6.2",
+        "unix-2.7.3"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+      "pkg-cabal-sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
+      "pkg-name": "Cabal-syntax",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "3b80092355327768a0de8298ac50ee906b7e82462e2ba14542730573b453f522",
+      "pkg-version": "3.10.1.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0"
+      ],
+      "id": "array-0.5.4.0",
+      "pkg-name": "array",
+      "pkg-version": "0.5.4.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "ghc-bignum-1.3",
+        "ghc-prim-0.9.0",
+        "rts-1.0.2"
+      ],
+      "id": "base-4.17.1.0",
+      "pkg-name": "base",
+      "pkg-version": "4.17.1.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "bytestring-0.11.4.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "base16-bytestring-1.0.2.0-1562190683b25c2fe2deaf09b565f90fb7542655a2a02b012fe1b10df4b7e2f4",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "pkg-name": "base16-bytestring",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "pkg-version": "1.0.2.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.4.0",
+        "base-4.17.1.0",
+        "bytestring-0.11.4.0",
+        "containers-0.6.7"
+      ],
+      "id": "binary-0.8.9.1",
+      "pkg-name": "binary",
+      "pkg-version": "0.8.9.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0",
+        "deepseq-1.4.8.0",
+        "ghc-prim-0.9.0",
+        "template-haskell-2.19.0.0"
+      ],
+      "id": "bytestring-0.11.4.0",
+      "pkg-name": "bytestring",
+      "pkg-version": "0.11.4.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "llvm": false
+      },
+      "id": "clock-0.8.4-57957a1bfccaada1cc56d72117f0dc04b8c7daef6f8b9791463948f76d83298d",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
+      "pkg-name": "clock",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.4.0",
+        "base-4.17.1.0",
+        "deepseq-1.4.8.0",
+        "template-haskell-2.19.0.0"
+      ],
+      "id": "containers-0.6.7",
+      "pkg-name": "containers",
+      "pkg-version": "0.6.7",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "bytestring-0.11.4.0"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "exe": false,
+        "use-cbits": true
+      },
+      "id": "cryptohash-sha256-0.11.102.1-acddc77e078ebf51b3458d0865f61f361140a39f18d05e6b723f84b0bf6e27e4",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
+      "pkg-name": "cryptohash-sha256",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "pkg-version": "0.11.102.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.4.0",
+        "base-4.17.1.0",
+        "ghc-prim-0.9.0"
+      ],
+      "id": "deepseq-1.4.8.0",
+      "pkg-name": "deepseq",
+      "pkg-version": "1.4.8.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0",
+        "filepath-1.4.2.2",
+        "time-1.12.2",
+        "unix-2.7.3"
+      ],
+      "id": "directory-1.3.7.1",
+      "pkg-name": "directory",
+      "pkg-version": "1.3.7.1",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "clock-0.8.4-57957a1bfccaada1cc56d72117f0dc04b8c7daef6f8b9791463948f76d83298d",
+        "directory-1.3.7.1",
+        "filepath-1.4.2.2",
+        "process-1.6.16.0",
+        "time-1.12.2",
+        "unix-2.7.3"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "extra-1.7.14-3c135a33213d9e73fc061f2938e3aebc002f75a4e39573ac0b477569d286ffe9",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
+      "pkg-name": "extra",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0"
+      ],
+      "id": "filepath-1.4.2.2",
+      "pkg-name": "filepath",
+      "pkg-version": "1.4.2.2",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "directory-1.3.7.1",
+        "extra-1.7.14-3c135a33213d9e73fc061f2938e3aebc002f75a4e39573ac0b477569d286ffe9",
+        "filepath-1.4.2.2"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "filepattern-0.1.3-7bb9c8b3ca4504ebc74c905852a4f0a1de8584d479210f0716c887378b640223",
+      "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
+      "pkg-name": "filepattern",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636",
+      "pkg-version": "0.1.3",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "ghc-prim-0.9.0"
+      ],
+      "id": "ghc-bignum-1.3",
+      "pkg-name": "ghc-bignum",
+      "pkg-version": "1.3",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0"
+      ],
+      "id": "ghc-boot-th-9.4.5",
+      "pkg-name": "ghc-boot-th",
+      "pkg-version": "9.4.5",
+      "type": "pre-existing"
+    },
+    {
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-platform-0.1.0.0/build-info.json",
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-platform-0.1.0.0",
+      "exe-depends": [],
+      "flags": {},
+      "id": "ghc-platform-0.1.0.0-inplace",
+      "pkg-name": "ghc-platform",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "rts-1.0.2"
+      ],
+      "id": "ghc-prim-0.9.0",
+      "pkg-name": "ghc-prim",
+      "pkg-version": "0.9.0",
+      "type": "pre-existing"
+    },
+    {
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-toolchain-0.1.0.0/build-info.json",
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "directory-1.3.7.1",
+        "filepath-1.4.2.2",
+        "ghc-platform-0.1.0.0-inplace",
+        "process-1.6.16.0",
+        "text-2.0.2",
+        "transformers-0.5.6.2"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/ghc-toolchain-0.1.0.0",
+      "exe-depends": [],
+      "flags": {},
+      "id": "ghc-toolchain-0.1.0.0-inplace",
+      "pkg-name": "ghc-toolchain",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "component-name": "exe:hadrian",
+      "depends": [
+        "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+        "base-4.17.1.0",
+        "base16-bytestring-1.0.2.0-1562190683b25c2fe2deaf09b565f90fb7542655a2a02b012fe1b10df4b7e2f4",
+        "bytestring-0.11.4.0",
+        "containers-0.6.7",
+        "cryptohash-sha256-0.11.102.1-acddc77e078ebf51b3458d0865f61f361140a39f18d05e6b723f84b0bf6e27e4",
+        "directory-1.3.7.1",
+        "extra-1.7.14-3c135a33213d9e73fc061f2938e3aebc002f75a4e39573ac0b477569d286ffe9",
+        "filepath-1.4.2.2",
+        "ghc-platform-0.1.0.0-inplace",
+        "ghc-toolchain-0.1.0.0-inplace",
+        "mtl-2.2.2",
+        "parsec-3.1.16.1",
+        "shake-0.19.7-f71745b46f22f6234860e1e8c1485231913c01f35a23ce99895df3eb6d28380b",
+        "text-2.0.2",
+        "time-1.12.2",
+        "transformers-0.5.6.2",
+        "unordered-containers-0.2.19.1-d24c37c689def916e86aa83074dbfab953e97becf1c2afe78f57aef91465933c"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.5/hadrian-0.1.0.0/x/hadrian",
+      "exe-depends": [],
+      "flags": {
+        "selftest": false,
+        "threaded": true
+      },
+      "id": "hadrian-0.1.0.0-inplace-hadrian",
+      "pkg-name": "hadrian",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/.",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "bytestring-0.11.4.0",
+        "containers-0.6.7",
+        "deepseq-1.4.8.0",
+        "filepath-1.4.2.2",
+        "ghc-bignum-1.3",
+        "ghc-prim-0.9.0",
+        "text-2.0.2"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "integer-gmp": true,
+        "random-initial-seed": false
+      },
+      "id": "hashable-1.4.3.0-37fea282e73b3a240cd260ae4ff2fe7516b32c564382d860d19fdf55e0d414c2",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
+      "pkg-name": "hashable",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "heaps-0.4-603c1c71e662ec29cc728283d7fe7527e0686dc213e55d125fe19cc10c6b733e",
+      "pkg-cabal-sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
+      "pkg-name": "heaps",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd",
+      "pkg-version": "0.4",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-dgtable-0.5.2-aab316f232ac5d36ab4423a466ef7107cb8d91d470e651610356727186379078",
+      "pkg-cabal-sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
+      "pkg-name": "js-dgtable",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac",
+      "pkg-version": "0.5.2",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-flot-0.8.3-b9fdf04b71b9f190fffc13103b6cc234a1ef985ddd3fc04ab86a4c4e0a9e278f",
+      "pkg-cabal-sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
+      "pkg-name": "js-flot",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a",
+      "pkg-version": "0.8.3",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-jquery-3.3.1-de927d6b63a2e7ecb7dee40e0f7d18df8f129e2307e25bc44adfcb35f185405d",
+      "pkg-cabal-sha256": "59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5",
+      "pkg-name": "js-jquery",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b",
+      "pkg-version": "3.3.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0",
+        "transformers-0.5.6.2"
+      ],
+      "id": "mtl-2.2.2",
+      "pkg-name": "mtl",
+      "pkg-version": "2.2.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0",
+        "bytestring-0.11.4.0",
+        "mtl-2.2.2",
+        "text-2.0.2"
+      ],
+      "id": "parsec-3.1.16.1",
+      "pkg-name": "parsec",
+      "pkg-version": "3.1.16.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0",
+        "deepseq-1.4.8.0",
+        "ghc-prim-0.9.0"
+      ],
+      "id": "pretty-1.1.3.6",
+      "pkg-name": "pretty",
+      "pkg-version": "1.1.3.6",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "deepseq-1.4.8.0",
+        "template-haskell-2.19.0.0",
+        "transformers-0.5.6.2"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "primitive-0.8.0.0-211187599cff725317e299b747c780c346889529ec86d77458b3399dd533f17c",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
+      "pkg-name": "primitive",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f",
+      "pkg-version": "0.8.0.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0",
+        "deepseq-1.4.8.0",
+        "directory-1.3.7.1",
+        "filepath-1.4.2.2",
+        "unix-2.7.3"
+      ],
+      "id": "process-1.6.16.0",
+      "pkg-name": "process",
+      "pkg-version": "1.6.16.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "bytestring-0.11.4.0",
+        "deepseq-1.4.8.0",
+        "mtl-2.2.2",
+        "splitmix-0.1.0.5-a76fcff6778587ab189e44ca6bcc425171016975bf033f4ba08e29302b217412"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "random-1.2.1.1-1b0d5d2af6bfb7303fa92d29e6939b7778c32fabe0cbcc752fd74724644c4533",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
+      "pkg-name": "random",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
+      "pkg-version": "1.2.1.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [],
+      "id": "rts-1.0.2",
+      "pkg-name": "rts",
+      "pkg-version": "1.0.2",
+      "type": "pre-existing"
+    },
+    {
+      "bin-file": "/home/matt/.cabal/store/ghc-9.4.5/shake-0.19.7-e-shake-4c001db2ff5b0db584e791b45b0293054fafa7c86c69d7c6b31c4a9950f01570/bin/shake",
+      "component-name": "exe:shake",
+      "depends": [
+        "base-4.17.1.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.4.0",
+        "deepseq-1.4.8.0",
+        "directory-1.3.7.1",
+        "extra-1.7.14-3c135a33213d9e73fc061f2938e3aebc002f75a4e39573ac0b477569d286ffe9",
+        "filepath-1.4.2.2",
+        "filepattern-0.1.3-7bb9c8b3ca4504ebc74c905852a4f0a1de8584d479210f0716c887378b640223",
+        "hashable-1.4.3.0-37fea282e73b3a240cd260ae4ff2fe7516b32c564382d860d19fdf55e0d414c2",
+        "heaps-0.4-603c1c71e662ec29cc728283d7fe7527e0686dc213e55d125fe19cc10c6b733e",
+        "js-dgtable-0.5.2-aab316f232ac5d36ab4423a466ef7107cb8d91d470e651610356727186379078",
+        "js-flot-0.8.3-b9fdf04b71b9f190fffc13103b6cc234a1ef985ddd3fc04ab86a4c4e0a9e278f",
+        "js-jquery-3.3.1-de927d6b63a2e7ecb7dee40e0f7d18df8f129e2307e25bc44adfcb35f185405d",
+        "primitive-0.8.0.0-211187599cff725317e299b747c780c346889529ec86d77458b3399dd533f17c",
+        "process-1.6.16.0",
+        "random-1.2.1.1-1b0d5d2af6bfb7303fa92d29e6939b7778c32fabe0cbcc752fd74724644c4533",
+        "time-1.12.2",
+        "transformers-0.5.6.2",
+        "unix-2.7.3",
+        "unordered-containers-0.2.19.1-d24c37c689def916e86aa83074dbfab953e97becf1c2afe78f57aef91465933c",
+        "utf8-string-1.0.2-76a082425a4861f05bd3f8a95b66da2c4f52a12eda35f67c591b4d8b48afcc5f"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "cloud": false,
+        "embed-files": false,
+        "portable": false
+      },
+      "id": "shake-0.19.7-e-shake-4c001db2ff5b0db584e791b45b0293054fafa7c86c69d7c6b31c4a9950f01570",
+      "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "pkg-name": "shake",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "pkg-version": "0.19.7",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.4.0",
+        "deepseq-1.4.8.0",
+        "directory-1.3.7.1",
+        "extra-1.7.14-3c135a33213d9e73fc061f2938e3aebc002f75a4e39573ac0b477569d286ffe9",
+        "filepath-1.4.2.2",
+        "filepattern-0.1.3-7bb9c8b3ca4504ebc74c905852a4f0a1de8584d479210f0716c887378b640223",
+        "hashable-1.4.3.0-37fea282e73b3a240cd260ae4ff2fe7516b32c564382d860d19fdf55e0d414c2",
+        "heaps-0.4-603c1c71e662ec29cc728283d7fe7527e0686dc213e55d125fe19cc10c6b733e",
+        "js-dgtable-0.5.2-aab316f232ac5d36ab4423a466ef7107cb8d91d470e651610356727186379078",
+        "js-flot-0.8.3-b9fdf04b71b9f190fffc13103b6cc234a1ef985ddd3fc04ab86a4c4e0a9e278f",
+        "js-jquery-3.3.1-de927d6b63a2e7ecb7dee40e0f7d18df8f129e2307e25bc44adfcb35f185405d",
+        "primitive-0.8.0.0-211187599cff725317e299b747c780c346889529ec86d77458b3399dd533f17c",
+        "process-1.6.16.0",
+        "random-1.2.1.1-1b0d5d2af6bfb7303fa92d29e6939b7778c32fabe0cbcc752fd74724644c4533",
+        "time-1.12.2",
+        "transformers-0.5.6.2",
+        "unix-2.7.3",
+        "unordered-containers-0.2.19.1-d24c37c689def916e86aa83074dbfab953e97becf1c2afe78f57aef91465933c",
+        "utf8-string-1.0.2-76a082425a4861f05bd3f8a95b66da2c4f52a12eda35f67c591b4d8b48afcc5f"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "cloud": false,
+        "embed-files": false,
+        "portable": false
+      },
+      "id": "shake-0.19.7-f71745b46f22f6234860e1e8c1485231913c01f35a23ce99895df3eb6d28380b",
+      "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "pkg-name": "shake",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "pkg-version": "0.19.7",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "deepseq-1.4.8.0"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "optimised-mixer": false
+      },
+      "id": "splitmix-0.1.0.5-a76fcff6778587ab189e44ca6bcc425171016975bf033f4ba08e29302b217412",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
+      "pkg-name": "splitmix",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0",
+        "ghc-boot-th-9.4.5",
+        "ghc-prim-0.9.0",
+        "pretty-1.1.3.6"
+      ],
+      "id": "template-haskell-2.19.0.0",
+      "pkg-name": "template-haskell",
+      "pkg-version": "2.19.0.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "array-0.5.4.0",
+        "base-4.17.1.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.4.0",
+        "deepseq-1.4.8.0",
+        "ghc-prim-0.9.0",
+        "template-haskell-2.19.0.0"
+      ],
+      "id": "text-2.0.2",
+      "pkg-name": "text",
+      "pkg-version": "2.0.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0",
+        "deepseq-1.4.8.0"
+      ],
+      "id": "time-1.12.2",
+      "pkg-name": "time",
+      "pkg-version": "1.12.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0"
+      ],
+      "id": "transformers-0.5.6.2",
+      "pkg-name": "transformers",
+      "pkg-version": "0.5.6.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.1.0",
+        "bytestring-0.11.4.0",
+        "time-1.12.2"
+      ],
+      "id": "unix-2.7.3",
+      "pkg-name": "unix",
+      "pkg-version": "2.7.3",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "deepseq-1.4.8.0",
+        "hashable-1.4.3.0-37fea282e73b3a240cd260ae4ff2fe7516b32c564382d860d19fdf55e0d414c2",
+        "template-haskell-2.19.0.0"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "debug": false
+      },
+      "id": "unordered-containers-0.2.19.1-d24c37c689def916e86aa83074dbfab953e97becf1c2afe78f57aef91465933c",
+      "pkg-cabal-sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
+      "pkg-name": "unordered-containers",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
+      "pkg-version": "0.2.19.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.1.0",
+        "bytestring-0.11.4.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "utf8-string-1.0.2-76a082425a4861f05bd3f8a95b66da2c4f52a12eda35f67c591b4d8b48afcc5f",
+      "pkg-cabal-sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
+      "pkg-name": "utf8-string",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a",
+      "pkg-version": "1.0.2",
+      "style": "global",
+      "type": "configured"
+    }
+  ],
+  "os": "linux"
+}
diff --git a/hadrian/bootstrap/plan-9_4_7.json b/hadrian/bootstrap/plan-9_4_7.json
new file mode 100644
index 000000000000..1c53682ccb18
--- /dev/null
+++ b/hadrian/bootstrap/plan-9_4_7.json
@@ -0,0 +1,856 @@
+{
+  "arch": "x86_64",
+  "cabal-lib-version": "3.10.1.0",
+  "cabal-version": "3.10.1.0",
+  "compiler-id": "ghc-9.4.7",
+  "install-plan": [
+    {
+      "component-name": "lib",
+      "depends": [
+        "Cabal-syntax-3.10.1.0-8c55ad51c20e2b1a5b2d6f70579dc15ec88c78a7feb3ba120fc65275f16d092e",
+        "array-0.5.4.0",
+        "base-4.17.2.0",
+        "bytestring-0.11.5.2",
+        "containers-0.6.7",
+        "deepseq-1.4.8.0",
+        "directory-1.3.7.1",
+        "filepath-1.4.2.2",
+        "mtl-2.2.2",
+        "parsec-3.1.16.1",
+        "pretty-1.1.3.6",
+        "process-1.6.17.0",
+        "text-2.0.2",
+        "time-1.12.2",
+        "transformers-0.5.6.2",
+        "unix-2.7.3"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "Cabal-3.10.1.0-1b15bbadb88194c4fbf804f8dad22608af27a0d45235499584abbc59a564a73a",
+      "pkg-cabal-sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
+      "pkg-name": "Cabal",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "0bdbab8e4c3178016fb0f070d8b62bc3067f93afabfbd3aa17c8065d0ecc98ee",
+      "pkg-version": "3.10.1.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "array-0.5.4.0",
+        "base-4.17.2.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.5.2",
+        "containers-0.6.7",
+        "deepseq-1.4.8.0",
+        "directory-1.3.7.1",
+        "filepath-1.4.2.2",
+        "mtl-2.2.2",
+        "parsec-3.1.16.1",
+        "pretty-1.1.3.6",
+        "text-2.0.2",
+        "time-1.12.2",
+        "transformers-0.5.6.2",
+        "unix-2.7.3"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "Cabal-syntax-3.10.1.0-8c55ad51c20e2b1a5b2d6f70579dc15ec88c78a7feb3ba120fc65275f16d092e",
+      "pkg-cabal-sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
+      "pkg-name": "Cabal-syntax",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "3b80092355327768a0de8298ac50ee906b7e82462e2ba14542730573b453f522",
+      "pkg-version": "3.10.1.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0"
+      ],
+      "id": "array-0.5.4.0",
+      "pkg-name": "array",
+      "pkg-version": "0.5.4.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "ghc-bignum-1.3",
+        "ghc-prim-0.9.1",
+        "rts-1.0.2"
+      ],
+      "id": "base-4.17.2.0",
+      "pkg-name": "base",
+      "pkg-version": "4.17.2.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "bytestring-0.11.5.2"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "base16-bytestring-1.0.2.0-3ef9f2ebf2ae40c22dce06a228a491b86ef66901eecd676dfb05534a8b85e4a2",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "pkg-name": "base16-bytestring",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "pkg-version": "1.0.2.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.4.0",
+        "base-4.17.2.0",
+        "bytestring-0.11.5.2",
+        "containers-0.6.7"
+      ],
+      "id": "binary-0.8.9.1",
+      "pkg-name": "binary",
+      "pkg-version": "0.8.9.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0",
+        "deepseq-1.4.8.0",
+        "ghc-prim-0.9.1",
+        "template-haskell-2.19.0.0"
+      ],
+      "id": "bytestring-0.11.5.2",
+      "pkg-name": "bytestring",
+      "pkg-version": "0.11.5.2",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "llvm": false
+      },
+      "id": "clock-0.8.4-e8caa1afd1a166180463e095e9f522f5b93c46e3fa68b9684ff2e1492c7efd69",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
+      "pkg-name": "clock",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.4.0",
+        "base-4.17.2.0",
+        "deepseq-1.4.8.0",
+        "template-haskell-2.19.0.0"
+      ],
+      "id": "containers-0.6.7",
+      "pkg-name": "containers",
+      "pkg-version": "0.6.7",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "bytestring-0.11.5.2"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "exe": false,
+        "use-cbits": true
+      },
+      "id": "cryptohash-sha256-0.11.102.1-f17bb43ae888dcfbe02b7208a6889945b6ea9ba42489549ffe76f3934bda202f",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
+      "pkg-name": "cryptohash-sha256",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "pkg-version": "0.11.102.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.4.0",
+        "base-4.17.2.0",
+        "ghc-prim-0.9.1"
+      ],
+      "id": "deepseq-1.4.8.0",
+      "pkg-name": "deepseq",
+      "pkg-version": "1.4.8.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0",
+        "filepath-1.4.2.2",
+        "time-1.12.2",
+        "unix-2.7.3"
+      ],
+      "id": "directory-1.3.7.1",
+      "pkg-name": "directory",
+      "pkg-version": "1.3.7.1",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "clock-0.8.4-e8caa1afd1a166180463e095e9f522f5b93c46e3fa68b9684ff2e1492c7efd69",
+        "directory-1.3.7.1",
+        "filepath-1.4.2.2",
+        "process-1.6.17.0",
+        "time-1.12.2",
+        "unix-2.7.3"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "extra-1.7.14-59b3f2752295e793a44fa1fdbe69fca48d09bfa6752b6bfcbd4043c8148cc0df",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
+      "pkg-name": "extra",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0"
+      ],
+      "id": "filepath-1.4.2.2",
+      "pkg-name": "filepath",
+      "pkg-version": "1.4.2.2",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "directory-1.3.7.1",
+        "extra-1.7.14-59b3f2752295e793a44fa1fdbe69fca48d09bfa6752b6bfcbd4043c8148cc0df",
+        "filepath-1.4.2.2"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "filepattern-0.1.3-e0add0a51576a4d24b811936ed0c164dcb466e36caf717663c4028fb9ee120d3",
+      "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
+      "pkg-name": "filepattern",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636",
+      "pkg-version": "0.1.3",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "ghc-prim-0.9.1"
+      ],
+      "id": "ghc-bignum-1.3",
+      "pkg-name": "ghc-bignum",
+      "pkg-version": "1.3",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0"
+      ],
+      "id": "ghc-boot-th-9.4.7",
+      "pkg-name": "ghc-boot-th",
+      "pkg-version": "9.4.7",
+      "type": "pre-existing"
+    },
+    {
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.7/ghc-platform-0.1.0.0/build-info.json",
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.7/ghc-platform-0.1.0.0",
+      "exe-depends": [],
+      "flags": {},
+      "id": "ghc-platform-0.1.0.0-inplace",
+      "pkg-name": "ghc-platform",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "rts-1.0.2"
+      ],
+      "id": "ghc-prim-0.9.1",
+      "pkg-name": "ghc-prim",
+      "pkg-version": "0.9.1",
+      "type": "pre-existing"
+    },
+    {
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.7/ghc-toolchain-0.1.0.0/build-info.json",
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "directory-1.3.7.1",
+        "filepath-1.4.2.2",
+        "ghc-platform-0.1.0.0-inplace",
+        "process-1.6.17.0",
+        "text-2.0.2",
+        "transformers-0.5.6.2"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.7/ghc-toolchain-0.1.0.0",
+      "exe-depends": [],
+      "flags": {},
+      "id": "ghc-toolchain-0.1.0.0-inplace",
+      "pkg-name": "ghc-toolchain",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.7/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.7/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "component-name": "exe:hadrian",
+      "depends": [
+        "Cabal-3.10.1.0-1b15bbadb88194c4fbf804f8dad22608af27a0d45235499584abbc59a564a73a",
+        "base-4.17.2.0",
+        "base16-bytestring-1.0.2.0-3ef9f2ebf2ae40c22dce06a228a491b86ef66901eecd676dfb05534a8b85e4a2",
+        "bytestring-0.11.5.2",
+        "containers-0.6.7",
+        "cryptohash-sha256-0.11.102.1-f17bb43ae888dcfbe02b7208a6889945b6ea9ba42489549ffe76f3934bda202f",
+        "directory-1.3.7.1",
+        "extra-1.7.14-59b3f2752295e793a44fa1fdbe69fca48d09bfa6752b6bfcbd4043c8148cc0df",
+        "filepath-1.4.2.2",
+        "ghc-platform-0.1.0.0-inplace",
+        "ghc-toolchain-0.1.0.0-inplace",
+        "mtl-2.2.2",
+        "parsec-3.1.16.1",
+        "shake-0.19.7-938ea8cf1fb7589877af9e00a2bbcd11c75cd7fe9718d1751775500649b4b83a",
+        "text-2.0.2",
+        "time-1.12.2",
+        "transformers-0.5.6.2",
+        "unordered-containers-0.2.19.1-c6665f9d916cddd05a2de2c8fe0dadad9fd40ede0c09b24ed840a3ee3ec5ede3"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.7/hadrian-0.1.0.0/x/hadrian",
+      "exe-depends": [],
+      "flags": {
+        "selftest": false,
+        "threaded": true
+      },
+      "id": "hadrian-0.1.0.0-inplace-hadrian",
+      "pkg-name": "hadrian",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/.",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "bytestring-0.11.5.2",
+        "containers-0.6.7",
+        "deepseq-1.4.8.0",
+        "filepath-1.4.2.2",
+        "ghc-bignum-1.3",
+        "ghc-prim-0.9.1",
+        "text-2.0.2"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "integer-gmp": true,
+        "random-initial-seed": false
+      },
+      "id": "hashable-1.4.3.0-09db42c6b0189f566008419f8ab4ec6f02acb8e5443c9bc3c0160f1119d12a04",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
+      "pkg-name": "hashable",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "heaps-0.4-9a77df4e3db3d50a3637137af4f3f2c10095c04ac23988b3e9c72116053f5c6b",
+      "pkg-cabal-sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
+      "pkg-name": "heaps",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd",
+      "pkg-version": "0.4",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-dgtable-0.5.2-094ee8872eb10913dc0a4350523def131afcebe1cf1a50cc5c29f687abc622c9",
+      "pkg-cabal-sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
+      "pkg-name": "js-dgtable",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac",
+      "pkg-version": "0.5.2",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-flot-0.8.3-fbfb60e628ed902edbd1d03606b546b320963590fbaf653dbe7b3df0086c4c2c",
+      "pkg-cabal-sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
+      "pkg-name": "js-flot",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a",
+      "pkg-version": "0.8.3",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-jquery-3.3.1-0dd26cbd63adfa57d02a6ab830dac2a6776b4c32af37950f31f0810ef850e5ab",
+      "pkg-cabal-sha256": "59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5",
+      "pkg-name": "js-jquery",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b",
+      "pkg-version": "3.3.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0",
+        "transformers-0.5.6.2"
+      ],
+      "id": "mtl-2.2.2",
+      "pkg-name": "mtl",
+      "pkg-version": "2.2.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0",
+        "bytestring-0.11.5.2",
+        "mtl-2.2.2",
+        "text-2.0.2"
+      ],
+      "id": "parsec-3.1.16.1",
+      "pkg-name": "parsec",
+      "pkg-version": "3.1.16.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0",
+        "deepseq-1.4.8.0",
+        "ghc-prim-0.9.1"
+      ],
+      "id": "pretty-1.1.3.6",
+      "pkg-name": "pretty",
+      "pkg-version": "1.1.3.6",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "deepseq-1.4.8.0",
+        "template-haskell-2.19.0.0",
+        "transformers-0.5.6.2"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "primitive-0.8.0.0-f79704e7716577e1d850dc83b85c45fffaf9b8d97e33765a9b48422ef722b59c",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
+      "pkg-name": "primitive",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f",
+      "pkg-version": "0.8.0.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0",
+        "deepseq-1.4.8.0",
+        "directory-1.3.7.1",
+        "filepath-1.4.2.2",
+        "unix-2.7.3"
+      ],
+      "id": "process-1.6.17.0",
+      "pkg-name": "process",
+      "pkg-version": "1.6.17.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "bytestring-0.11.5.2",
+        "deepseq-1.4.8.0",
+        "mtl-2.2.2",
+        "splitmix-0.1.0.5-3cd93c70424e356aa6efba51d5e2e77a195c7d16ddb59768fbd0ccfda8fe1cb3"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "random-1.2.1.1-c5b3207fbe695f5806048cee1ee6d4a48d33056bf1f3cfbd9ee1e189e1f5d1cd",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
+      "pkg-name": "random",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
+      "pkg-version": "1.2.1.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [],
+      "id": "rts-1.0.2",
+      "pkg-name": "rts",
+      "pkg-version": "1.0.2",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.5.2",
+        "deepseq-1.4.8.0",
+        "directory-1.3.7.1",
+        "extra-1.7.14-59b3f2752295e793a44fa1fdbe69fca48d09bfa6752b6bfcbd4043c8148cc0df",
+        "filepath-1.4.2.2",
+        "filepattern-0.1.3-e0add0a51576a4d24b811936ed0c164dcb466e36caf717663c4028fb9ee120d3",
+        "hashable-1.4.3.0-09db42c6b0189f566008419f8ab4ec6f02acb8e5443c9bc3c0160f1119d12a04",
+        "heaps-0.4-9a77df4e3db3d50a3637137af4f3f2c10095c04ac23988b3e9c72116053f5c6b",
+        "js-dgtable-0.5.2-094ee8872eb10913dc0a4350523def131afcebe1cf1a50cc5c29f687abc622c9",
+        "js-flot-0.8.3-fbfb60e628ed902edbd1d03606b546b320963590fbaf653dbe7b3df0086c4c2c",
+        "js-jquery-3.3.1-0dd26cbd63adfa57d02a6ab830dac2a6776b4c32af37950f31f0810ef850e5ab",
+        "primitive-0.8.0.0-f79704e7716577e1d850dc83b85c45fffaf9b8d97e33765a9b48422ef722b59c",
+        "process-1.6.17.0",
+        "random-1.2.1.1-c5b3207fbe695f5806048cee1ee6d4a48d33056bf1f3cfbd9ee1e189e1f5d1cd",
+        "time-1.12.2",
+        "transformers-0.5.6.2",
+        "unix-2.7.3",
+        "unordered-containers-0.2.19.1-c6665f9d916cddd05a2de2c8fe0dadad9fd40ede0c09b24ed840a3ee3ec5ede3",
+        "utf8-string-1.0.2-345983e5c7a6c6cf03fc29fd6e582ef4fae34f87a1835d6facaefcb954a9cb22"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "cloud": false,
+        "embed-files": false,
+        "portable": false
+      },
+      "id": "shake-0.19.7-938ea8cf1fb7589877af9e00a2bbcd11c75cd7fe9718d1751775500649b4b83a",
+      "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "pkg-name": "shake",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "pkg-version": "0.19.7",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "bin-file": "/home/matt/.cabal/store/ghc-9.4.7/shake-0.19.7-e-shake-088ed1b3b86ca946c69aaf81786f0ef4b9e993f89ddbb5acb5db5adf2b149d74/bin/shake",
+      "component-name": "exe:shake",
+      "depends": [
+        "base-4.17.2.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.5.2",
+        "deepseq-1.4.8.0",
+        "directory-1.3.7.1",
+        "extra-1.7.14-59b3f2752295e793a44fa1fdbe69fca48d09bfa6752b6bfcbd4043c8148cc0df",
+        "filepath-1.4.2.2",
+        "filepattern-0.1.3-e0add0a51576a4d24b811936ed0c164dcb466e36caf717663c4028fb9ee120d3",
+        "hashable-1.4.3.0-09db42c6b0189f566008419f8ab4ec6f02acb8e5443c9bc3c0160f1119d12a04",
+        "heaps-0.4-9a77df4e3db3d50a3637137af4f3f2c10095c04ac23988b3e9c72116053f5c6b",
+        "js-dgtable-0.5.2-094ee8872eb10913dc0a4350523def131afcebe1cf1a50cc5c29f687abc622c9",
+        "js-flot-0.8.3-fbfb60e628ed902edbd1d03606b546b320963590fbaf653dbe7b3df0086c4c2c",
+        "js-jquery-3.3.1-0dd26cbd63adfa57d02a6ab830dac2a6776b4c32af37950f31f0810ef850e5ab",
+        "primitive-0.8.0.0-f79704e7716577e1d850dc83b85c45fffaf9b8d97e33765a9b48422ef722b59c",
+        "process-1.6.17.0",
+        "random-1.2.1.1-c5b3207fbe695f5806048cee1ee6d4a48d33056bf1f3cfbd9ee1e189e1f5d1cd",
+        "time-1.12.2",
+        "transformers-0.5.6.2",
+        "unix-2.7.3",
+        "unordered-containers-0.2.19.1-c6665f9d916cddd05a2de2c8fe0dadad9fd40ede0c09b24ed840a3ee3ec5ede3",
+        "utf8-string-1.0.2-345983e5c7a6c6cf03fc29fd6e582ef4fae34f87a1835d6facaefcb954a9cb22"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "cloud": false,
+        "embed-files": false,
+        "portable": false
+      },
+      "id": "shake-0.19.7-e-shake-088ed1b3b86ca946c69aaf81786f0ef4b9e993f89ddbb5acb5db5adf2b149d74",
+      "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "pkg-name": "shake",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "pkg-version": "0.19.7",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "deepseq-1.4.8.0"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "optimised-mixer": false
+      },
+      "id": "splitmix-0.1.0.5-3cd93c70424e356aa6efba51d5e2e77a195c7d16ddb59768fbd0ccfda8fe1cb3",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
+      "pkg-name": "splitmix",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0",
+        "ghc-boot-th-9.4.7",
+        "ghc-prim-0.9.1",
+        "pretty-1.1.3.6"
+      ],
+      "id": "template-haskell-2.19.0.0",
+      "pkg-name": "template-haskell",
+      "pkg-version": "2.19.0.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "array-0.5.4.0",
+        "base-4.17.2.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.5.2",
+        "deepseq-1.4.8.0",
+        "ghc-prim-0.9.1",
+        "template-haskell-2.19.0.0"
+      ],
+      "id": "text-2.0.2",
+      "pkg-name": "text",
+      "pkg-version": "2.0.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0",
+        "deepseq-1.4.8.0"
+      ],
+      "id": "time-1.12.2",
+      "pkg-name": "time",
+      "pkg-version": "1.12.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0"
+      ],
+      "id": "transformers-0.5.6.2",
+      "pkg-name": "transformers",
+      "pkg-version": "0.5.6.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.17.2.0",
+        "bytestring-0.11.5.2",
+        "time-1.12.2"
+      ],
+      "id": "unix-2.7.3",
+      "pkg-name": "unix",
+      "pkg-version": "2.7.3",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "deepseq-1.4.8.0",
+        "hashable-1.4.3.0-09db42c6b0189f566008419f8ab4ec6f02acb8e5443c9bc3c0160f1119d12a04",
+        "template-haskell-2.19.0.0"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "debug": false
+      },
+      "id": "unordered-containers-0.2.19.1-c6665f9d916cddd05a2de2c8fe0dadad9fd40ede0c09b24ed840a3ee3ec5ede3",
+      "pkg-cabal-sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
+      "pkg-name": "unordered-containers",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
+      "pkg-version": "0.2.19.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.17.2.0",
+        "bytestring-0.11.5.2"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "utf8-string-1.0.2-345983e5c7a6c6cf03fc29fd6e582ef4fae34f87a1835d6facaefcb954a9cb22",
+      "pkg-cabal-sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
+      "pkg-name": "utf8-string",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a",
+      "pkg-version": "1.0.2",
+      "style": "global",
+      "type": "configured"
+    }
+  ],
+  "os": "linux"
+}
diff --git a/hadrian/bootstrap/plan-9_6_1.json b/hadrian/bootstrap/plan-9_6_1.json
index 7bc747a9f933..e3097d7193b5 100644
--- a/hadrian/bootstrap/plan-9_6_1.json
+++ b/hadrian/bootstrap/plan-9_6_1.json
@@ -5,9 +5,8 @@
   "compiler-id": "ghc-9.6.1",
   "install-plan": [
     {
-      "component-name": "lib",
       "depends": [
-        "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+        "Cabal-syntax-3.10.1.0",
         "array-0.5.5.0",
         "base-4.18.0.0",
         "bytestring-0.11.4.0",
@@ -24,25 +23,12 @@
         "transformers-0.6.1.0",
         "unix-2.8.1.0"
       ],
-      "exe-depends": [],
-      "flags": {},
-      "id": "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
-      "pkg-cabal-sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
+      "id": "Cabal-3.10.1.0",
       "pkg-name": "Cabal",
-      "pkg-src": {
-        "repo": {
-          "type": "secure-repo",
-          "uri": "http://hackage.haskell.org/"
-        },
-        "type": "repo-tar"
-      },
-      "pkg-src-sha256": "0bdbab8e4c3178016fb0f070d8b62bc3067f93afabfbd3aa17c8065d0ecc98ee",
       "pkg-version": "3.10.1.0",
-      "style": "global",
-      "type": "configured"
+      "type": "pre-existing"
     },
     {
-      "component-name": "lib",
       "depends": [
         "array-0.5.5.0",
         "base-4.18.0.0",
@@ -60,22 +46,10 @@
         "transformers-0.6.1.0",
         "unix-2.8.1.0"
       ],
-      "exe-depends": [],
-      "flags": {},
-      "id": "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
-      "pkg-cabal-sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
+      "id": "Cabal-syntax-3.10.1.0",
       "pkg-name": "Cabal-syntax",
-      "pkg-src": {
-        "repo": {
-          "type": "secure-repo",
-          "uri": "http://hackage.haskell.org/"
-        },
-        "type": "repo-tar"
-      },
-      "pkg-src-sha256": "3b80092355327768a0de8298ac50ee906b7e82462e2ba14542730573b453f522",
       "pkg-version": "3.10.1.0",
-      "style": "global",
-      "type": "configured"
+      "type": "pre-existing"
     },
     {
       "depends": [
@@ -106,7 +80,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "base16-bytestring-1.0.2.0-b5940c21a059d328169082a7bf03f08fec9ea9cb300f6de1499ec2087f455bc8",
-      "pkg-cabal-sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "pkg-name": "base16-bytestring",
       "pkg-src": {
         "repo": {
@@ -153,8 +127,8 @@
       "flags": {
         "llvm": false
       },
-      "id": "clock-0.8.3-309549353d285d82eaa6ef36502628671b62ca2d2fb6284260bd7679d5e7b9a3",
-      "pkg-cabal-sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "id": "clock-0.8.4-3e5576458447f7b84398e14373c6199f7e0025552ff21b7b512807f18a4bc498",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "pkg-name": "clock",
       "pkg-src": {
         "repo": {
@@ -163,8 +137,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "pkg-version": "0.8.3",
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
       "style": "global",
       "type": "configured"
     },
@@ -192,7 +166,7 @@
         "use-cbits": true
       },
       "id": "cryptohash-sha256-0.11.102.1-9d310921383dbec51b2f6fa686c9d99cfd3bb977a8eff016b53bb33c86c941e0",
-      "pkg-cabal-sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "pkg-name": "cryptohash-sha256",
       "pkg-src": {
         "repo": {
@@ -246,7 +220,7 @@
       "component-name": "lib",
       "depends": [
         "base-4.18.0.0",
-        "clock-0.8.3-309549353d285d82eaa6ef36502628671b62ca2d2fb6284260bd7679d5e7b9a3",
+        "clock-0.8.4-3e5576458447f7b84398e14373c6199f7e0025552ff21b7b512807f18a4bc498",
         "directory-1.3.8.1",
         "filepath-1.4.100.1",
         "process-1.6.17.0",
@@ -255,8 +229,8 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac",
-      "pkg-cabal-sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "id": "extra-1.7.14-1e4d753e3e2a6a6678a92d2f5e20632ba08c7fce2a76b57b3cdf948436f94baf",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "pkg-name": "extra",
       "pkg-src": {
         "repo": {
@@ -265,8 +239,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "pkg-version": "1.7.12",
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
       "style": "global",
       "type": "configured"
     },
@@ -288,12 +262,12 @@
       "depends": [
         "base-4.18.0.0",
         "directory-1.3.8.1",
-        "extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac",
+        "extra-1.7.14-1e4d753e3e2a6a6678a92d2f5e20632ba08c7fce2a76b57b3cdf948436f94baf",
         "filepath-1.4.100.1"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990",
+      "id": "filepattern-0.1.3-98137a12500a6ef2d4f8abc95ceae109795bd04281a1a080d2dc16589fe7ce12",
       "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
       "pkg-name": "filepattern",
       "pkg-src": {
@@ -327,18 +301,18 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/ghc-platform-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/ghc-platform-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.18.0.0"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/ghc-platform-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/ghc-platform-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-platform-0.1.0.0-inplace",
       "pkg-name": "ghc-platform",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../libraries/ghc-platform",
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -355,7 +329,7 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/ghc-toolchain-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/ghc-toolchain-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.18.0.0",
@@ -366,13 +340,13 @@
         "text-2.0.2",
         "transformers-0.6.1.0"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/ghc-toolchain-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/ghc-toolchain-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-toolchain-0.1.0.0-inplace",
       "pkg-name": "ghc-toolchain",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../utils/ghc-toolchain",
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -380,30 +354,30 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian/build-info.json",
       "component-name": "exe:hadrian",
       "depends": [
-        "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+        "Cabal-3.10.1.0",
         "base-4.18.0.0",
         "base16-bytestring-1.0.2.0-b5940c21a059d328169082a7bf03f08fec9ea9cb300f6de1499ec2087f455bc8",
         "bytestring-0.11.4.0",
         "containers-0.6.7",
         "cryptohash-sha256-0.11.102.1-9d310921383dbec51b2f6fa686c9d99cfd3bb977a8eff016b53bb33c86c941e0",
         "directory-1.3.8.1",
-        "extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac",
+        "extra-1.7.14-1e4d753e3e2a6a6678a92d2f5e20632ba08c7fce2a76b57b3cdf948436f94baf",
         "filepath-1.4.100.1",
         "ghc-platform-0.1.0.0-inplace",
         "ghc-toolchain-0.1.0.0-inplace",
         "mtl-2.3.1",
         "parsec-3.1.16.1",
-        "shake-0.19.7-5a9ab582f15d6b877ed307ed78deca9e9f66793b09ed98bacc612e42b1e9bb49",
+        "shake-0.19.7-f622ff9a218d4e335264ef86e06a3002b88f0c61e8a964b3c1cba2569bf91ab9",
         "text-2.0.2",
         "time-1.12.2",
         "transformers-0.6.1.0",
-        "unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99"
+        "unordered-containers-0.2.19.1-c2eca776baf4fc617346651ed0756aa01198f94ae1b6c3ec26d525fc4e2d0d0b"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian",
       "exe-depends": [],
       "flags": {
         "selftest": false,
@@ -412,7 +386,7 @@
       "id": "hadrian-0.1.0.0-inplace-hadrian",
       "pkg-name": "hadrian",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/.",
+        "path": "/home/matt/ghc-clean/hadrian/.",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -436,8 +410,8 @@
         "integer-gmp": true,
         "random-initial-seed": false
       },
-      "id": "hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4",
-      "pkg-cabal-sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "id": "hashable-1.4.3.0-fa09dc739bc3ac124d6fb0122e78a2d32fbce2118312a0ea3fbf79ec62fb1803",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "pkg-name": "hashable",
       "pkg-src": {
         "repo": {
@@ -446,8 +420,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "pkg-version": "1.4.2.0",
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
       "style": "global",
       "type": "configured"
     },
@@ -583,7 +557,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371",
-      "pkg-cabal-sha256": "826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
       "pkg-name": "primitive",
       "pkg-src": {
         "repo": {
@@ -617,12 +591,12 @@
         "bytestring-0.11.4.0",
         "deepseq-1.4.8.1",
         "mtl-2.3.1",
-        "splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b"
+        "splitmix-0.1.0.5-38ff255f4209f9dd24bf92483a9c2a25ebe06dcb92ab79bb7e95f1b913d9d4cf"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6",
-      "pkg-cabal-sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "id": "random-1.2.1.1-ffe51cd199197248564e73f28ef3f36986c68df7ef6a63469d008e73ce9372ad",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "pkg-name": "random",
       "pkg-src": {
         "repo": {
@@ -644,28 +618,29 @@
       "type": "pre-existing"
     },
     {
-      "component-name": "lib",
+      "bin-file": "/home/matt/.cabal/store/ghc-9.6.1/shake-0.19.7-e-shake-f393a0ff756be874a46bf49b589c952f684766fa6a51197c7394cb4ec81ecdc1/bin/shake",
+      "component-name": "exe:shake",
       "depends": [
         "base-4.18.0.0",
         "binary-0.8.9.1",
         "bytestring-0.11.4.0",
         "deepseq-1.4.8.1",
         "directory-1.3.8.1",
-        "extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac",
+        "extra-1.7.14-1e4d753e3e2a6a6678a92d2f5e20632ba08c7fce2a76b57b3cdf948436f94baf",
         "filepath-1.4.100.1",
-        "filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990",
-        "hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4",
+        "filepattern-0.1.3-98137a12500a6ef2d4f8abc95ceae109795bd04281a1a080d2dc16589fe7ce12",
+        "hashable-1.4.3.0-fa09dc739bc3ac124d6fb0122e78a2d32fbce2118312a0ea3fbf79ec62fb1803",
         "heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459",
         "js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572",
         "js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a",
         "js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed",
         "primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371",
         "process-1.6.17.0",
-        "random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6",
+        "random-1.2.1.1-ffe51cd199197248564e73f28ef3f36986c68df7ef6a63469d008e73ce9372ad",
         "time-1.12.2",
         "transformers-0.6.1.0",
         "unix-2.8.1.0",
-        "unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99",
+        "unordered-containers-0.2.19.1-c2eca776baf4fc617346651ed0756aa01198f94ae1b6c3ec26d525fc4e2d0d0b",
         "utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053"
       ],
       "exe-depends": [],
@@ -674,7 +649,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-5a9ab582f15d6b877ed307ed78deca9e9f66793b09ed98bacc612e42b1e9bb49",
+      "id": "shake-0.19.7-e-shake-f393a0ff756be874a46bf49b589c952f684766fa6a51197c7394cb4ec81ecdc1",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -690,29 +665,28 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/.cabal/store/ghc-9.6.1/shake-0.19.7-e-shake-a59c980e9cb95b2a1d37687f9ab3efd3a8e8314a00e4ca7fb819044d23198462/bin/shake",
-      "component-name": "exe:shake",
+      "component-name": "lib",
       "depends": [
         "base-4.18.0.0",
         "binary-0.8.9.1",
         "bytestring-0.11.4.0",
         "deepseq-1.4.8.1",
         "directory-1.3.8.1",
-        "extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac",
+        "extra-1.7.14-1e4d753e3e2a6a6678a92d2f5e20632ba08c7fce2a76b57b3cdf948436f94baf",
         "filepath-1.4.100.1",
-        "filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990",
-        "hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4",
+        "filepattern-0.1.3-98137a12500a6ef2d4f8abc95ceae109795bd04281a1a080d2dc16589fe7ce12",
+        "hashable-1.4.3.0-fa09dc739bc3ac124d6fb0122e78a2d32fbce2118312a0ea3fbf79ec62fb1803",
         "heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459",
         "js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572",
         "js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a",
         "js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed",
         "primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371",
         "process-1.6.17.0",
-        "random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6",
+        "random-1.2.1.1-ffe51cd199197248564e73f28ef3f36986c68df7ef6a63469d008e73ce9372ad",
         "time-1.12.2",
         "transformers-0.6.1.0",
         "unix-2.8.1.0",
-        "unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99",
+        "unordered-containers-0.2.19.1-c2eca776baf4fc617346651ed0756aa01198f94ae1b6c3ec26d525fc4e2d0d0b",
         "utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053"
       ],
       "exe-depends": [],
@@ -721,7 +695,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-e-shake-a59c980e9cb95b2a1d37687f9ab3efd3a8e8314a00e4ca7fb819044d23198462",
+      "id": "shake-0.19.7-f622ff9a218d4e335264ef86e06a3002b88f0c61e8a964b3c1cba2569bf91ab9",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -746,8 +720,8 @@
       "flags": {
         "optimised-mixer": false
       },
-      "id": "splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b",
-      "pkg-cabal-sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "id": "splitmix-0.1.0.5-38ff255f4209f9dd24bf92483a9c2a25ebe06dcb92ab79bb7e95f1b913d9d4cf",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "pkg-name": "splitmix",
       "pkg-src": {
         "repo": {
@@ -756,8 +730,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "pkg-version": "0.1.0.4",
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
       "style": "global",
       "type": "configured"
     },
@@ -834,14 +808,14 @@
       "depends": [
         "base-4.18.0.0",
         "deepseq-1.4.8.1",
-        "hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4",
+        "hashable-1.4.3.0-fa09dc739bc3ac124d6fb0122e78a2d32fbce2118312a0ea3fbf79ec62fb1803",
         "template-haskell-2.20.0.0"
       ],
       "exe-depends": [],
       "flags": {
         "debug": false
       },
-      "id": "unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99",
+      "id": "unordered-containers-0.2.19.1-c2eca776baf4fc617346651ed0756aa01198f94ae1b6c3ec26d525fc4e2d0d0b",
       "pkg-cabal-sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
       "pkg-name": "unordered-containers",
       "pkg-src": {
diff --git a/hadrian/bootstrap/plan-9_6_2.json b/hadrian/bootstrap/plan-9_6_2.json
index 413f575887b0..fb566bfdb665 100644
--- a/hadrian/bootstrap/plan-9_6_2.json
+++ b/hadrian/bootstrap/plan-9_6_2.json
@@ -5,9 +5,8 @@
   "compiler-id": "ghc-9.6.2",
   "install-plan": [
     {
-      "component-name": "lib",
       "depends": [
-        "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
+        "Cabal-syntax-3.10.1.0",
         "array-0.5.5.0",
         "base-4.18.0.0",
         "bytestring-0.11.4.0",
@@ -24,25 +23,12 @@
         "transformers-0.6.1.0",
         "unix-2.8.1.0"
       ],
-      "exe-depends": [],
-      "flags": {},
-      "id": "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
-      "pkg-cabal-sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
+      "id": "Cabal-3.10.1.0",
       "pkg-name": "Cabal",
-      "pkg-src": {
-        "repo": {
-          "type": "secure-repo",
-          "uri": "http://hackage.haskell.org/"
-        },
-        "type": "repo-tar"
-      },
-      "pkg-src-sha256": "0bdbab8e4c3178016fb0f070d8b62bc3067f93afabfbd3aa17c8065d0ecc98ee",
       "pkg-version": "3.10.1.0",
-      "style": "global",
-      "type": "configured"
+      "type": "pre-existing"
     },
     {
-      "component-name": "lib",
       "depends": [
         "array-0.5.5.0",
         "base-4.18.0.0",
@@ -60,22 +46,10 @@
         "transformers-0.6.1.0",
         "unix-2.8.1.0"
       ],
-      "exe-depends": [],
-      "flags": {},
-      "id": "Cabal-syntax-3.10.1.0-a7e09e0ed12b8981fd4bb5283acfafac1e1e07aeb2b44507502ae461bb01f1b4",
-      "pkg-cabal-sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
+      "id": "Cabal-syntax-3.10.1.0",
       "pkg-name": "Cabal-syntax",
-      "pkg-src": {
-        "repo": {
-          "type": "secure-repo",
-          "uri": "http://hackage.haskell.org/"
-        },
-        "type": "repo-tar"
-      },
-      "pkg-src-sha256": "3b80092355327768a0de8298ac50ee906b7e82462e2ba14542730573b453f522",
       "pkg-version": "3.10.1.0",
-      "style": "global",
-      "type": "configured"
+      "type": "pre-existing"
     },
     {
       "depends": [
@@ -106,7 +80,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "base16-bytestring-1.0.2.0-53ed4e283858e02cbf91231d1ff6b983d0bc92a6868605ebee0c8b080a87d802",
-      "pkg-cabal-sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "pkg-name": "base16-bytestring",
       "pkg-src": {
         "repo": {
@@ -153,8 +127,8 @@
       "flags": {
         "llvm": false
       },
-      "id": "clock-0.8.3-fa29d07640716502864195caccc6d4d733d2e9a6f3aef03f812f6773c2031d61",
-      "pkg-cabal-sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "id": "clock-0.8.4-4faceb736193c59834ecdeea1311018e03f8c666706c3be6e2af59ff1cb32f39",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "pkg-name": "clock",
       "pkg-src": {
         "repo": {
@@ -163,8 +137,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "pkg-version": "0.8.3",
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
       "style": "global",
       "type": "configured"
     },
@@ -192,7 +166,7 @@
         "use-cbits": true
       },
       "id": "cryptohash-sha256-0.11.102.1-416cb65d2ba2e911cfd127aac9042e29b4fde24e1038bc41573c028664a2129d",
-      "pkg-cabal-sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "pkg-name": "cryptohash-sha256",
       "pkg-src": {
         "repo": {
@@ -246,7 +220,7 @@
       "component-name": "lib",
       "depends": [
         "base-4.18.0.0",
-        "clock-0.8.3-fa29d07640716502864195caccc6d4d733d2e9a6f3aef03f812f6773c2031d61",
+        "clock-0.8.4-4faceb736193c59834ecdeea1311018e03f8c666706c3be6e2af59ff1cb32f39",
         "directory-1.3.8.1",
         "filepath-1.4.100.1",
         "process-1.6.17.0",
@@ -255,8 +229,8 @@
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "extra-1.7.12-66d5ea28661bc294ae48ee5c5c1f9c3dcd9c15223f2c29bbc866738acd6493c9",
-      "pkg-cabal-sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "id": "extra-1.7.14-8a107eea573f4887736761768ba87d6e46aaf7af34296143c18322b2937a7f72",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "pkg-name": "extra",
       "pkg-src": {
         "repo": {
@@ -265,8 +239,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "pkg-version": "1.7.12",
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
       "style": "global",
       "type": "configured"
     },
@@ -288,12 +262,12 @@
       "depends": [
         "base-4.18.0.0",
         "directory-1.3.8.1",
-        "extra-1.7.12-66d5ea28661bc294ae48ee5c5c1f9c3dcd9c15223f2c29bbc866738acd6493c9",
+        "extra-1.7.14-8a107eea573f4887736761768ba87d6e46aaf7af34296143c18322b2937a7f72",
         "filepath-1.4.100.1"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "filepattern-0.1.3-7d2f06a174fdc538912500214867109a6f62268fee720f1f717867534c115be9",
+      "id": "filepattern-0.1.3-c47ce75a6455744e5cfe5cc7369e4575f475f60626232210fd29e6eebe486d1a",
       "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
       "pkg-name": "filepattern",
       "pkg-src": {
@@ -327,18 +301,18 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/ghc-platform-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/ghc-platform-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.18.0.0"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/ghc-platform-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/ghc-platform-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-platform-0.1.0.0-inplace",
       "pkg-name": "ghc-platform",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../libraries/ghc-platform",
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -355,7 +329,7 @@
       "type": "pre-existing"
     },
     {
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/ghc-toolchain-0.1.0.0/build-info.json",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/ghc-toolchain-0.1.0.0/build-info.json",
       "component-name": "lib",
       "depends": [
         "base-4.18.0.0",
@@ -366,13 +340,13 @@
         "text-2.0.2",
         "transformers-0.6.1.0"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/ghc-toolchain-0.1.0.0",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/ghc-toolchain-0.1.0.0",
       "exe-depends": [],
       "flags": {},
       "id": "ghc-toolchain-0.1.0.0-inplace",
       "pkg-name": "ghc-toolchain",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/../utils/ghc-toolchain",
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -380,30 +354,30 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
-      "build-info": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/hadrian-0.1.0.0/x/hadrian/build-info.json",
       "component-name": "exe:hadrian",
       "depends": [
-        "Cabal-3.10.1.0-08e8e38266cef863dfe810047ea2fb0574df80fd2bdeee7f2fbd09dadd0ddc38",
+        "Cabal-3.10.1.0",
         "base-4.18.0.0",
         "base16-bytestring-1.0.2.0-53ed4e283858e02cbf91231d1ff6b983d0bc92a6868605ebee0c8b080a87d802",
         "bytestring-0.11.4.0",
         "containers-0.6.7",
         "cryptohash-sha256-0.11.102.1-416cb65d2ba2e911cfd127aac9042e29b4fde24e1038bc41573c028664a2129d",
         "directory-1.3.8.1",
-        "extra-1.7.12-66d5ea28661bc294ae48ee5c5c1f9c3dcd9c15223f2c29bbc866738acd6493c9",
+        "extra-1.7.14-8a107eea573f4887736761768ba87d6e46aaf7af34296143c18322b2937a7f72",
         "filepath-1.4.100.1",
         "ghc-platform-0.1.0.0-inplace",
         "ghc-toolchain-0.1.0.0-inplace",
         "mtl-2.3.1",
         "parsec-3.1.16.1",
-        "shake-0.19.7-1bc6bfe7a2256cae471b2c5f47c26dff8e74dc398756c6509cf0e167dd8a93f4",
+        "shake-0.19.7-632134969c9258f0ad3b91ced6c1da51cbff69b37ea66bfd4c13106b8ef9398c",
         "text-2.0.2",
         "time-1.12.2",
         "transformers-0.6.1.0",
-        "unordered-containers-0.2.19.1-275e0d519a94616dfc2e6c521bb36eb6126f2e65f16f8ea692a1a58b37e507fe"
+        "unordered-containers-0.2.19.1-7787c3bb22d737a5bf8288fcb0729fed0251ae813c48daa4b7d7392c7c7eff03"
       ],
-      "dist-dir": "/home/matt/ghc-bootstrap/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/hadrian-0.1.0.0/x/hadrian",
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.2/hadrian-0.1.0.0/x/hadrian",
       "exe-depends": [],
       "flags": {
         "selftest": false,
@@ -412,7 +386,7 @@
       "id": "hadrian-0.1.0.0-inplace-hadrian",
       "pkg-name": "hadrian",
       "pkg-src": {
-        "path": "/home/matt/ghc-bootstrap/hadrian/.",
+        "path": "/home/matt/ghc-clean/hadrian/.",
         "type": "local"
       },
       "pkg-version": "0.1.0.0",
@@ -436,8 +410,8 @@
         "integer-gmp": true,
         "random-initial-seed": false
       },
-      "id": "hashable-1.4.2.0-bd54a516580c7069cc2f4fc70f9822afde7c7143c81e1e601b62784493c2ff53",
-      "pkg-cabal-sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "id": "hashable-1.4.3.0-12b4c106ea9997dda7b5804951ce00ac340b072a43a6d57468ee2eafd06e476d",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "pkg-name": "hashable",
       "pkg-src": {
         "repo": {
@@ -446,8 +420,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "pkg-version": "1.4.2.0",
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
       "style": "global",
       "type": "configured"
     },
@@ -583,7 +557,7 @@
       "exe-depends": [],
       "flags": {},
       "id": "primitive-0.8.0.0-71df968629ed55f39ba9d58a7727f3762a6aaadfe4267e8b12b6a73392407f07",
-      "pkg-cabal-sha256": "826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
       "pkg-name": "primitive",
       "pkg-src": {
         "repo": {
@@ -617,12 +591,12 @@
         "bytestring-0.11.4.0",
         "deepseq-1.4.8.1",
         "mtl-2.3.1",
-        "splitmix-0.1.0.4-bdb435860672a71aa2e76fcd96f3124f558293a082700121addb19dd682caeae"
+        "splitmix-0.1.0.5-45c2b5591fdddc5bd30ded60ad57c8a2d8c1ddf8a6bf2a75ef76a2528c94b230"
       ],
       "exe-depends": [],
       "flags": {},
-      "id": "random-1.2.1.1-f4e6f37178be563efc8a42cd5dc73b25970c63f5787d6b71b822326cb1c61394",
-      "pkg-cabal-sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "id": "random-1.2.1.1-d7e9d1381b0228cade5383187d29d5917a4d002409155e9fe7cca4224924be1d",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "pkg-name": "random",
       "pkg-src": {
         "repo": {
@@ -651,21 +625,21 @@
         "bytestring-0.11.4.0",
         "deepseq-1.4.8.1",
         "directory-1.3.8.1",
-        "extra-1.7.12-66d5ea28661bc294ae48ee5c5c1f9c3dcd9c15223f2c29bbc866738acd6493c9",
+        "extra-1.7.14-8a107eea573f4887736761768ba87d6e46aaf7af34296143c18322b2937a7f72",
         "filepath-1.4.100.1",
-        "filepattern-0.1.3-7d2f06a174fdc538912500214867109a6f62268fee720f1f717867534c115be9",
-        "hashable-1.4.2.0-bd54a516580c7069cc2f4fc70f9822afde7c7143c81e1e601b62784493c2ff53",
+        "filepattern-0.1.3-c47ce75a6455744e5cfe5cc7369e4575f475f60626232210fd29e6eebe486d1a",
+        "hashable-1.4.3.0-12b4c106ea9997dda7b5804951ce00ac340b072a43a6d57468ee2eafd06e476d",
         "heaps-0.4-e780877104588c1b10a67a5aae3c0cd6a6a8f27aefe3d4a839b825c4892f8d5e",
         "js-dgtable-0.5.2-ac981654e6f161f9ae1994f00a961b6578ab18a1d0f487c3ea6cd89f93c0a3c8",
         "js-flot-0.8.3-bdd1fcc0842f60a8b532d63ef76ed02d43736c0b008305eed81753cba7d5a758",
         "js-jquery-3.3.1-ec81a4a89ca6fb90a7b5b94ed963d6d4ecae68f1fdb3f5a82090dcfd79583dbf",
         "primitive-0.8.0.0-71df968629ed55f39ba9d58a7727f3762a6aaadfe4267e8b12b6a73392407f07",
         "process-1.6.17.0",
-        "random-1.2.1.1-f4e6f37178be563efc8a42cd5dc73b25970c63f5787d6b71b822326cb1c61394",
+        "random-1.2.1.1-d7e9d1381b0228cade5383187d29d5917a4d002409155e9fe7cca4224924be1d",
         "time-1.12.2",
         "transformers-0.6.1.0",
         "unix-2.8.1.0",
-        "unordered-containers-0.2.19.1-275e0d519a94616dfc2e6c521bb36eb6126f2e65f16f8ea692a1a58b37e507fe",
+        "unordered-containers-0.2.19.1-7787c3bb22d737a5bf8288fcb0729fed0251ae813c48daa4b7d7392c7c7eff03",
         "utf8-string-1.0.2-f9200a046ce7ec1ea78ce8e2bdd5606fb1959cbc89a851c8371244c443d178e8"
       ],
       "exe-depends": [],
@@ -674,7 +648,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-1bc6bfe7a2256cae471b2c5f47c26dff8e74dc398756c6509cf0e167dd8a93f4",
+      "id": "shake-0.19.7-632134969c9258f0ad3b91ced6c1da51cbff69b37ea66bfd4c13106b8ef9398c",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -690,7 +664,7 @@
       "type": "configured"
     },
     {
-      "bin-file": "/home/matt/.cabal/store/ghc-9.6.2/shake-0.19.7-e-shake-fe6d16e046af8213ac87fb184283af5a4060b03aa7617bf7bcf87fc48621573d/bin/shake",
+      "bin-file": "/home/matt/.cabal/store/ghc-9.6.2/shake-0.19.7-e-shake-fe74cc6dbbea8d7e17d2769ca81df854de8cbaae5be4c6f6652d6e2071b440c0/bin/shake",
       "component-name": "exe:shake",
       "depends": [
         "base-4.18.0.0",
@@ -698,21 +672,21 @@
         "bytestring-0.11.4.0",
         "deepseq-1.4.8.1",
         "directory-1.3.8.1",
-        "extra-1.7.12-66d5ea28661bc294ae48ee5c5c1f9c3dcd9c15223f2c29bbc866738acd6493c9",
+        "extra-1.7.14-8a107eea573f4887736761768ba87d6e46aaf7af34296143c18322b2937a7f72",
         "filepath-1.4.100.1",
-        "filepattern-0.1.3-7d2f06a174fdc538912500214867109a6f62268fee720f1f717867534c115be9",
-        "hashable-1.4.2.0-bd54a516580c7069cc2f4fc70f9822afde7c7143c81e1e601b62784493c2ff53",
+        "filepattern-0.1.3-c47ce75a6455744e5cfe5cc7369e4575f475f60626232210fd29e6eebe486d1a",
+        "hashable-1.4.3.0-12b4c106ea9997dda7b5804951ce00ac340b072a43a6d57468ee2eafd06e476d",
         "heaps-0.4-e780877104588c1b10a67a5aae3c0cd6a6a8f27aefe3d4a839b825c4892f8d5e",
         "js-dgtable-0.5.2-ac981654e6f161f9ae1994f00a961b6578ab18a1d0f487c3ea6cd89f93c0a3c8",
         "js-flot-0.8.3-bdd1fcc0842f60a8b532d63ef76ed02d43736c0b008305eed81753cba7d5a758",
         "js-jquery-3.3.1-ec81a4a89ca6fb90a7b5b94ed963d6d4ecae68f1fdb3f5a82090dcfd79583dbf",
         "primitive-0.8.0.0-71df968629ed55f39ba9d58a7727f3762a6aaadfe4267e8b12b6a73392407f07",
         "process-1.6.17.0",
-        "random-1.2.1.1-f4e6f37178be563efc8a42cd5dc73b25970c63f5787d6b71b822326cb1c61394",
+        "random-1.2.1.1-d7e9d1381b0228cade5383187d29d5917a4d002409155e9fe7cca4224924be1d",
         "time-1.12.2",
         "transformers-0.6.1.0",
         "unix-2.8.1.0",
-        "unordered-containers-0.2.19.1-275e0d519a94616dfc2e6c521bb36eb6126f2e65f16f8ea692a1a58b37e507fe",
+        "unordered-containers-0.2.19.1-7787c3bb22d737a5bf8288fcb0729fed0251ae813c48daa4b7d7392c7c7eff03",
         "utf8-string-1.0.2-f9200a046ce7ec1ea78ce8e2bdd5606fb1959cbc89a851c8371244c443d178e8"
       ],
       "exe-depends": [],
@@ -721,7 +695,7 @@
         "embed-files": false,
         "portable": false
       },
-      "id": "shake-0.19.7-e-shake-fe6d16e046af8213ac87fb184283af5a4060b03aa7617bf7bcf87fc48621573d",
+      "id": "shake-0.19.7-e-shake-fe74cc6dbbea8d7e17d2769ca81df854de8cbaae5be4c6f6652d6e2071b440c0",
       "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
       "pkg-name": "shake",
       "pkg-src": {
@@ -746,8 +720,8 @@
       "flags": {
         "optimised-mixer": false
       },
-      "id": "splitmix-0.1.0.4-bdb435860672a71aa2e76fcd96f3124f558293a082700121addb19dd682caeae",
-      "pkg-cabal-sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "id": "splitmix-0.1.0.5-45c2b5591fdddc5bd30ded60ad57c8a2d8c1ddf8a6bf2a75ef76a2528c94b230",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "pkg-name": "splitmix",
       "pkg-src": {
         "repo": {
@@ -756,8 +730,8 @@
         },
         "type": "repo-tar"
       },
-      "pkg-src-sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "pkg-version": "0.1.0.4",
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
       "style": "global",
       "type": "configured"
     },
@@ -834,14 +808,14 @@
       "depends": [
         "base-4.18.0.0",
         "deepseq-1.4.8.1",
-        "hashable-1.4.2.0-bd54a516580c7069cc2f4fc70f9822afde7c7143c81e1e601b62784493c2ff53",
+        "hashable-1.4.3.0-12b4c106ea9997dda7b5804951ce00ac340b072a43a6d57468ee2eafd06e476d",
         "template-haskell-2.20.0.0"
       ],
       "exe-depends": [],
       "flags": {
         "debug": false
       },
-      "id": "unordered-containers-0.2.19.1-275e0d519a94616dfc2e6c521bb36eb6126f2e65f16f8ea692a1a58b37e507fe",
+      "id": "unordered-containers-0.2.19.1-7787c3bb22d737a5bf8288fcb0729fed0251ae813c48daa4b7d7392c7c7eff03",
       "pkg-cabal-sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
       "pkg-name": "unordered-containers",
       "pkg-src": {
diff --git a/hadrian/bootstrap/plan-9_6_3.json b/hadrian/bootstrap/plan-9_6_3.json
new file mode 100644
index 000000000000..748cf53823bb
--- /dev/null
+++ b/hadrian/bootstrap/plan-9_6_3.json
@@ -0,0 +1,858 @@
+{
+  "arch": "x86_64",
+  "cabal-lib-version": "3.10.1.0",
+  "cabal-version": "3.10.1.0",
+  "compiler-id": "ghc-9.6.3",
+  "install-plan": [
+    {
+      "depends": [
+        "Cabal-syntax-3.10.1.0",
+        "array-0.5.5.0",
+        "base-4.18.1.0",
+        "bytestring-0.11.5.2",
+        "containers-0.6.7",
+        "deepseq-1.4.8.1",
+        "directory-1.3.8.1",
+        "filepath-1.4.100.4",
+        "mtl-2.3.1",
+        "parsec-3.1.16.1",
+        "pretty-1.1.3.6",
+        "process-1.6.17.0",
+        "text-2.0.2",
+        "time-1.12.2",
+        "transformers-0.6.1.0",
+        "unix-2.8.1.0"
+      ],
+      "id": "Cabal-3.10.1.0",
+      "pkg-name": "Cabal",
+      "pkg-version": "3.10.1.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "array-0.5.5.0",
+        "base-4.18.1.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.5.2",
+        "containers-0.6.7",
+        "deepseq-1.4.8.1",
+        "directory-1.3.8.1",
+        "filepath-1.4.100.4",
+        "mtl-2.3.1",
+        "parsec-3.1.16.1",
+        "pretty-1.1.3.6",
+        "text-2.0.2",
+        "time-1.12.2",
+        "transformers-0.6.1.0",
+        "unix-2.8.1.0"
+      ],
+      "id": "Cabal-syntax-3.10.1.0",
+      "pkg-name": "Cabal-syntax",
+      "pkg-version": "3.10.1.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0"
+      ],
+      "id": "array-0.5.5.0",
+      "pkg-name": "array",
+      "pkg-version": "0.5.5.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "ghc-bignum-1.3",
+        "ghc-prim-0.10.0",
+        "rts-1.0.2"
+      ],
+      "id": "base-4.18.1.0",
+      "pkg-name": "base",
+      "pkg-version": "4.18.1.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "bytestring-0.11.5.2"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "base16-bytestring-1.0.2.0-ae55731097d17c7cf7f0fd479715fa36928753de86e14b57ac632066ec505a52",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "pkg-name": "base16-bytestring",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "pkg-version": "1.0.2.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.5.0",
+        "base-4.18.1.0",
+        "bytestring-0.11.5.2",
+        "containers-0.6.7"
+      ],
+      "id": "binary-0.8.9.1",
+      "pkg-name": "binary",
+      "pkg-version": "0.8.9.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "deepseq-1.4.8.1",
+        "ghc-prim-0.10.0",
+        "template-haskell-2.20.0.0"
+      ],
+      "id": "bytestring-0.11.5.2",
+      "pkg-name": "bytestring",
+      "pkg-version": "0.11.5.2",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "llvm": false
+      },
+      "id": "clock-0.8.4-7386c0b022b82342e0a56c2ceb4458dd458e0150841347ea1ea8994e6b54aa76",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
+      "pkg-name": "clock",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.5.0",
+        "base-4.18.1.0",
+        "deepseq-1.4.8.1",
+        "template-haskell-2.20.0.0"
+      ],
+      "id": "containers-0.6.7",
+      "pkg-name": "containers",
+      "pkg-version": "0.6.7",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "bytestring-0.11.5.2"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "exe": false,
+        "use-cbits": true
+      },
+      "id": "cryptohash-sha256-0.11.102.1-e6af0446c38ddaf9435de297c841e06f85dcd4000cb6fedf12a011fc748eb220",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
+      "pkg-name": "cryptohash-sha256",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "pkg-version": "0.11.102.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.5.0",
+        "base-4.18.1.0",
+        "ghc-prim-0.10.0"
+      ],
+      "id": "deepseq-1.4.8.1",
+      "pkg-name": "deepseq",
+      "pkg-version": "1.4.8.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "filepath-1.4.100.4",
+        "time-1.12.2",
+        "unix-2.8.1.0"
+      ],
+      "id": "directory-1.3.8.1",
+      "pkg-name": "directory",
+      "pkg-version": "1.3.8.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "mtl-2.3.1",
+        "stm-2.5.1.0",
+        "template-haskell-2.20.0.0",
+        "transformers-0.6.1.0"
+      ],
+      "id": "exceptions-0.10.7",
+      "pkg-name": "exceptions",
+      "pkg-version": "0.10.7",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "clock-0.8.4-7386c0b022b82342e0a56c2ceb4458dd458e0150841347ea1ea8994e6b54aa76",
+        "directory-1.3.8.1",
+        "filepath-1.4.100.4",
+        "process-1.6.17.0",
+        "time-1.12.2",
+        "unix-2.8.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "extra-1.7.14-643e98b50907a34b3f0b77f81c5670f7a48bb1bae729f5f66e2241488f13ed0a",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
+      "pkg-name": "extra",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "bytestring-0.11.5.2",
+        "deepseq-1.4.8.1",
+        "exceptions-0.10.7",
+        "template-haskell-2.20.0.0"
+      ],
+      "id": "filepath-1.4.100.4",
+      "pkg-name": "filepath",
+      "pkg-version": "1.4.100.4",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "directory-1.3.8.1",
+        "extra-1.7.14-643e98b50907a34b3f0b77f81c5670f7a48bb1bae729f5f66e2241488f13ed0a",
+        "filepath-1.4.100.4"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "filepattern-0.1.3-023bda32302a7e3459322db94b30cdc4a9f1f8ebe44ce90c0704a803ea14ed4c",
+      "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
+      "pkg-name": "filepattern",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636",
+      "pkg-version": "0.1.3",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "ghc-prim-0.10.0"
+      ],
+      "id": "ghc-bignum-1.3",
+      "pkg-name": "ghc-bignum",
+      "pkg-version": "1.3",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0"
+      ],
+      "id": "ghc-boot-th-9.6.3",
+      "pkg-name": "ghc-boot-th",
+      "pkg-version": "9.6.3",
+      "type": "pre-existing"
+    },
+    {
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.3/ghc-platform-0.1.0.0/build-info.json",
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.3/ghc-platform-0.1.0.0",
+      "exe-depends": [],
+      "flags": {},
+      "id": "ghc-platform-0.1.0.0-inplace",
+      "pkg-name": "ghc-platform",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "rts-1.0.2"
+      ],
+      "id": "ghc-prim-0.10.0",
+      "pkg-name": "ghc-prim",
+      "pkg-version": "0.10.0",
+      "type": "pre-existing"
+    },
+    {
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.3/ghc-toolchain-0.1.0.0/build-info.json",
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "directory-1.3.8.1",
+        "filepath-1.4.100.4",
+        "ghc-platform-0.1.0.0-inplace",
+        "process-1.6.17.0",
+        "text-2.0.2",
+        "transformers-0.6.1.0"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.3/ghc-toolchain-0.1.0.0",
+      "exe-depends": [],
+      "flags": {},
+      "id": "ghc-toolchain-0.1.0.0-inplace",
+      "pkg-name": "ghc-toolchain",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.3/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.3/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "component-name": "exe:hadrian",
+      "depends": [
+        "Cabal-3.10.1.0",
+        "base-4.18.1.0",
+        "base16-bytestring-1.0.2.0-ae55731097d17c7cf7f0fd479715fa36928753de86e14b57ac632066ec505a52",
+        "bytestring-0.11.5.2",
+        "containers-0.6.7",
+        "cryptohash-sha256-0.11.102.1-e6af0446c38ddaf9435de297c841e06f85dcd4000cb6fedf12a011fc748eb220",
+        "directory-1.3.8.1",
+        "extra-1.7.14-643e98b50907a34b3f0b77f81c5670f7a48bb1bae729f5f66e2241488f13ed0a",
+        "filepath-1.4.100.4",
+        "ghc-platform-0.1.0.0-inplace",
+        "ghc-toolchain-0.1.0.0-inplace",
+        "mtl-2.3.1",
+        "parsec-3.1.16.1",
+        "shake-0.19.7-fdccfb63d6418a00314ab88925721949939df9b3e7e34ae579a72c4006cbeaaa",
+        "text-2.0.2",
+        "time-1.12.2",
+        "transformers-0.6.1.0",
+        "unordered-containers-0.2.19.1-fe823f0c4c35e091e52d2033a63fb26d634c96f699768c5240411cca0b2d0108"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.3/hadrian-0.1.0.0/x/hadrian",
+      "exe-depends": [],
+      "flags": {
+        "selftest": false,
+        "threaded": true
+      },
+      "id": "hadrian-0.1.0.0-inplace-hadrian",
+      "pkg-name": "hadrian",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/.",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "bytestring-0.11.5.2",
+        "containers-0.6.7",
+        "deepseq-1.4.8.1",
+        "filepath-1.4.100.4",
+        "ghc-bignum-1.3",
+        "ghc-prim-0.10.0",
+        "text-2.0.2"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "integer-gmp": true,
+        "random-initial-seed": false
+      },
+      "id": "hashable-1.4.3.0-98acfc8d400a5c987d553ee7033a1f0d4393f505a0071034b204862e7038d80e",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
+      "pkg-name": "hashable",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "heaps-0.4-e34dfc55a93987b9f5b1b38d72a98b0f591b143a4f6e625ca3de0e430fad9733",
+      "pkg-cabal-sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
+      "pkg-name": "heaps",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd",
+      "pkg-version": "0.4",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-dgtable-0.5.2-b437b50378e91678ca1284e087b62a138383b7270088b307a582d94b5ce5be74",
+      "pkg-cabal-sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
+      "pkg-name": "js-dgtable",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac",
+      "pkg-version": "0.5.2",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-flot-0.8.3-c5d191154c48ef5492429826b9958cc5aa6870bf0ccbaf59fadf2a7bd839c329",
+      "pkg-cabal-sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
+      "pkg-name": "js-flot",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a",
+      "pkg-version": "0.8.3",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-jquery-3.3.1-1b60522f8392429aef634b3430fa995fa08f3fe23f90e4fa70e0356ec0b4b945",
+      "pkg-cabal-sha256": "59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5",
+      "pkg-name": "js-jquery",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b",
+      "pkg-version": "3.3.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "transformers-0.6.1.0"
+      ],
+      "id": "mtl-2.3.1",
+      "pkg-name": "mtl",
+      "pkg-version": "2.3.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "bytestring-0.11.5.2",
+        "mtl-2.3.1",
+        "text-2.0.2"
+      ],
+      "id": "parsec-3.1.16.1",
+      "pkg-name": "parsec",
+      "pkg-version": "3.1.16.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "deepseq-1.4.8.1",
+        "ghc-prim-0.10.0"
+      ],
+      "id": "pretty-1.1.3.6",
+      "pkg-name": "pretty",
+      "pkg-version": "1.1.3.6",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "deepseq-1.4.8.1",
+        "template-haskell-2.20.0.0",
+        "transformers-0.6.1.0"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "primitive-0.8.0.0-1668d91881d295d36b48f2796497f2026070412919828ab5bdf883bdf10dfdf1",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
+      "pkg-name": "primitive",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f",
+      "pkg-version": "0.8.0.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "deepseq-1.4.8.1",
+        "directory-1.3.8.1",
+        "filepath-1.4.100.4",
+        "unix-2.8.1.0"
+      ],
+      "id": "process-1.6.17.0",
+      "pkg-name": "process",
+      "pkg-version": "1.6.17.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "bytestring-0.11.5.2",
+        "deepseq-1.4.8.1",
+        "mtl-2.3.1",
+        "splitmix-0.1.0.5-4d43824a2aa15437e433f1a344653af933edf881ad9f72fc820c1c827832bfcb"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "random-1.2.1.1-f75323201d1b45182ed9370fb261ee029c5dbe1b59bf181cffc1aadffc6d66a4",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
+      "pkg-name": "random",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
+      "pkg-version": "1.2.1.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [],
+      "id": "rts-1.0.2",
+      "pkg-name": "rts",
+      "pkg-version": "1.0.2",
+      "type": "pre-existing"
+    },
+    {
+      "bin-file": "/home/matt/.cabal/store/ghc-9.6.3/shake-0.19.7-e-shake-5c1e2122422c9d55c160c29bae9a01681ac27fcb0b1b786e8ea5affc9167a178/bin/shake",
+      "component-name": "exe:shake",
+      "depends": [
+        "base-4.18.1.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.5.2",
+        "deepseq-1.4.8.1",
+        "directory-1.3.8.1",
+        "extra-1.7.14-643e98b50907a34b3f0b77f81c5670f7a48bb1bae729f5f66e2241488f13ed0a",
+        "filepath-1.4.100.4",
+        "filepattern-0.1.3-023bda32302a7e3459322db94b30cdc4a9f1f8ebe44ce90c0704a803ea14ed4c",
+        "hashable-1.4.3.0-98acfc8d400a5c987d553ee7033a1f0d4393f505a0071034b204862e7038d80e",
+        "heaps-0.4-e34dfc55a93987b9f5b1b38d72a98b0f591b143a4f6e625ca3de0e430fad9733",
+        "js-dgtable-0.5.2-b437b50378e91678ca1284e087b62a138383b7270088b307a582d94b5ce5be74",
+        "js-flot-0.8.3-c5d191154c48ef5492429826b9958cc5aa6870bf0ccbaf59fadf2a7bd839c329",
+        "js-jquery-3.3.1-1b60522f8392429aef634b3430fa995fa08f3fe23f90e4fa70e0356ec0b4b945",
+        "primitive-0.8.0.0-1668d91881d295d36b48f2796497f2026070412919828ab5bdf883bdf10dfdf1",
+        "process-1.6.17.0",
+        "random-1.2.1.1-f75323201d1b45182ed9370fb261ee029c5dbe1b59bf181cffc1aadffc6d66a4",
+        "time-1.12.2",
+        "transformers-0.6.1.0",
+        "unix-2.8.1.0",
+        "unordered-containers-0.2.19.1-fe823f0c4c35e091e52d2033a63fb26d634c96f699768c5240411cca0b2d0108",
+        "utf8-string-1.0.2-69ad192ae12a3b93ccfced59c25372c6f25a740769bc62bd92345e6615fb409e"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "cloud": false,
+        "embed-files": false,
+        "portable": false
+      },
+      "id": "shake-0.19.7-e-shake-5c1e2122422c9d55c160c29bae9a01681ac27fcb0b1b786e8ea5affc9167a178",
+      "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "pkg-name": "shake",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "pkg-version": "0.19.7",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.5.2",
+        "deepseq-1.4.8.1",
+        "directory-1.3.8.1",
+        "extra-1.7.14-643e98b50907a34b3f0b77f81c5670f7a48bb1bae729f5f66e2241488f13ed0a",
+        "filepath-1.4.100.4",
+        "filepattern-0.1.3-023bda32302a7e3459322db94b30cdc4a9f1f8ebe44ce90c0704a803ea14ed4c",
+        "hashable-1.4.3.0-98acfc8d400a5c987d553ee7033a1f0d4393f505a0071034b204862e7038d80e",
+        "heaps-0.4-e34dfc55a93987b9f5b1b38d72a98b0f591b143a4f6e625ca3de0e430fad9733",
+        "js-dgtable-0.5.2-b437b50378e91678ca1284e087b62a138383b7270088b307a582d94b5ce5be74",
+        "js-flot-0.8.3-c5d191154c48ef5492429826b9958cc5aa6870bf0ccbaf59fadf2a7bd839c329",
+        "js-jquery-3.3.1-1b60522f8392429aef634b3430fa995fa08f3fe23f90e4fa70e0356ec0b4b945",
+        "primitive-0.8.0.0-1668d91881d295d36b48f2796497f2026070412919828ab5bdf883bdf10dfdf1",
+        "process-1.6.17.0",
+        "random-1.2.1.1-f75323201d1b45182ed9370fb261ee029c5dbe1b59bf181cffc1aadffc6d66a4",
+        "time-1.12.2",
+        "transformers-0.6.1.0",
+        "unix-2.8.1.0",
+        "unordered-containers-0.2.19.1-fe823f0c4c35e091e52d2033a63fb26d634c96f699768c5240411cca0b2d0108",
+        "utf8-string-1.0.2-69ad192ae12a3b93ccfced59c25372c6f25a740769bc62bd92345e6615fb409e"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "cloud": false,
+        "embed-files": false,
+        "portable": false
+      },
+      "id": "shake-0.19.7-fdccfb63d6418a00314ab88925721949939df9b3e7e34ae579a72c4006cbeaaa",
+      "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "pkg-name": "shake",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "pkg-version": "0.19.7",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "deepseq-1.4.8.1"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "optimised-mixer": false
+      },
+      "id": "splitmix-0.1.0.5-4d43824a2aa15437e433f1a344653af933edf881ad9f72fc820c1c827832bfcb",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
+      "pkg-name": "splitmix",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.5.0",
+        "base-4.18.1.0"
+      ],
+      "id": "stm-2.5.1.0",
+      "pkg-name": "stm",
+      "pkg-version": "2.5.1.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "ghc-boot-th-9.6.3",
+        "ghc-prim-0.10.0",
+        "pretty-1.1.3.6"
+      ],
+      "id": "template-haskell-2.20.0.0",
+      "pkg-name": "template-haskell",
+      "pkg-version": "2.20.0.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "array-0.5.5.0",
+        "base-4.18.1.0",
+        "binary-0.8.9.1",
+        "bytestring-0.11.5.2",
+        "deepseq-1.4.8.1",
+        "ghc-prim-0.10.0",
+        "template-haskell-2.20.0.0"
+      ],
+      "id": "text-2.0.2",
+      "pkg-name": "text",
+      "pkg-version": "2.0.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "deepseq-1.4.8.1"
+      ],
+      "id": "time-1.12.2",
+      "pkg-name": "time",
+      "pkg-version": "1.12.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0"
+      ],
+      "id": "transformers-0.6.1.0",
+      "pkg-name": "transformers",
+      "pkg-version": "0.6.1.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.18.1.0",
+        "bytestring-0.11.5.2",
+        "filepath-1.4.100.4",
+        "time-1.12.2"
+      ],
+      "id": "unix-2.8.1.0",
+      "pkg-name": "unix",
+      "pkg-version": "2.8.1.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "deepseq-1.4.8.1",
+        "hashable-1.4.3.0-98acfc8d400a5c987d553ee7033a1f0d4393f505a0071034b204862e7038d80e",
+        "template-haskell-2.20.0.0"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "debug": false
+      },
+      "id": "unordered-containers-0.2.19.1-fe823f0c4c35e091e52d2033a63fb26d634c96f699768c5240411cca0b2d0108",
+      "pkg-cabal-sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
+      "pkg-name": "unordered-containers",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
+      "pkg-version": "0.2.19.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.18.1.0",
+        "bytestring-0.11.5.2"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "utf8-string-1.0.2-69ad192ae12a3b93ccfced59c25372c6f25a740769bc62bd92345e6615fb409e",
+      "pkg-cabal-sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
+      "pkg-name": "utf8-string",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a",
+      "pkg-version": "1.0.2",
+      "style": "global",
+      "type": "configured"
+    }
+  ],
+  "os": "linux"
+}
diff --git a/hadrian/bootstrap/plan-9_8_1.json b/hadrian/bootstrap/plan-9_8_1.json
new file mode 100644
index 000000000000..42b92c470446
--- /dev/null
+++ b/hadrian/bootstrap/plan-9_8_1.json
@@ -0,0 +1,857 @@
+{
+  "arch": "x86_64",
+  "cabal-lib-version": "3.10.1.0",
+  "cabal-version": "3.10.1.0",
+  "compiler-id": "ghc-9.8.1",
+  "install-plan": [
+    {
+      "depends": [
+        "Cabal-syntax-3.10.2.0-inplace",
+        "array-0.5.6.0-inplace",
+        "base-4.19.0.0-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "containers-0.6.8-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "directory-1.3.8.1-inplace",
+        "filepath-1.4.100.4-inplace",
+        "mtl-2.3.1-inplace",
+        "parsec-3.1.17.0-inplace",
+        "pretty-1.1.3.6-inplace",
+        "process-1.6.18.0-inplace",
+        "text-2.1-inplace",
+        "time-1.12.2-inplace",
+        "transformers-0.6.1.0-inplace",
+        "unix-2.8.3.0-inplace"
+      ],
+      "id": "Cabal-3.10.2.0-inplace",
+      "pkg-name": "Cabal",
+      "pkg-version": "3.10.2.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "array-0.5.6.0-inplace",
+        "base-4.19.0.0-inplace",
+        "binary-0.8.9.1-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "containers-0.6.8-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "directory-1.3.8.1-inplace",
+        "filepath-1.4.100.4-inplace",
+        "mtl-2.3.1-inplace",
+        "parsec-3.1.17.0-inplace",
+        "pretty-1.1.3.6-inplace",
+        "text-2.1-inplace",
+        "time-1.12.2-inplace",
+        "transformers-0.6.1.0-inplace",
+        "unix-2.8.3.0-inplace"
+      ],
+      "id": "Cabal-syntax-3.10.2.0-inplace",
+      "pkg-name": "Cabal-syntax",
+      "pkg-version": "3.10.2.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace"
+      ],
+      "id": "array-0.5.6.0-inplace",
+      "pkg-name": "array",
+      "pkg-version": "0.5.6.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "ghc-bignum-1.3-inplace",
+        "ghc-prim-0.11.0-inplace",
+        "rts-1.0.2"
+      ],
+      "id": "base-4.19.0.0-inplace",
+      "pkg-name": "base",
+      "pkg-version": "4.19.0.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "bytestring-0.12.0.2-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "base16-bytestring-1.0.2.0-17d94f1fba040089337ca54a068a400645fb0c4b1f2965acae897ab2c5f2b83f",
+      "pkg-cabal-sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "pkg-name": "base16-bytestring",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "pkg-version": "1.0.2.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.6.0-inplace",
+        "base-4.19.0.0-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "containers-0.6.8-inplace"
+      ],
+      "id": "binary-0.8.9.1-inplace",
+      "pkg-name": "binary",
+      "pkg-version": "0.8.9.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "ghc-prim-0.11.0-inplace",
+        "template-haskell-2.21.0.0-inplace"
+      ],
+      "id": "bytestring-0.12.0.2-inplace",
+      "pkg-name": "bytestring",
+      "pkg-version": "0.12.0.2",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "llvm": false
+      },
+      "id": "clock-0.8.4-5f68ac08de36f63980bcdc6672245d21a7703bc3184003659cfb0ea080b0b666",
+      "pkg-cabal-sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
+      "pkg-name": "clock",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "pkg-version": "0.8.4",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.6.0-inplace",
+        "base-4.19.0.0-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "template-haskell-2.21.0.0-inplace"
+      ],
+      "id": "containers-0.6.8-inplace",
+      "pkg-name": "containers",
+      "pkg-version": "0.6.8",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "bytestring-0.12.0.2-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "exe": false,
+        "use-cbits": true
+      },
+      "id": "cryptohash-sha256-0.11.102.1-5f21dc99072e5d4006d017faf461a95f8e2830fd070a198d72ccf0353927a7e7",
+      "pkg-cabal-sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
+      "pkg-name": "cryptohash-sha256",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "pkg-version": "0.11.102.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.6.0-inplace",
+        "base-4.19.0.0-inplace",
+        "ghc-prim-0.11.0-inplace"
+      ],
+      "id": "deepseq-1.5.0.0-inplace",
+      "pkg-name": "deepseq",
+      "pkg-version": "1.5.0.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "filepath-1.4.100.4-inplace",
+        "time-1.12.2-inplace",
+        "unix-2.8.3.0-inplace"
+      ],
+      "id": "directory-1.3.8.1-inplace",
+      "pkg-name": "directory",
+      "pkg-version": "1.3.8.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "mtl-2.3.1-inplace",
+        "stm-2.5.2.1-inplace",
+        "template-haskell-2.21.0.0-inplace",
+        "transformers-0.6.1.0-inplace"
+      ],
+      "id": "exceptions-0.10.7-inplace",
+      "pkg-name": "exceptions",
+      "pkg-version": "0.10.7",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "clock-0.8.4-5f68ac08de36f63980bcdc6672245d21a7703bc3184003659cfb0ea080b0b666",
+        "directory-1.3.8.1-inplace",
+        "filepath-1.4.100.4-inplace",
+        "process-1.6.18.0-inplace",
+        "time-1.12.2-inplace",
+        "unix-2.8.3.0-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "extra-1.7.14-9c5b04f94b42bf9a3692bad2eac0dc7d5c36111ac2cbce3ee8f69aa52be043b1",
+      "pkg-cabal-sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
+      "pkg-name": "extra",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "pkg-version": "1.7.14",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "exceptions-0.10.7-inplace",
+        "template-haskell-2.21.0.0-inplace"
+      ],
+      "id": "filepath-1.4.100.4-inplace",
+      "pkg-name": "filepath",
+      "pkg-version": "1.4.100.4",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "directory-1.3.8.1-inplace",
+        "extra-1.7.14-9c5b04f94b42bf9a3692bad2eac0dc7d5c36111ac2cbce3ee8f69aa52be043b1",
+        "filepath-1.4.100.4-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "filepattern-0.1.3-f7ee7cfe55b3519d33d1ee94a8c2c4f61d9798cc2fad0be84a4cd913d38f8cf8",
+      "pkg-cabal-sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
+      "pkg-name": "filepattern",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636",
+      "pkg-version": "0.1.3",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "ghc-prim-0.11.0-inplace"
+      ],
+      "id": "ghc-bignum-1.3-inplace",
+      "pkg-name": "ghc-bignum",
+      "pkg-version": "1.3",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace"
+      ],
+      "id": "ghc-boot-th-9.8.1-inplace",
+      "pkg-name": "ghc-boot-th",
+      "pkg-version": "9.8.1",
+      "type": "pre-existing"
+    },
+    {
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.8.1/ghc-platform-0.1.0.0/build-info.json",
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.8.1/ghc-platform-0.1.0.0",
+      "exe-depends": [],
+      "flags": {},
+      "id": "ghc-platform-0.1.0.0-inplace",
+      "pkg-name": "ghc-platform",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/../libraries/ghc-platform",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "rts-1.0.2"
+      ],
+      "id": "ghc-prim-0.11.0-inplace",
+      "pkg-name": "ghc-prim",
+      "pkg-version": "0.11.0",
+      "type": "pre-existing"
+    },
+    {
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.8.1/ghc-toolchain-0.1.0.0/build-info.json",
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "directory-1.3.8.1-inplace",
+        "filepath-1.4.100.4-inplace",
+        "ghc-platform-0.1.0.0-inplace",
+        "process-1.6.18.0-inplace",
+        "text-2.1-inplace",
+        "transformers-0.6.1.0-inplace"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.8.1/ghc-toolchain-0.1.0.0",
+      "exe-depends": [],
+      "flags": {},
+      "id": "ghc-toolchain-0.1.0.0-inplace",
+      "pkg-name": "ghc-toolchain",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/../utils/ghc-toolchain",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "bin-file": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.8.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian",
+      "build-info": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.8.1/hadrian-0.1.0.0/x/hadrian/build-info.json",
+      "component-name": "exe:hadrian",
+      "depends": [
+        "Cabal-3.10.2.0-inplace",
+        "base-4.19.0.0-inplace",
+        "base16-bytestring-1.0.2.0-17d94f1fba040089337ca54a068a400645fb0c4b1f2965acae897ab2c5f2b83f",
+        "bytestring-0.12.0.2-inplace",
+        "containers-0.6.8-inplace",
+        "cryptohash-sha256-0.11.102.1-5f21dc99072e5d4006d017faf461a95f8e2830fd070a198d72ccf0353927a7e7",
+        "directory-1.3.8.1-inplace",
+        "extra-1.7.14-9c5b04f94b42bf9a3692bad2eac0dc7d5c36111ac2cbce3ee8f69aa52be043b1",
+        "filepath-1.4.100.4-inplace",
+        "ghc-platform-0.1.0.0-inplace",
+        "ghc-toolchain-0.1.0.0-inplace",
+        "mtl-2.3.1-inplace",
+        "parsec-3.1.17.0-inplace",
+        "shake-0.19.7-ec2c710d69dee2727cfc122484680c3d2ab5d17abccad8174be48090a3acf496",
+        "text-2.1-inplace",
+        "time-1.12.2-inplace",
+        "transformers-0.6.1.0-inplace",
+        "unordered-containers-0.2.16.0-c34a599fb16c5433a94b5ce03b72e80c3b86ba6e6c0a00c8ed34054b475d154a"
+      ],
+      "dist-dir": "/home/matt/ghc-clean/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.8.1/hadrian-0.1.0.0/x/hadrian",
+      "exe-depends": [],
+      "flags": {
+        "selftest": false,
+        "threaded": true
+      },
+      "id": "hadrian-0.1.0.0-inplace-hadrian",
+      "pkg-name": "hadrian",
+      "pkg-src": {
+        "path": "/home/matt/ghc-clean/hadrian/.",
+        "type": "local"
+      },
+      "pkg-version": "0.1.0.0",
+      "style": "local",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "containers-0.6.8-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "filepath-1.4.100.4-inplace",
+        "ghc-bignum-1.3-inplace",
+        "ghc-prim-0.11.0-inplace",
+        "text-2.1-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "integer-gmp": true,
+        "random-initial-seed": false
+      },
+      "id": "hashable-1.4.3.0-77ca0779bbc0510ce86b1f6af91c03d74598123dc2cbbf94ff3ecf0284051ea2",
+      "pkg-cabal-sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
+      "pkg-name": "hashable",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "pkg-version": "1.4.3.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "heaps-0.4-25f07c98de56cb9720e364e28701d61ecea149f9c978237f147c08387c39a7d7",
+      "pkg-cabal-sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
+      "pkg-name": "heaps",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd",
+      "pkg-version": "0.4",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-dgtable-0.5.2-a5f91f80ab9e3352881bbbaa8ee2b28ba0c7ae455b5c3940a59521756a1ef4a7",
+      "pkg-cabal-sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
+      "pkg-name": "js-dgtable",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac",
+      "pkg-version": "0.5.2",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-flot-0.8.3-0f2f3dd7039d7dc63ddbbf1ae980a8588c9ad5e234a25246d6ba5c06a72b15dc",
+      "pkg-cabal-sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
+      "pkg-name": "js-flot",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a",
+      "pkg-version": "0.8.3",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "js-jquery-3.3.1-d2d7c911802e517dcffc5814b7e66573b178d2b0e17b1093389d3b7e3a7ed0a4",
+      "pkg-cabal-sha256": "59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5",
+      "pkg-name": "js-jquery",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b",
+      "pkg-version": "3.3.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "transformers-0.6.1.0-inplace"
+      ],
+      "id": "mtl-2.3.1-inplace",
+      "pkg-name": "mtl",
+      "pkg-version": "2.3.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "mtl-2.3.1-inplace",
+        "text-2.1-inplace"
+      ],
+      "id": "parsec-3.1.17.0-inplace",
+      "pkg-name": "parsec",
+      "pkg-version": "3.1.17.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "ghc-prim-0.11.0-inplace"
+      ],
+      "id": "pretty-1.1.3.6-inplace",
+      "pkg-name": "pretty",
+      "pkg-version": "1.1.3.6",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "template-haskell-2.21.0.0-inplace",
+        "transformers-0.6.1.0-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "primitive-0.8.0.0-72102eb1ca94954996686f3eb29c11158812a4abe0ed8b90985b4a5e8ba3d0cb",
+      "pkg-cabal-sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
+      "pkg-name": "primitive",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f",
+      "pkg-version": "0.8.0.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "directory-1.3.8.1-inplace",
+        "filepath-1.4.100.4-inplace",
+        "unix-2.8.3.0-inplace"
+      ],
+      "id": "process-1.6.18.0-inplace",
+      "pkg-name": "process",
+      "pkg-version": "1.6.18.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "mtl-2.3.1-inplace",
+        "splitmix-0.1.0.5-85ad3ec969d2b29844001d76852bb47656f824325992f8640a6a3241cc7852fd"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "random-1.2.1.1-73ccda939adef731b4780da13de34ed2cda29f0a451e053d3667849ef671d01b",
+      "pkg-cabal-sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
+      "pkg-name": "random",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
+      "pkg-version": "1.2.1.1",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [],
+      "id": "rts-1.0.2",
+      "pkg-name": "rts",
+      "pkg-version": "1.0.2",
+      "type": "pre-existing"
+    },
+    {
+      "bin-file": "/home/matt/.cabal/store/ghc-9.8.1/shake-0.19.7-e-shake-43eb142a9d59d6f7953de7e97c693084529f741d2061f640397b278701bf602d/bin/shake",
+      "component-name": "exe:shake",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "binary-0.8.9.1-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "directory-1.3.8.1-inplace",
+        "extra-1.7.14-9c5b04f94b42bf9a3692bad2eac0dc7d5c36111ac2cbce3ee8f69aa52be043b1",
+        "filepath-1.4.100.4-inplace",
+        "filepattern-0.1.3-f7ee7cfe55b3519d33d1ee94a8c2c4f61d9798cc2fad0be84a4cd913d38f8cf8",
+        "hashable-1.4.3.0-77ca0779bbc0510ce86b1f6af91c03d74598123dc2cbbf94ff3ecf0284051ea2",
+        "heaps-0.4-25f07c98de56cb9720e364e28701d61ecea149f9c978237f147c08387c39a7d7",
+        "js-dgtable-0.5.2-a5f91f80ab9e3352881bbbaa8ee2b28ba0c7ae455b5c3940a59521756a1ef4a7",
+        "js-flot-0.8.3-0f2f3dd7039d7dc63ddbbf1ae980a8588c9ad5e234a25246d6ba5c06a72b15dc",
+        "js-jquery-3.3.1-d2d7c911802e517dcffc5814b7e66573b178d2b0e17b1093389d3b7e3a7ed0a4",
+        "primitive-0.8.0.0-72102eb1ca94954996686f3eb29c11158812a4abe0ed8b90985b4a5e8ba3d0cb",
+        "process-1.6.18.0-inplace",
+        "random-1.2.1.1-73ccda939adef731b4780da13de34ed2cda29f0a451e053d3667849ef671d01b",
+        "time-1.12.2-inplace",
+        "transformers-0.6.1.0-inplace",
+        "unix-2.8.3.0-inplace",
+        "unordered-containers-0.2.16.0-c34a599fb16c5433a94b5ce03b72e80c3b86ba6e6c0a00c8ed34054b475d154a",
+        "utf8-string-1.0.2-1dee6db0a19774ac102b5fdaae4a12ab0ad9249645748d5c2c1db2f578309df5"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "cloud": false,
+        "embed-files": false,
+        "portable": false
+      },
+      "id": "shake-0.19.7-e-shake-43eb142a9d59d6f7953de7e97c693084529f741d2061f640397b278701bf602d",
+      "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "pkg-name": "shake",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "pkg-version": "0.19.7",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "binary-0.8.9.1-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "directory-1.3.8.1-inplace",
+        "extra-1.7.14-9c5b04f94b42bf9a3692bad2eac0dc7d5c36111ac2cbce3ee8f69aa52be043b1",
+        "filepath-1.4.100.4-inplace",
+        "filepattern-0.1.3-f7ee7cfe55b3519d33d1ee94a8c2c4f61d9798cc2fad0be84a4cd913d38f8cf8",
+        "hashable-1.4.3.0-77ca0779bbc0510ce86b1f6af91c03d74598123dc2cbbf94ff3ecf0284051ea2",
+        "heaps-0.4-25f07c98de56cb9720e364e28701d61ecea149f9c978237f147c08387c39a7d7",
+        "js-dgtable-0.5.2-a5f91f80ab9e3352881bbbaa8ee2b28ba0c7ae455b5c3940a59521756a1ef4a7",
+        "js-flot-0.8.3-0f2f3dd7039d7dc63ddbbf1ae980a8588c9ad5e234a25246d6ba5c06a72b15dc",
+        "js-jquery-3.3.1-d2d7c911802e517dcffc5814b7e66573b178d2b0e17b1093389d3b7e3a7ed0a4",
+        "primitive-0.8.0.0-72102eb1ca94954996686f3eb29c11158812a4abe0ed8b90985b4a5e8ba3d0cb",
+        "process-1.6.18.0-inplace",
+        "random-1.2.1.1-73ccda939adef731b4780da13de34ed2cda29f0a451e053d3667849ef671d01b",
+        "time-1.12.2-inplace",
+        "transformers-0.6.1.0-inplace",
+        "unix-2.8.3.0-inplace",
+        "unordered-containers-0.2.16.0-c34a599fb16c5433a94b5ce03b72e80c3b86ba6e6c0a00c8ed34054b475d154a",
+        "utf8-string-1.0.2-1dee6db0a19774ac102b5fdaae4a12ab0ad9249645748d5c2c1db2f578309df5"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "cloud": false,
+        "embed-files": false,
+        "portable": false
+      },
+      "id": "shake-0.19.7-ec2c710d69dee2727cfc122484680c3d2ab5d17abccad8174be48090a3acf496",
+      "pkg-cabal-sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "pkg-name": "shake",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "pkg-version": "0.19.7",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "deepseq-1.5.0.0-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "optimised-mixer": false
+      },
+      "id": "splitmix-0.1.0.5-85ad3ec969d2b29844001d76852bb47656f824325992f8640a6a3241cc7852fd",
+      "pkg-cabal-sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
+      "pkg-name": "splitmix",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "pkg-version": "0.1.0.5",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "depends": [
+        "array-0.5.6.0-inplace",
+        "base-4.19.0.0-inplace"
+      ],
+      "id": "stm-2.5.2.1-inplace",
+      "pkg-name": "stm",
+      "pkg-version": "2.5.2.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "ghc-boot-th-9.8.1-inplace",
+        "ghc-prim-0.11.0-inplace",
+        "pretty-1.1.3.6-inplace"
+      ],
+      "id": "template-haskell-2.21.0.0-inplace",
+      "pkg-name": "template-haskell",
+      "pkg-version": "2.21.0.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "array-0.5.6.0-inplace",
+        "base-4.19.0.0-inplace",
+        "binary-0.8.9.1-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "ghc-prim-0.11.0-inplace",
+        "template-haskell-2.21.0.0-inplace"
+      ],
+      "id": "text-2.1-inplace",
+      "pkg-name": "text",
+      "pkg-version": "2.1",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "deepseq-1.5.0.0-inplace"
+      ],
+      "id": "time-1.12.2-inplace",
+      "pkg-name": "time",
+      "pkg-version": "1.12.2",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace"
+      ],
+      "id": "transformers-0.6.1.0-inplace",
+      "pkg-name": "transformers",
+      "pkg-version": "0.6.1.0",
+      "type": "pre-existing"
+    },
+    {
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "bytestring-0.12.0.2-inplace",
+        "filepath-1.4.100.4-inplace",
+        "time-1.12.2-inplace"
+      ],
+      "id": "unix-2.8.3.0-inplace",
+      "pkg-name": "unix",
+      "pkg-version": "2.8.3.0",
+      "type": "pre-existing"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "deepseq-1.5.0.0-inplace",
+        "hashable-1.4.3.0-77ca0779bbc0510ce86b1f6af91c03d74598123dc2cbbf94ff3ecf0284051ea2"
+      ],
+      "exe-depends": [],
+      "flags": {
+        "debug": false
+      },
+      "id": "unordered-containers-0.2.16.0-c34a599fb16c5433a94b5ce03b72e80c3b86ba6e6c0a00c8ed34054b475d154a",
+      "pkg-cabal-sha256": "859ec9a017e51194755cb8a445b767afc5ce0ac991cd50b0f96abd31b3687aab",
+      "pkg-name": "unordered-containers",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "bccf68bcf262a149e8cdb25bc4a87d59642faa772ec4db384e16ac8f4f3f49ef",
+      "pkg-version": "0.2.16.0",
+      "style": "global",
+      "type": "configured"
+    },
+    {
+      "component-name": "lib",
+      "depends": [
+        "base-4.19.0.0-inplace",
+        "bytestring-0.12.0.2-inplace"
+      ],
+      "exe-depends": [],
+      "flags": {},
+      "id": "utf8-string-1.0.2-1dee6db0a19774ac102b5fdaae4a12ab0ad9249645748d5c2c1db2f578309df5",
+      "pkg-cabal-sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
+      "pkg-name": "utf8-string",
+      "pkg-src": {
+        "repo": {
+          "type": "secure-repo",
+          "uri": "http://hackage.haskell.org/"
+        },
+        "type": "repo-tar"
+      },
+      "pkg-src-sha256": "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a",
+      "pkg-version": "1.0.2",
+      "style": "global",
+      "type": "configured"
+    }
+  ],
+  "os": "linux"
+}
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_1.json b/hadrian/bootstrap/plan-bootstrap-9_4_1.json
index aab9d09ed295..38b80b13e6d4 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_4_1.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_1.json
@@ -105,45 +105,45 @@
       "version": "3.10.1.0"
     },
     {
-      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "flags": [],
       "package": "base16-bytestring",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
       "version": "1.0.2.0"
     },
     {
-      "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "flags": [
         "-llvm"
       ],
       "package": "clock",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "version": "0.8.3"
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
     },
     {
-      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "flags": [
         "-exe",
         "+use-cbits"
       ],
       "package": "cryptohash-sha256",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
       "version": "0.11.102.1"
     },
     {
-      "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "flags": [],
       "package": "extra",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "version": "1.7.12"
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
     },
     {
       "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
@@ -173,7 +173,7 @@
       "version": "0.1.0.0"
     },
     {
-      "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "flags": [
         "+integer-gmp",
         "-random-initial-seed"
@@ -181,8 +181,8 @@
       "package": "hashable",
       "revision": 1,
       "source": "hackage",
-      "src_sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "version": "1.4.2.0"
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
     },
     {
       "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
@@ -230,32 +230,32 @@
       "version": "0.8.0.0"
     },
     {
-      "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "flags": [
         "-optimised-mixer"
       ],
       "package": "splitmix",
-      "revision": 2,
+      "revision": 0,
       "source": "hackage",
-      "src_sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "version": "0.1.0.4"
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
     },
     {
-      "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "flags": [],
       "package": "random",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
       "version": "1.2.1.1"
     },
     {
-      "cabal_sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
+      "cabal_sha256": "1c28ca429e3960de0330908579a427ccacddd700cb84ec1969e2bbe576152add",
       "flags": [
         "-debug"
       ],
       "package": "unordered-containers",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
       "version": "0.2.19.1"
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_2.json b/hadrian/bootstrap/plan-bootstrap-9_4_2.json
index e18e8a81f477..28f4ddb4d8c5 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_4_2.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_2.json
@@ -105,45 +105,45 @@
       "version": "3.10.1.0"
     },
     {
-      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "flags": [],
       "package": "base16-bytestring",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
       "version": "1.0.2.0"
     },
     {
-      "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "flags": [
         "-llvm"
       ],
       "package": "clock",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "version": "0.8.3"
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
     },
     {
-      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "flags": [
         "-exe",
         "+use-cbits"
       ],
       "package": "cryptohash-sha256",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
       "version": "0.11.102.1"
     },
     {
-      "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "flags": [],
       "package": "extra",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "version": "1.7.12"
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
     },
     {
       "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
@@ -173,7 +173,7 @@
       "version": "0.1.0.0"
     },
     {
-      "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "flags": [
         "+integer-gmp",
         "-random-initial-seed"
@@ -181,8 +181,8 @@
       "package": "hashable",
       "revision": 1,
       "source": "hackage",
-      "src_sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "version": "1.4.2.0"
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
     },
     {
       "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
@@ -230,32 +230,32 @@
       "version": "0.8.0.0"
     },
     {
-      "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "flags": [
         "-optimised-mixer"
       ],
       "package": "splitmix",
-      "revision": 2,
+      "revision": 0,
       "source": "hackage",
-      "src_sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "version": "0.1.0.4"
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
     },
     {
-      "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "flags": [],
       "package": "random",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
       "version": "1.2.1.1"
     },
     {
-      "cabal_sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
+      "cabal_sha256": "1c28ca429e3960de0330908579a427ccacddd700cb84ec1969e2bbe576152add",
       "flags": [
         "-debug"
       ],
       "package": "unordered-containers",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
       "version": "0.2.19.1"
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_3.json b/hadrian/bootstrap/plan-bootstrap-9_4_3.json
index cac1e50e60c4..02629ea7db4c 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_4_3.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_3.json
@@ -105,45 +105,45 @@
       "version": "3.10.1.0"
     },
     {
-      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "flags": [],
       "package": "base16-bytestring",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
       "version": "1.0.2.0"
     },
     {
-      "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "flags": [
         "-llvm"
       ],
       "package": "clock",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "version": "0.8.3"
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
     },
     {
-      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "flags": [
         "-exe",
         "+use-cbits"
       ],
       "package": "cryptohash-sha256",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
       "version": "0.11.102.1"
     },
     {
-      "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "flags": [],
       "package": "extra",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "version": "1.7.12"
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
     },
     {
       "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
@@ -173,7 +173,7 @@
       "version": "0.1.0.0"
     },
     {
-      "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "flags": [
         "+integer-gmp",
         "-random-initial-seed"
@@ -181,8 +181,8 @@
       "package": "hashable",
       "revision": 1,
       "source": "hackage",
-      "src_sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "version": "1.4.2.0"
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
     },
     {
       "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
@@ -230,32 +230,32 @@
       "version": "0.8.0.0"
     },
     {
-      "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "flags": [
         "-optimised-mixer"
       ],
       "package": "splitmix",
-      "revision": 2,
+      "revision": 0,
       "source": "hackage",
-      "src_sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "version": "0.1.0.4"
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
     },
     {
-      "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "flags": [],
       "package": "random",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
       "version": "1.2.1.1"
     },
     {
-      "cabal_sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
+      "cabal_sha256": "1c28ca429e3960de0330908579a427ccacddd700cb84ec1969e2bbe576152add",
       "flags": [
         "-debug"
       ],
       "package": "unordered-containers",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
       "version": "0.2.19.1"
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_4.json b/hadrian/bootstrap/plan-bootstrap-9_4_4.json
index 3456b0bc3519..02629ea7db4c 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_4_4.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_4.json
@@ -26,7 +26,7 @@
     },
     {
       "package": "ghc-boot-th",
-      "version": "9.4.4"
+      "version": "9.4.3"
     },
     {
       "package": "pretty",
@@ -105,45 +105,45 @@
       "version": "3.10.1.0"
     },
     {
-      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "flags": [],
       "package": "base16-bytestring",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
       "version": "1.0.2.0"
     },
     {
-      "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "flags": [
         "-llvm"
       ],
       "package": "clock",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "version": "0.8.3"
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
     },
     {
-      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "flags": [
         "-exe",
         "+use-cbits"
       ],
       "package": "cryptohash-sha256",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
       "version": "0.11.102.1"
     },
     {
-      "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "flags": [],
       "package": "extra",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "version": "1.7.12"
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
     },
     {
       "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
@@ -173,7 +173,7 @@
       "version": "0.1.0.0"
     },
     {
-      "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "flags": [
         "+integer-gmp",
         "-random-initial-seed"
@@ -181,8 +181,8 @@
       "package": "hashable",
       "revision": 1,
       "source": "hackage",
-      "src_sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "version": "1.4.2.0"
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
     },
     {
       "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
@@ -230,32 +230,32 @@
       "version": "0.8.0.0"
     },
     {
-      "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "flags": [
         "-optimised-mixer"
       ],
       "package": "splitmix",
-      "revision": 2,
+      "revision": 0,
       "source": "hackage",
-      "src_sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "version": "0.1.0.4"
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
     },
     {
-      "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "flags": [],
       "package": "random",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
       "version": "1.2.1.1"
     },
     {
-      "cabal_sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
+      "cabal_sha256": "1c28ca429e3960de0330908579a427ccacddd700cb84ec1969e2bbe576152add",
       "flags": [
         "-debug"
       ],
       "package": "unordered-containers",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
       "version": "0.2.19.1"
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_5.json b/hadrian/bootstrap/plan-bootstrap-9_4_5.json
index efbb03559f09..73eb658ab0e5 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_4_5.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_5.json
@@ -105,45 +105,45 @@
       "version": "3.10.1.0"
     },
     {
-      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "flags": [],
       "package": "base16-bytestring",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
       "version": "1.0.2.0"
     },
     {
-      "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "flags": [
         "-llvm"
       ],
       "package": "clock",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "version": "0.8.3"
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
     },
     {
-      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "flags": [
         "-exe",
         "+use-cbits"
       ],
       "package": "cryptohash-sha256",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
       "version": "0.11.102.1"
     },
     {
-      "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "flags": [],
       "package": "extra",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "version": "1.7.12"
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
     },
     {
       "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
@@ -173,7 +173,7 @@
       "version": "0.1.0.0"
     },
     {
-      "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "flags": [
         "+integer-gmp",
         "-random-initial-seed"
@@ -181,8 +181,8 @@
       "package": "hashable",
       "revision": 1,
       "source": "hackage",
-      "src_sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "version": "1.4.2.0"
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
     },
     {
       "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
@@ -230,32 +230,32 @@
       "version": "0.8.0.0"
     },
     {
-      "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "flags": [
         "-optimised-mixer"
       ],
       "package": "splitmix",
-      "revision": 2,
+      "revision": 0,
       "source": "hackage",
-      "src_sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "version": "0.1.0.4"
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
     },
     {
-      "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "flags": [],
       "package": "random",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
       "version": "1.2.1.1"
     },
     {
-      "cabal_sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
+      "cabal_sha256": "1c28ca429e3960de0330908579a427ccacddd700cb84ec1969e2bbe576152add",
       "flags": [
         "-debug"
       ],
       "package": "unordered-containers",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
       "version": "0.2.19.1"
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_6.json b/hadrian/bootstrap/plan-bootstrap-9_4_6.json
new file mode 100644
index 000000000000..73eb658ab0e5
--- /dev/null
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_6.json
@@ -0,0 +1,298 @@
+{
+  "builtin": [
+    {
+      "package": "rts",
+      "version": "1.0.2"
+    },
+    {
+      "package": "ghc-prim",
+      "version": "0.9.0"
+    },
+    {
+      "package": "ghc-bignum",
+      "version": "1.3"
+    },
+    {
+      "package": "base",
+      "version": "4.17.1.0"
+    },
+    {
+      "package": "array",
+      "version": "0.5.4.0"
+    },
+    {
+      "package": "deepseq",
+      "version": "1.4.8.0"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.4.5"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.19.0.0"
+    },
+    {
+      "package": "bytestring",
+      "version": "0.11.4.0"
+    },
+    {
+      "package": "containers",
+      "version": "0.6.7"
+    },
+    {
+      "package": "binary",
+      "version": "0.8.9.1"
+    },
+    {
+      "package": "filepath",
+      "version": "1.4.2.2"
+    },
+    {
+      "package": "time",
+      "version": "1.12.2"
+    },
+    {
+      "package": "unix",
+      "version": "2.7.3"
+    },
+    {
+      "package": "directory",
+      "version": "1.3.7.1"
+    },
+    {
+      "package": "transformers",
+      "version": "0.5.6.2"
+    },
+    {
+      "package": "mtl",
+      "version": "2.2.2"
+    },
+    {
+      "package": "text",
+      "version": "2.0.2"
+    },
+    {
+      "package": "parsec",
+      "version": "3.1.16.1"
+    },
+    {
+      "package": "process",
+      "version": "1.6.16.0"
+    }
+  ],
+  "dependencies": [
+    {
+      "cabal_sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
+      "flags": [],
+      "package": "Cabal-syntax",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "3b80092355327768a0de8298ac50ee906b7e82462e2ba14542730573b453f522",
+      "version": "3.10.1.0"
+    },
+    {
+      "cabal_sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
+      "flags": [],
+      "package": "Cabal",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "0bdbab8e4c3178016fb0f070d8b62bc3067f93afabfbd3aa17c8065d0ecc98ee",
+      "version": "3.10.1.0"
+    },
+    {
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
+    {
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
+      "flags": [
+        "-llvm"
+      ],
+      "package": "clock",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
+    },
+    {
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
+    {
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
+      "flags": [],
+      "package": "extra",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
+    },
+    {
+      "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
+      "flags": [],
+      "package": "filepattern",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636",
+      "version": "0.1.3"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [],
+      "package": "ghc-platform",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [],
+      "package": "ghc-toolchain",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    },
+    {
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
+      "flags": [
+        "+integer-gmp",
+        "-random-initial-seed"
+      ],
+      "package": "hashable",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
+    },
+    {
+      "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
+      "flags": [],
+      "package": "heaps",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd",
+      "version": "0.4"
+    },
+    {
+      "cabal_sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
+      "flags": [],
+      "package": "js-dgtable",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac",
+      "version": "0.5.2"
+    },
+    {
+      "cabal_sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
+      "flags": [],
+      "package": "js-flot",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a",
+      "version": "0.8.3"
+    },
+    {
+      "cabal_sha256": "59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5",
+      "flags": [],
+      "package": "js-jquery",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b",
+      "version": "3.3.1"
+    },
+    {
+      "cabal_sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
+      "flags": [],
+      "package": "primitive",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f",
+      "version": "0.8.0.0"
+    },
+    {
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
+      "flags": [
+        "-optimised-mixer"
+      ],
+      "package": "splitmix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
+    },
+    {
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
+      "flags": [],
+      "package": "random",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
+      "version": "1.2.1.1"
+    },
+    {
+      "cabal_sha256": "1c28ca429e3960de0330908579a427ccacddd700cb84ec1969e2bbe576152add",
+      "flags": [
+        "-debug"
+      ],
+      "package": "unordered-containers",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
+      "version": "0.2.19.1"
+    },
+    {
+      "cabal_sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
+      "flags": [],
+      "package": "utf8-string",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a",
+      "version": "1.0.2"
+    },
+    {
+      "cabal_sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "flags": [
+        "-cloud",
+        "-embed-files",
+        "-portable"
+      ],
+      "package": "shake",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "version": "0.19.7"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [
+        "-selftest",
+        "+threaded"
+      ],
+      "package": "hadrian",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    }
+  ]
+}
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_7.json b/hadrian/bootstrap/plan-bootstrap-9_4_7.json
new file mode 100644
index 000000000000..aa71eab06361
--- /dev/null
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_7.json
@@ -0,0 +1,298 @@
+{
+  "builtin": [
+    {
+      "package": "rts",
+      "version": "1.0.2"
+    },
+    {
+      "package": "ghc-prim",
+      "version": "0.9.1"
+    },
+    {
+      "package": "ghc-bignum",
+      "version": "1.3"
+    },
+    {
+      "package": "base",
+      "version": "4.17.2.0"
+    },
+    {
+      "package": "array",
+      "version": "0.5.4.0"
+    },
+    {
+      "package": "deepseq",
+      "version": "1.4.8.0"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.4.7"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.19.0.0"
+    },
+    {
+      "package": "bytestring",
+      "version": "0.11.5.2"
+    },
+    {
+      "package": "containers",
+      "version": "0.6.7"
+    },
+    {
+      "package": "binary",
+      "version": "0.8.9.1"
+    },
+    {
+      "package": "filepath",
+      "version": "1.4.2.2"
+    },
+    {
+      "package": "time",
+      "version": "1.12.2"
+    },
+    {
+      "package": "unix",
+      "version": "2.7.3"
+    },
+    {
+      "package": "directory",
+      "version": "1.3.7.1"
+    },
+    {
+      "package": "transformers",
+      "version": "0.5.6.2"
+    },
+    {
+      "package": "mtl",
+      "version": "2.2.2"
+    },
+    {
+      "package": "text",
+      "version": "2.0.2"
+    },
+    {
+      "package": "parsec",
+      "version": "3.1.16.1"
+    },
+    {
+      "package": "process",
+      "version": "1.6.17.0"
+    }
+  ],
+  "dependencies": [
+    {
+      "cabal_sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
+      "flags": [],
+      "package": "Cabal-syntax",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "3b80092355327768a0de8298ac50ee906b7e82462e2ba14542730573b453f522",
+      "version": "3.10.1.0"
+    },
+    {
+      "cabal_sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
+      "flags": [],
+      "package": "Cabal",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "0bdbab8e4c3178016fb0f070d8b62bc3067f93afabfbd3aa17c8065d0ecc98ee",
+      "version": "3.10.1.0"
+    },
+    {
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
+    {
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
+      "flags": [
+        "-llvm"
+      ],
+      "package": "clock",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
+    },
+    {
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
+    {
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
+      "flags": [],
+      "package": "extra",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
+    },
+    {
+      "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
+      "flags": [],
+      "package": "filepattern",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636",
+      "version": "0.1.3"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [],
+      "package": "ghc-platform",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [],
+      "package": "ghc-toolchain",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    },
+    {
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
+      "flags": [
+        "+integer-gmp",
+        "-random-initial-seed"
+      ],
+      "package": "hashable",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
+    },
+    {
+      "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
+      "flags": [],
+      "package": "heaps",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd",
+      "version": "0.4"
+    },
+    {
+      "cabal_sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
+      "flags": [],
+      "package": "js-dgtable",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac",
+      "version": "0.5.2"
+    },
+    {
+      "cabal_sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
+      "flags": [],
+      "package": "js-flot",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a",
+      "version": "0.8.3"
+    },
+    {
+      "cabal_sha256": "59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5",
+      "flags": [],
+      "package": "js-jquery",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b",
+      "version": "3.3.1"
+    },
+    {
+      "cabal_sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
+      "flags": [],
+      "package": "primitive",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f",
+      "version": "0.8.0.0"
+    },
+    {
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
+      "flags": [
+        "-optimised-mixer"
+      ],
+      "package": "splitmix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
+    },
+    {
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
+      "flags": [],
+      "package": "random",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
+      "version": "1.2.1.1"
+    },
+    {
+      "cabal_sha256": "1c28ca429e3960de0330908579a427ccacddd700cb84ec1969e2bbe576152add",
+      "flags": [
+        "-debug"
+      ],
+      "package": "unordered-containers",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
+      "version": "0.2.19.1"
+    },
+    {
+      "cabal_sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
+      "flags": [],
+      "package": "utf8-string",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a",
+      "version": "1.0.2"
+    },
+    {
+      "cabal_sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "flags": [
+        "-cloud",
+        "-embed-files",
+        "-portable"
+      ],
+      "package": "shake",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "version": "0.19.7"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [
+        "-selftest",
+        "+threaded"
+      ],
+      "package": "hadrian",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    }
+  ]
+}
diff --git a/hadrian/bootstrap/plan-bootstrap-9_6_1.json b/hadrian/bootstrap/plan-bootstrap-9_6_1.json
index 87331778dbca..43fe11e2030d 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_6_1.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_6_1.json
@@ -89,69 +89,59 @@
       "version": "3.1.16.1"
     },
     {
-      "package": "process",
-      "version": "1.6.17.0"
-    }
-  ],
-  "dependencies": [
-    {
-      "cabal_sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
-      "flags": [],
       "package": "Cabal-syntax",
-      "revision": 0,
-      "source": "hackage",
-      "src_sha256": "3b80092355327768a0de8298ac50ee906b7e82462e2ba14542730573b453f522",
       "version": "3.10.1.0"
     },
     {
-      "cabal_sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
-      "flags": [],
+      "package": "process",
+      "version": "1.6.17.0"
+    },
+    {
       "package": "Cabal",
-      "revision": 0,
-      "source": "hackage",
-      "src_sha256": "0bdbab8e4c3178016fb0f070d8b62bc3067f93afabfbd3aa17c8065d0ecc98ee",
       "version": "3.10.1.0"
-    },
+    }
+  ],
+  "dependencies": [
     {
-      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "flags": [],
       "package": "base16-bytestring",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
       "version": "1.0.2.0"
     },
     {
-      "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "flags": [
         "-llvm"
       ],
       "package": "clock",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "version": "0.8.3"
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
     },
     {
-      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "flags": [
         "-exe",
         "+use-cbits"
       ],
       "package": "cryptohash-sha256",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
       "version": "0.11.102.1"
     },
     {
-      "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "flags": [],
       "package": "extra",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "version": "1.7.12"
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
     },
     {
       "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
@@ -181,7 +171,7 @@
       "version": "0.1.0.0"
     },
     {
-      "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "flags": [
         "+integer-gmp",
         "-random-initial-seed"
@@ -189,8 +179,8 @@
       "package": "hashable",
       "revision": 1,
       "source": "hackage",
-      "src_sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "version": "1.4.2.0"
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
     },
     {
       "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
@@ -238,32 +228,32 @@
       "version": "0.8.0.0"
     },
     {
-      "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "flags": [
         "-optimised-mixer"
       ],
       "package": "splitmix",
-      "revision": 2,
+      "revision": 0,
       "source": "hackage",
-      "src_sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "version": "0.1.0.4"
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
     },
     {
-      "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "flags": [],
       "package": "random",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
       "version": "1.2.1.1"
     },
     {
-      "cabal_sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
+      "cabal_sha256": "1c28ca429e3960de0330908579a427ccacddd700cb84ec1969e2bbe576152add",
       "flags": [
         "-debug"
       ],
       "package": "unordered-containers",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
       "version": "0.2.19.1"
diff --git a/hadrian/bootstrap/plan-bootstrap-9_6_2.json b/hadrian/bootstrap/plan-bootstrap-9_6_2.json
index c3789b815593..7f5369ad382a 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_6_2.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_6_2.json
@@ -89,69 +89,59 @@
       "version": "3.1.16.1"
     },
     {
-      "package": "process",
-      "version": "1.6.17.0"
-    }
-  ],
-  "dependencies": [
-    {
-      "cabal_sha256": "bb835ebab577fd0f9c11dab96210dbb8d68ffc62652576f4b092563c345930e7",
-      "flags": [],
       "package": "Cabal-syntax",
-      "revision": 0,
-      "source": "hackage",
-      "src_sha256": "3b80092355327768a0de8298ac50ee906b7e82462e2ba14542730573b453f522",
       "version": "3.10.1.0"
     },
     {
-      "cabal_sha256": "6d11adf7847d9734e7b02785ff831b5a0d11536bfbcefd6634b2b08411c63c94",
-      "flags": [],
+      "package": "process",
+      "version": "1.6.17.0"
+    },
+    {
       "package": "Cabal",
-      "revision": 0,
-      "source": "hackage",
-      "src_sha256": "0bdbab8e4c3178016fb0f070d8b62bc3067f93afabfbd3aa17c8065d0ecc98ee",
       "version": "3.10.1.0"
-    },
+    }
+  ],
+  "dependencies": [
     {
-      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
       "flags": [],
       "package": "base16-bytestring",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
       "version": "1.0.2.0"
     },
     {
-      "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
       "flags": [
         "-llvm"
       ],
       "package": "clock",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
-      "version": "0.8.3"
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
     },
     {
-      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
       "flags": [
         "-exe",
         "+use-cbits"
       ],
       "package": "cryptohash-sha256",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
       "version": "0.11.102.1"
     },
     {
-      "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
       "flags": [],
       "package": "extra",
       "revision": 0,
       "source": "hackage",
-      "src_sha256": "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c",
-      "version": "1.7.12"
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
     },
     {
       "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
@@ -181,7 +171,7 @@
       "version": "0.1.0.0"
     },
     {
-      "cabal_sha256": "585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a",
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
       "flags": [
         "+integer-gmp",
         "-random-initial-seed"
@@ -189,8 +179,8 @@
       "package": "hashable",
       "revision": 1,
       "source": "hackage",
-      "src_sha256": "1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8",
-      "version": "1.4.2.0"
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
     },
     {
       "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
@@ -238,32 +228,32 @@
       "version": "0.8.0.0"
     },
     {
-      "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
       "flags": [
         "-optimised-mixer"
       ],
       "package": "splitmix",
-      "revision": 2,
+      "revision": 0,
       "source": "hackage",
-      "src_sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
-      "version": "0.1.0.4"
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
     },
     {
-      "cabal_sha256": "dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9",
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
       "flags": [],
       "package": "random",
-      "revision": 0,
+      "revision": 1,
       "source": "hackage",
       "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
       "version": "1.2.1.1"
     },
     {
-      "cabal_sha256": "9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00",
+      "cabal_sha256": "1c28ca429e3960de0330908579a427ccacddd700cb84ec1969e2bbe576152add",
       "flags": [
         "-debug"
       ],
       "package": "unordered-containers",
-      "revision": 2,
+      "revision": 3,
       "source": "hackage",
       "src_sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
       "version": "0.2.19.1"
diff --git a/hadrian/bootstrap/plan-bootstrap-9_6_3.json b/hadrian/bootstrap/plan-bootstrap-9_6_3.json
new file mode 100644
index 000000000000..5438c04e7b6a
--- /dev/null
+++ b/hadrian/bootstrap/plan-bootstrap-9_6_3.json
@@ -0,0 +1,296 @@
+{
+  "builtin": [
+    {
+      "package": "rts",
+      "version": "1.0.2"
+    },
+    {
+      "package": "ghc-prim",
+      "version": "0.10.0"
+    },
+    {
+      "package": "ghc-bignum",
+      "version": "1.3"
+    },
+    {
+      "package": "base",
+      "version": "4.18.1.0"
+    },
+    {
+      "package": "array",
+      "version": "0.5.5.0"
+    },
+    {
+      "package": "deepseq",
+      "version": "1.4.8.1"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.6.3"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.20.0.0"
+    },
+    {
+      "package": "bytestring",
+      "version": "0.11.5.2"
+    },
+    {
+      "package": "containers",
+      "version": "0.6.7"
+    },
+    {
+      "package": "binary",
+      "version": "0.8.9.1"
+    },
+    {
+      "package": "transformers",
+      "version": "0.6.1.0"
+    },
+    {
+      "package": "mtl",
+      "version": "2.3.1"
+    },
+    {
+      "package": "stm",
+      "version": "2.5.1.0"
+    },
+    {
+      "package": "exceptions",
+      "version": "0.10.7"
+    },
+    {
+      "package": "filepath",
+      "version": "1.4.100.4"
+    },
+    {
+      "package": "time",
+      "version": "1.12.2"
+    },
+    {
+      "package": "unix",
+      "version": "2.8.1.0"
+    },
+    {
+      "package": "directory",
+      "version": "1.3.8.1"
+    },
+    {
+      "package": "text",
+      "version": "2.0.2"
+    },
+    {
+      "package": "parsec",
+      "version": "3.1.16.1"
+    },
+    {
+      "package": "Cabal-syntax",
+      "version": "3.10.1.0"
+    },
+    {
+      "package": "process",
+      "version": "1.6.17.0"
+    },
+    {
+      "package": "Cabal",
+      "version": "3.10.1.0"
+    }
+  ],
+  "dependencies": [
+    {
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
+    {
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
+      "flags": [
+        "-llvm"
+      ],
+      "package": "clock",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
+    },
+    {
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
+    {
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
+      "flags": [],
+      "package": "extra",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
+    },
+    {
+      "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
+      "flags": [],
+      "package": "filepattern",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636",
+      "version": "0.1.3"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [],
+      "package": "ghc-platform",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [],
+      "package": "ghc-toolchain",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    },
+    {
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
+      "flags": [
+        "+integer-gmp",
+        "-random-initial-seed"
+      ],
+      "package": "hashable",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
+    },
+    {
+      "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
+      "flags": [],
+      "package": "heaps",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd",
+      "version": "0.4"
+    },
+    {
+      "cabal_sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
+      "flags": [],
+      "package": "js-dgtable",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac",
+      "version": "0.5.2"
+    },
+    {
+      "cabal_sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
+      "flags": [],
+      "package": "js-flot",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a",
+      "version": "0.8.3"
+    },
+    {
+      "cabal_sha256": "59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5",
+      "flags": [],
+      "package": "js-jquery",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b",
+      "version": "3.3.1"
+    },
+    {
+      "cabal_sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
+      "flags": [],
+      "package": "primitive",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f",
+      "version": "0.8.0.0"
+    },
+    {
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
+      "flags": [
+        "-optimised-mixer"
+      ],
+      "package": "splitmix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
+    },
+    {
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
+      "flags": [],
+      "package": "random",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
+      "version": "1.2.1.1"
+    },
+    {
+      "cabal_sha256": "1c28ca429e3960de0330908579a427ccacddd700cb84ec1969e2bbe576152add",
+      "flags": [
+        "-debug"
+      ],
+      "package": "unordered-containers",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2",
+      "version": "0.2.19.1"
+    },
+    {
+      "cabal_sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
+      "flags": [],
+      "package": "utf8-string",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a",
+      "version": "1.0.2"
+    },
+    {
+      "cabal_sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "flags": [
+        "-cloud",
+        "-embed-files",
+        "-portable"
+      ],
+      "package": "shake",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "version": "0.19.7"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [
+        "-selftest",
+        "+threaded"
+      ],
+      "package": "hadrian",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    }
+  ]
+}
diff --git a/hadrian/bootstrap/plan-bootstrap-9_8_1.json b/hadrian/bootstrap/plan-bootstrap-9_8_1.json
new file mode 100644
index 000000000000..c5f8fdf03e1d
--- /dev/null
+++ b/hadrian/bootstrap/plan-bootstrap-9_8_1.json
@@ -0,0 +1,296 @@
+{
+  "builtin": [
+    {
+      "package": "rts",
+      "version": "1.0.2"
+    },
+    {
+      "package": "ghc-prim",
+      "version": "0.11.0"
+    },
+    {
+      "package": "ghc-bignum",
+      "version": "1.3"
+    },
+    {
+      "package": "base",
+      "version": "4.19.0.0"
+    },
+    {
+      "package": "array",
+      "version": "0.5.6.0"
+    },
+    {
+      "package": "deepseq",
+      "version": "1.5.0.0"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.8.1"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.21.0.0"
+    },
+    {
+      "package": "bytestring",
+      "version": "0.12.0.2"
+    },
+    {
+      "package": "containers",
+      "version": "0.6.8"
+    },
+    {
+      "package": "binary",
+      "version": "0.8.9.1"
+    },
+    {
+      "package": "transformers",
+      "version": "0.6.1.0"
+    },
+    {
+      "package": "mtl",
+      "version": "2.3.1"
+    },
+    {
+      "package": "stm",
+      "version": "2.5.2.1"
+    },
+    {
+      "package": "exceptions",
+      "version": "0.10.7"
+    },
+    {
+      "package": "filepath",
+      "version": "1.4.100.4"
+    },
+    {
+      "package": "time",
+      "version": "1.12.2"
+    },
+    {
+      "package": "unix",
+      "version": "2.8.3.0"
+    },
+    {
+      "package": "directory",
+      "version": "1.3.8.1"
+    },
+    {
+      "package": "text",
+      "version": "2.1"
+    },
+    {
+      "package": "parsec",
+      "version": "3.1.17.0"
+    },
+    {
+      "package": "Cabal-syntax",
+      "version": "3.10.2.0"
+    },
+    {
+      "package": "process",
+      "version": "1.6.18.0"
+    },
+    {
+      "package": "Cabal",
+      "version": "3.10.2.0"
+    }
+  ],
+  "dependencies": [
+    {
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
+    {
+      "cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
+      "flags": [
+        "-llvm"
+      ],
+      "package": "clock",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
+      "version": "0.8.4"
+    },
+    {
+      "cabal_sha256": "03db065161987f614a3a2bbcd16264f78e47efe231fb5bd161be2043eaf20488",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
+    {
+      "cabal_sha256": "e3d3ce1dc7746b1132930e48c59fb5e8c51a09e92e0c031316be031067a273fb",
+      "flags": [],
+      "package": "extra",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "b6a909f8f0e4b8076a1653b4d34815a782f0a8c1e83d5267f4d00496471ef567",
+      "version": "1.7.14"
+    },
+    {
+      "cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
+      "flags": [],
+      "package": "filepattern",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636",
+      "version": "0.1.3"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [],
+      "package": "ghc-platform",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [],
+      "package": "ghc-toolchain",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    },
+    {
+      "cabal_sha256": "f3bf68acfa0df7a064a378ef2cdcfeb55e6fb96100675f4c593556dcbf3d7194",
+      "flags": [
+        "+integer-gmp",
+        "-random-initial-seed"
+      ],
+      "package": "hashable",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "32efb16c2891786209b7cbe5c39df9b3a9ae51e836f1a54f646bc4602b7ab0f5",
+      "version": "1.4.3.0"
+    },
+    {
+      "cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
+      "flags": [],
+      "package": "heaps",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd",
+      "version": "0.4"
+    },
+    {
+      "cabal_sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
+      "flags": [],
+      "package": "js-dgtable",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac",
+      "version": "0.5.2"
+    },
+    {
+      "cabal_sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
+      "flags": [],
+      "package": "js-flot",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a",
+      "version": "0.8.3"
+    },
+    {
+      "cabal_sha256": "59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5",
+      "flags": [],
+      "package": "js-jquery",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b",
+      "version": "3.3.1"
+    },
+    {
+      "cabal_sha256": "d0ff45fa6e61f92af23611ceb8b9a6a04c236b50fb70c60e2ed3bfa532703670",
+      "flags": [],
+      "package": "primitive",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f",
+      "version": "0.8.0.0"
+    },
+    {
+      "cabal_sha256": "bac0ae8d46a04e410666b0c8081cff63f060f29157983b569ca86ddb6e6e0dc6",
+      "flags": [
+        "-optimised-mixer"
+      ],
+      "package": "splitmix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
+      "version": "0.1.0.5"
+    },
+    {
+      "cabal_sha256": "e7c1f881159d5cc788619c9ee8b8f340ba2ff0db571cdf3d1a1968ebc5108789",
+      "flags": [],
+      "package": "random",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76",
+      "version": "1.2.1.1"
+    },
+    {
+      "cabal_sha256": "859ec9a017e51194755cb8a445b767afc5ce0ac991cd50b0f96abd31b3687aab",
+      "flags": [
+        "-debug"
+      ],
+      "package": "unordered-containers",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "bccf68bcf262a149e8cdb25bc4a87d59642faa772ec4db384e16ac8f4f3f49ef",
+      "version": "0.2.16.0"
+    },
+    {
+      "cabal_sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
+      "flags": [],
+      "package": "utf8-string",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a",
+      "version": "1.0.2"
+    },
+    {
+      "cabal_sha256": "3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3",
+      "flags": [
+        "-cloud",
+        "-embed-files",
+        "-portable"
+      ],
+      "package": "shake",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1",
+      "version": "0.19.7"
+    },
+    {
+      "cabal_sha256": null,
+      "flags": [
+        "-selftest",
+        "+threaded"
+      ],
+      "package": "hadrian",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "0.1.0.0"
+    }
+  ]
+}
-- 
GitLab