diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml
index e32173fc5dc13597aa7472b07b18fb311c3d0a2b..fb2a96f2d5bbba5db968a02857f0babb8941dbc3 100644
--- a/.github/workflows/bootstrap.yml
+++ b/.github/workflows/bootstrap.yml
@@ -19,7 +19,7 @@ jobs:
     strategy:
       matrix:
         os: [ubuntu-latest]
-        ghc: ["9.0.2", "9.2.8", "9.4.8", "9.6.6", "9.8.2"]
+        ghc: ["9.2.8", "9.4.8", "9.6.7", "9.8.4", "9.10.1", "9.12.2"]
         include:
           - os: macos-latest
             ghc: "9.2.8"
diff --git a/Makefile b/Makefile
index 4488d461c8c235ed76e3c22aabaee5211b6bd277..b4aceb178419817f41970575b1ff30b97a6ddcc4 100644
--- a/Makefile
+++ b/Makefile
@@ -274,7 +274,7 @@ bootstrap-json-%: phony
 	cd bootstrap && cabal run -v0 cabal-bootstrap-gen -- linux-$*.plan.json \
 		| python3 -m json.tool > linux-$*.json
 
-BOOTSTRAP_GHC_VERSIONS := 9.0.2 9.2.8 9.4.8 9.6.6 9.8.2
+BOOTSTRAP_GHC_VERSIONS := 9.2.8 9.4.8 9.6.7 9.8.4 9.10.1 9.12.2
 
 .PHONY: bootstrap-jsons
 bootstrap-jsons: $(BOOTSTRAP_GHC_VERSIONS:%=bootstrap-json-%)
diff --git a/bootstrap/generate_bootstrap_plans b/bootstrap/generate_bootstrap_plans
index de77e9944dda93f16cf93fbc3fb1851f7b150098..4630ad5fa8b6a21872cc01118727d0d136a32dd5 100755
--- a/bootstrap/generate_bootstrap_plans
+++ b/bootstrap/generate_bootstrap_plans
@@ -15,9 +15,9 @@ run() {
   cabal run --with-ghc-pkg $PWD/boot_ghc/bin/ghc-pkg -w $PWD/boot_ghc/bin/ghc -v0 cabal-bootstrap-gen -- "plan-$ver.json" | jq --sort-keys | tee "linux-$(echo $ver | tr "_" ".").json"
 }
 
-run "8_10_7"
-run "9_0_2"
 run "9_2_8"
 run "9_4_8"
-run "9_6_4"
-run "9_8_2"
+run "9_6_7"
+run "9_8_4"
+run "9_10_1"
+run "9_12_2"
diff --git a/bootstrap/linux-9.0.2.json b/bootstrap/linux-9.0.2.json
deleted file mode 100644
index c3d136717fdd1ee4e72f7e84a1cdeecc487a5d20..0000000000000000000000000000000000000000
--- a/bootstrap/linux-9.0.2.json
+++ /dev/null
@@ -1,578 +0,0 @@
-{
-    "builtin": [
-        {
-            "package": "rts",
-            "version": "1.0.2"
-        },
-        {
-            "package": "ghc-prim",
-            "version": "0.7.0"
-        },
-        {
-            "package": "ghc-bignum",
-            "version": "1.1"
-        },
-        {
-            "package": "base",
-            "version": "4.15.1.0"
-        },
-        {
-            "package": "array",
-            "version": "0.5.4.0"
-        },
-        {
-            "package": "deepseq",
-            "version": "1.4.5.0"
-        },
-        {
-            "package": "containers",
-            "version": "0.6.4.1"
-        },
-        {
-            "package": "ghc-boot-th",
-            "version": "9.0.2"
-        },
-        {
-            "package": "pretty",
-            "version": "1.1.3.6"
-        },
-        {
-            "package": "template-haskell",
-            "version": "2.17.0.0"
-        },
-        {
-            "package": "transformers",
-            "version": "0.5.6.2"
-        },
-        {
-            "package": "mtl",
-            "version": "2.2.2"
-        },
-        {
-            "package": "stm",
-            "version": "2.5.0.0"
-        },
-        {
-            "package": "exceptions",
-            "version": "0.10.4"
-        },
-        {
-            "package": "time",
-            "version": "1.9.3"
-        }
-    ],
-    "dependencies": [
-        {
-            "cabal_sha256": "3eee5d3658b657371d0f940f1f38feefc2ebdf8592a32d3d0734f28c61f80ba0",
-            "component": "lib:bytestring",
-            "flags": [],
-            "package": "bytestring",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "6bd8fa536ed6a8278bc98dfa9fdf2c91da662bea58fde929a6ba8a38bbe9d7eb",
-            "version": "0.11.5.3"
-        },
-        {
-            "cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f",
-            "component": "lib:os-string",
-            "flags": [],
-            "package": "os-string",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0",
-            "version": "2.0.7"
-        },
-        {
-            "cabal_sha256": "099c33e0e570dad93390e1c01c1f4bc6e4f13587de8e199df3c94a6cb62c7434",
-            "component": "lib:filepath",
-            "flags": [
-                "-cpphs"
-            ],
-            "package": "filepath",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "54aa86c432f593273d7b9f607c5b5e0a1628c2674c6f4e3b5a54eb0c83db5caf",
-            "version": "1.5.4.0"
-        },
-        {
-            "cabal_sha256": "5b7f8afd7a879c3c8c3c636fd3c7543cdd5e0b514b7da90e76907ccd11434031",
-            "component": "lib:unix",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "unix",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "8117599bb3e4aa1d4656710afbc85aef2a75483eddfac5338f8cc88fb505eea2",
-            "version": "2.8.6.0"
-        },
-        {
-            "cabal_sha256": "e3e1866eab82cb28f6a5f28507643da3987008b737e66a3c7398f39f16d824dc",
-            "component": "lib:file-io",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "file-io",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "e3d9113a015c57e3d8c2294550c41544f84a265291fed96cca697f91b6e86f52",
-            "version": "0.1.4"
-        },
-        {
-            "cabal_sha256": "2490137bb7738bd79392959458ef5f276219ea5ba8a9a56d3e0b06315c1bb917",
-            "component": "lib:directory",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "directory",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "20a24846117fc5f8751d974b7de07210a161989410467e9adca525381b8e64cc",
-            "version": "1.3.9.0"
-        },
-        {
-            "cabal_sha256": "de553eefe0b6548a560e9d8100486310548470a403c1fa21108dd03713da5fc7",
-            "component": "exe:alex",
-            "flags": [],
-            "package": "alex",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c92efe86f8eb959ee03be6c04ee57ebc7e4abc75a6c4b26551215d7443e92a07",
-            "version": "3.5.1.0"
-        },
-        {
-            "cabal_sha256": "03381e511429c44d13990c6d76281c4fc2468371cede4fe684b0c98d9b7d5f5a",
-            "component": "lib:binary",
-            "flags": [],
-            "package": "binary",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "8437116b4eccdba13cb9badb62331c0d4598c3f0252a587e37d8f5990d9bf74c",
-            "version": "0.8.9.2"
-        },
-        {
-            "cabal_sha256": "71b5fa8c64d3c1fd0a08f993463220867b08290a2256e94b0952bf0e8f5a45cc",
-            "component": "lib:text",
-            "flags": [
-                "-developer",
-                "+simdutf"
-            ],
-            "package": "text",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "c735be650a898606ce9f2c8642bc6ac6123eea82871d5e90f92797801f59efad",
-            "version": "2.0.2"
-        },
-        {
-            "cabal_sha256": "8407cbd428d7f640a0fff8891bd2f7aca13cebe70a5e654856f8abec9a648b56",
-            "component": "lib:parsec",
-            "flags": [],
-            "package": "parsec",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "58c500bec1ec3c849c8243ddfd675a5983b17a8e5da55acea6adade5ae179d36",
-            "version": "3.1.17.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal-syntax",
-            "flags": [],
-            "package": "Cabal-syntax",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "9a0b2ef8096517fa0e0c7a5e9a5c2ae5744ed824c3331005f9408245810df345",
-            "component": "lib:process",
-            "flags": [],
-            "package": "process",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "496fe0566c3915b112e9772ac9c967dfeb8d5ca04895e54ae0160522bee76e65",
-            "version": "1.6.25.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal",
-            "flags": [
-                "-git-rev"
-            ],
-            "package": "Cabal",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal-hooks",
-            "flags": [],
-            "package": "Cabal-hooks",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.16"
-        },
-        {
-            "cabal_sha256": "276325277350cd2c2c88916ed3ae5cd35b2b4f494ec594fbd9534081eb7fb759",
-            "component": "exe:hsc2hs",
-            "flags": [
-                "-in-ghc-tree"
-            ],
-            "package": "hsc2hs",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
-            "version": "0.68.10"
-        },
-        {
-            "cabal_sha256": "b0fafb2834530084f6406017500ae619f9e5e2049787a6750c68e0d331fd62dc",
-            "component": "lib:network",
-            "flags": [
-                "-devel"
-            ],
-            "package": "network",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "dbd8a10456908294eb5ab9c522bf2da75444d958429a643a821464213698523e",
-            "version": "3.2.6.0"
-        },
-        {
-            "cabal_sha256": "129a59ba3ccfcd06192fd6da899e2711ae276a466915a047bd6727e4a0321d2e",
-            "component": "lib:th-compat",
-            "flags": [],
-            "package": "th-compat",
-            "revision": 2,
-            "source": "hackage",
-            "src_sha256": "81f55fafc7afad7763c09cb8b7b4165ca3765edcf70ffa42c7393043a1382a1e",
-            "version": "0.1.5"
-        },
-        {
-            "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
-            "component": "lib:network-uri",
-            "flags": [],
-            "package": "network-uri",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
-            "version": "2.6.4.2"
-        },
-        {
-            "cabal_sha256": "b90ce97917703f6613ed5a8cfe1a51525b990244f5610509baa15c8499eadca3",
-            "component": "lib:HTTP",
-            "flags": [
-                "-conduit10",
-                "+network-uri",
-                "-warn-as-error",
-                "-warp-tests"
-            ],
-            "package": "HTTP",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
-            "version": "4000.4.1"
-        },
-        {
-            "cabal_sha256": "455d863c96cf4b1804772c630a235f535fdb52ca9137a4150967b521ee4734ab",
-            "component": "lib:base-orphans",
-            "flags": [],
-            "package": "base-orphans",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "6211900916955b84687c61b5e4fa98ce110e511a96086b7a93f06dd63c97ba93",
-            "version": "0.9.2"
-        },
-        {
-            "cabal_sha256": "50b2f002c68fe67730ee7a3cd8607486197dd99b084255005ad51ecd6970a41b",
-            "component": "lib:hashable",
-            "flags": [
-                "+containers",
-                "+integer-gmp",
-                "-random-initial-seed"
-            ],
-            "package": "hashable",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87",
-            "version": "1.4.1.0"
-        },
-        {
-            "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
-            "component": "lib:async",
-            "flags": [
-                "-bench"
-            ],
-            "package": "async",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
-            "version": "2.2.5"
-        },
-        {
-            "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
-            "component": "lib:base16-bytestring",
-            "flags": [],
-            "package": "base16-bytestring",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
-            "version": "1.0.2.0"
-        },
-        {
-            "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
-            "component": "lib:base64-bytestring",
-            "flags": [],
-            "package": "base64-bytestring",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
-            "version": "1.2.1.0"
-        },
-        {
-            "cabal_sha256": "caa9b4a92abf1496c7f6a3c0f4e357426a54880077cb9f04e260a8bfa034b77b",
-            "component": "lib:splitmix",
-            "flags": [
-                "-optimised-mixer"
-            ],
-            "package": "splitmix",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
-            "version": "0.1.0.5"
-        },
-        {
-            "cabal_sha256": "32397de181e20ccaacf806ec70de9308cf044f089a2be37c936f3f8967bde867",
-            "component": "lib:random",
-            "flags": [],
-            "package": "random",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "790f4dc2d2327c453ff6aac7bf15399fd123d55e927935f68f84b5df42d9a4b4",
-            "version": "1.2.1.2"
-        },
-        {
-            "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
-            "component": "lib:edit-distance",
-            "flags": [],
-            "package": "edit-distance",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
-            "version": "0.2.2.1"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:cabal-install-solver",
-            "flags": [
-                "-debug-expensive-assertions",
-                "-debug-tracetree"
-            ],
-            "package": "cabal-install-solver",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "acb64f2af52d81b0bb92c266f11d43def726a7a7b74a2c23d219e160b54edec7",
-            "component": "lib:cryptohash-sha256",
-            "flags": [
-                "-exe",
-                "+use-cbits"
-            ],
-            "package": "cryptohash-sha256",
-            "revision": 5,
-            "source": "hackage",
-            "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
-            "version": "0.11.102.1"
-        },
-        {
-            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
-            "component": "lib:echo",
-            "flags": [
-                "-example"
-            ],
-            "package": "echo",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
-            "version": "0.1.4"
-        },
-        {
-            "cabal_sha256": "48383789821af5cc624498f3ee1d0939a070cda9468c0bfe63c951736be81c75",
-            "component": "lib:ed25519",
-            "flags": [
-                "+no-donna",
-                "+test-doctests",
-                "+test-hlint",
-                "+test-properties"
-            ],
-            "package": "ed25519",
-            "revision": 8,
-            "source": "hackage",
-            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
-            "version": "0.0.5.0"
-        },
-        {
-            "cabal_sha256": "8a3004c2de2a0b5ef0634d3da6eae62ba8d8a734bab9ed8c6cfd749e7ca08997",
-            "component": "lib:lukko",
-            "flags": [
-                "+ofd-locking"
-            ],
-            "package": "lukko",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
-            "version": "0.1.2"
-        },
-        {
-            "cabal_sha256": "e9f151d9999be8953443e730524b2792e9c0a4fb5b1463097fa1a8230870fd8a",
-            "component": "lib:tar-internal",
-            "flags": [],
-            "package": "tar",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "50bb660feec8a524416d6934251b996eaa7e39d49ae107ad505ab700d43f6814",
-            "version": "0.6.3.0"
-        },
-        {
-            "cabal_sha256": "e9f151d9999be8953443e730524b2792e9c0a4fb5b1463097fa1a8230870fd8a",
-            "component": "lib:tar",
-            "flags": [],
-            "package": "tar",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "50bb660feec8a524416d6934251b996eaa7e39d49ae107ad505ab700d43f6814",
-            "version": "0.6.3.0"
-        },
-        {
-            "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
-            "component": "lib:zlib",
-            "flags": [
-                "-bundled-c-zlib",
-                "+non-blocking-ffi",
-                "+pkg-config"
-            ],
-            "package": "zlib",
-            "revision": 2,
-            "source": "hackage",
-            "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
-            "version": "0.7.1.0"
-        },
-        {
-            "cabal_sha256": "a7311a70ce2cc820ee430c389f57f82a082f148230b37526c34eac72b7b3ff34",
-            "component": "lib:hackage-security",
-            "flags": [
-                "+cabal-syntax",
-                "+lukko"
-            ],
-            "package": "hackage-security",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
-            "version": "0.6.2.6"
-        },
-        {
-            "cabal_sha256": "e4be4a206f5ab6ddb5ae4fbb39101529196e20af5670c5d33326fea6eff886fd",
-            "component": "lib:open-browser",
-            "flags": [],
-            "package": "open-browser",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66",
-            "version": "0.2.1.0"
-        },
-        {
-            "cabal_sha256": "0322b2fcd1358f3355e0c8608efa60d27b14d1c9d476451dbcb9181363bd8b27",
-            "component": "lib:regex-base",
-            "flags": [],
-            "package": "regex-base",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1",
-            "version": "0.94.0.2"
-        },
-        {
-            "cabal_sha256": "816d6acc560cb86672f347a7bef8129578dde26ed760f9e79b4976ed9bd7b9fd",
-            "component": "lib:regex-posix",
-            "flags": [
-                "-_regex-posix-clib"
-            ],
-            "package": "regex-posix",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
-            "version": "0.96.0.1"
-        },
-        {
-            "cabal_sha256": "3e196e1362e4d0ec9dfcd7f8d58b24fac91beafaa1c8ee34dc9dee489c362377",
-            "component": "lib:resolv",
-            "flags": [],
-            "package": "resolv",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
-            "version": "0.2.0.2"
-        },
-        {
-            "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
-            "component": "lib:safe-exceptions",
-            "flags": [],
-            "package": "safe-exceptions",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
-            "version": "0.1.7.4"
-        },
-        {
-            "cabal_sha256": "2de5218cef72b8ef090bd7d0fd930ffa143242a120c62e013b5cf039858f1855",
-            "component": "lib:semaphore-compat",
-            "flags": [],
-            "package": "semaphore-compat",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2",
-            "version": "1.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:cabal-install",
-            "flags": [
-                "-git-rev",
-                "+lukko",
-                "+native-dns"
-            ],
-            "package": "cabal-install",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "exe:cabal",
-            "flags": [
-                "-git-rev",
-                "+lukko",
-                "+native-dns"
-            ],
-            "package": "cabal-install",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "e4be4a206f5ab6ddb5ae4fbb39101529196e20af5670c5d33326fea6eff886fd",
-            "component": "exe:example",
-            "flags": [],
-            "package": "open-browser",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66",
-            "version": "0.2.1.0"
-        }
-    ]
-}
diff --git a/bootstrap/linux-9.10.1.json b/bootstrap/linux-9.10.1.json
new file mode 100644
index 0000000000000000000000000000000000000000..dd3fcca7d14b137474750033fcc51b3557b3e6cd
--- /dev/null
+++ b/bootstrap/linux-9.10.1.json
@@ -0,0 +1,547 @@
+{
+  "builtin": [
+    {
+      "package": "rts",
+      "version": "1.0.2"
+    },
+    {
+      "package": "ghc-prim",
+      "version": "0.11.0"
+    },
+    {
+      "package": "ghc-bignum",
+      "version": "1.3"
+    },
+    {
+      "package": "ghc-internal",
+      "version": "9.1001.0"
+    },
+    {
+      "package": "base",
+      "version": "4.20.0.0"
+    },
+    {
+      "package": "array",
+      "version": "0.5.7.0"
+    },
+    {
+      "package": "deepseq",
+      "version": "1.5.0.0"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.10.1"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.22.0.0"
+    },
+    {
+      "package": "containers",
+      "version": "0.7"
+    },
+    {
+      "package": "bytestring",
+      "version": "0.12.1.0"
+    },
+    {
+      "package": "transformers",
+      "version": "0.6.1.1"
+    },
+    {
+      "package": "mtl",
+      "version": "2.3.1"
+    },
+    {
+      "package": "stm",
+      "version": "2.5.3.1"
+    },
+    {
+      "package": "exceptions",
+      "version": "0.10.7"
+    },
+    {
+      "package": "os-string",
+      "version": "2.0.2"
+    },
+    {
+      "package": "filepath",
+      "version": "1.5.2.0"
+    },
+    {
+      "package": "time",
+      "version": "1.12.2"
+    },
+    {
+      "package": "binary",
+      "version": "0.8.9.2"
+    },
+    {
+      "package": "text",
+      "version": "2.1.1"
+    },
+    {
+      "package": "parsec",
+      "version": "3.1.17.0"
+    }
+  ],
+  "dependencies": [
+    {
+      "cabal_sha256": "5b7f8afd7a879c3c8c3c636fd3c7543cdd5e0b514b7da90e76907ccd11434031",
+      "component": "lib:unix",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "unix",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "8117599bb3e4aa1d4656710afbc85aef2a75483eddfac5338f8cc88fb505eea2",
+      "version": "2.8.6.0"
+    },
+    {
+      "cabal_sha256": "1d68a81fa684d006b1ec73836cebe3de9a54688836915fe3e56a20389846bb4e",
+      "component": "lib:file-io",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "file-io",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "310a19e4c792de4d30c912bc71ff3becb40818d7c796b9999bcd0979dab87d5b",
+      "version": "0.1.5"
+    },
+    {
+      "cabal_sha256": "2490137bb7738bd79392959458ef5f276219ea5ba8a9a56d3e0b06315c1bb917",
+      "component": "lib:directory",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "directory",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "20a24846117fc5f8751d974b7de07210a161989410467e9adca525381b8e64cc",
+      "version": "1.3.9.0"
+    },
+    {
+      "cabal_sha256": "f6fde8ff59e7e38f9e95eca8f5154fb611c9789d1d9538aa9745c6c3cd9495b4",
+      "component": "exe:alex",
+      "flags": [],
+      "package": "alex",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "a5cd52e2dd2837138523e2e24ec3435b8cf2624afd50725105e644226e0b9ec6",
+      "version": "3.5.3.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-syntax",
+      "flags": [],
+      "package": "Cabal-syntax",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": "092ab61596e914d21983aa2e9206a74c4faa38a5a636446b5c954305821cb496",
+      "component": "lib:process",
+      "flags": [],
+      "package": "process",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "496fe0566c3915b112e9772ac9c967dfeb8d5ca04895e54ae0160522bee76e65",
+      "version": "1.6.25.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal",
+      "flags": [
+        "-git-rev"
+      ],
+      "package": "Cabal",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-hooks",
+      "flags": [],
+      "package": "Cabal-hooks",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.16"
+    },
+    {
+      "cabal_sha256": "725ef6da03d3d6e332db4de0a35bee45d72e4d31decc5ec7f153e6837af5f03e",
+      "component": "exe:hsc2hs",
+      "flags": [
+        "-in-ghc-tree"
+      ],
+      "package": "hsc2hs",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
+      "version": "0.68.10"
+    },
+    {
+      "cabal_sha256": "e3a1ec8b8dd32f1d5a541679a67de60d6626487a95f20c6bc245268ae7142ab7",
+      "component": "lib:network",
+      "flags": [
+        "-devel"
+      ],
+      "package": "network",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "68548e660632a3c09b230c33fe08cc880273372b485e65cbe7a717936de9728b",
+      "version": "3.2.7.0"
+    },
+    {
+      "cabal_sha256": "e83d97946f84fe492762ceb3b4753b4770c78b0b70e594078700baa91a5106c2",
+      "component": "lib:th-compat",
+      "flags": [],
+      "package": "th-compat",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "b781a0c059872bc95406d00e98f6fa7d9e81e744730f75186583cb4dcea0a4eb",
+      "version": "0.1.6"
+    },
+    {
+      "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
+      "component": "lib:network-uri",
+      "flags": [],
+      "package": "network-uri",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
+      "version": "2.6.4.2"
+    },
+    {
+      "cabal_sha256": "75ada03bd2d2b747319e38877a55bf8be529db4520a07d4e5ffbd24c5e850dcb",
+      "component": "lib:HTTP",
+      "flags": [
+        "-conduit10",
+        "+network-uri",
+        "-warn-as-error",
+        "-warp-tests"
+      ],
+      "package": "HTTP",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
+      "version": "4000.4.1"
+    },
+    {
+      "cabal_sha256": "2f23146cbe0325029927b221647695a4c7d6e97548ff731110979e34361f58ef",
+      "component": "lib:hashable",
+      "flags": [
+        "-arch-native",
+        "-random-initial-seed"
+      ],
+      "package": "hashable",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "e58b3a8e18da5f6cd7e937e5fd683e500bb1f8276b3768269759119ca0cddb6a",
+      "version": "1.5.0.0"
+    },
+    {
+      "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
+      "component": "lib:async",
+      "flags": [
+        "-bench"
+      ],
+      "package": "async",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
+      "version": "2.2.5"
+    },
+    {
+      "cabal_sha256": "81a105aed2ee2f5e479448e44252b24cdfacf81a5a2106aabdd217bad94b6f40",
+      "component": "lib:atomic-counter",
+      "flags": [
+        "-dev",
+        "-no-cmm"
+      ],
+      "package": "atomic-counter",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "ce4b63391b3c0d426cbe32af89f483222602a5b43aa5379aa720bf6f45f4cf04",
+      "version": "0.1.2.3"
+    },
+    {
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "component": "lib:base16-bytestring",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
+    {
+      "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
+      "component": "lib:base64-bytestring",
+      "flags": [],
+      "package": "base64-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
+      "version": "1.2.1.0"
+    },
+    {
+      "cabal_sha256": "8f92088f1c51c8d4569279a07565f8aa6b534a6735615b2295d2961dec8f1783",
+      "component": "lib:splitmix",
+      "flags": [
+        "-optimised-mixer"
+      ],
+      "package": "splitmix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d678c41a603a62032cf7e5f8336bb8222c93990e4b59c8b291b7ca26c7eb12c7",
+      "version": "0.1.1"
+    },
+    {
+      "cabal_sha256": "0b4f649c3e78713b2ccad1535251ee34b148237fb2229d7058c2b1d9ccc324b8",
+      "component": "lib:random",
+      "flags": [],
+      "package": "random",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d840ac83f265b0cfa2a678f8ec78627eb50cf9be2f067c52c8a4239c29b71a35",
+      "version": "1.3.1"
+    },
+    {
+      "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
+      "component": "lib:edit-distance",
+      "flags": [],
+      "package": "edit-distance",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
+      "version": "0.2.2.1"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install-solver",
+      "flags": [
+        "-debug-expensive-assertions",
+        "-debug-tracetree"
+      ],
+      "package": "cabal-install-solver",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": "0e9de2ccce261e7a5b027e842f6f47f50eb0e6059a0de98a5479f75aa8164107",
+      "component": "lib:cryptohash-sha256",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 6,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
+    {
+      "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
+      "component": "lib:echo",
+      "flags": [
+        "-example"
+      ],
+      "package": "echo",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
+      "version": "0.1.4"
+    },
+    {
+      "cabal_sha256": "f1550ddbe3b53f1087a035667364011460896cc2b1ff328b521c05ed5973bb78",
+      "component": "lib:ed25519",
+      "flags": [
+        "+no-donna",
+        "+test-doctests",
+        "+test-hlint",
+        "+test-properties"
+      ],
+      "package": "ed25519",
+      "revision": 9,
+      "source": "hackage",
+      "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
+      "version": "0.0.5.0"
+    },
+    {
+      "cabal_sha256": "8334a8d810e385e1dc1423dc02945daaa1f1a9ba058e5227f1a3211e4882ca28",
+      "component": "lib:lukko",
+      "flags": [
+        "+ofd-locking"
+      ],
+      "package": "lukko",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
+      "version": "0.1.2"
+    },
+    {
+      "cabal_sha256": "8931b9ce6e63bf6202dc0c992ae3e6f2ad8e7f4b6eb69994ac6d512c6c9c0f77",
+      "component": "lib:directory-ospath-streaming",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "directory-ospath-streaming",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1ade8fbee13db15e8d22a1ecdca54794617cabc69911b51d46a65e12f4554ef7",
+      "version": "0.2.2"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar-internal",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
+      "component": "lib:zlib",
+      "flags": [
+        "-bundled-c-zlib",
+        "+non-blocking-ffi",
+        "-pkg-config"
+      ],
+      "package": "zlib",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
+      "version": "0.7.1.0"
+    },
+    {
+      "cabal_sha256": "f85f6f1ef55d1f91795f2c7c476db36fd7aedb55c877d47f2a4411f0151040a9",
+      "component": "lib:hackage-security",
+      "flags": [
+        "+cabal-syntax",
+        "+lukko"
+      ],
+      "package": "hackage-security",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
+      "version": "0.6.2.6"
+    },
+    {
+      "cabal_sha256": "5b6ade9c872ff68b1c1c2ac7cd51441ae1ab7557020e744a3f60413938b9121c",
+      "component": "lib:open-browser",
+      "flags": [
+        "-example"
+      ],
+      "package": "open-browser",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c2ab01c3238e31b1560114bf8311a70a6c3538e643d3035286a166d137957804",
+      "version": "0.2.1.1"
+    },
+    {
+      "cabal_sha256": "d6c0c6d1136f5046207a331114ff4130e70640452096de7719bf03e3fceb7c7b",
+      "component": "lib:regex-base",
+      "flags": [],
+      "package": "regex-base",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e8ca2dee598c790dd1c1c4359bdd1e495d9b881f5aa1f539c22f0dd5563747bf",
+      "version": "0.94.0.3"
+    },
+    {
+      "cabal_sha256": "faf170ca5073e8d538a7a18f727a02a96f2a36c5fd53a1696263a70ab81bc6fe",
+      "component": "lib:regex-posix",
+      "flags": [
+        "-_regex-posix-clib"
+      ],
+      "package": "regex-posix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "7e570460c35c5deec54d1ba46305ddb4679c7d4aae84f631dd0c61daaeaa8150",
+      "version": "0.96.0.2"
+    },
+    {
+      "cabal_sha256": "58a8c6f17dece62891e7534c6f033e1fb1d0685e68dbe5d4fbb71256d45c6132",
+      "component": "lib:resolv",
+      "flags": [],
+      "package": "resolv",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
+      "version": "0.2.0.2"
+    },
+    {
+      "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
+      "component": "lib:safe-exceptions",
+      "flags": [],
+      "package": "safe-exceptions",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
+      "version": "0.1.7.4"
+    },
+    {
+      "cabal_sha256": "2dff81c2c0ec9bac9f8bae364db497188654d2e1e4330f4a0e2f12310149f3e9",
+      "component": "lib:semaphore-compat",
+      "flags": [],
+      "package": "semaphore-compat",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2",
+      "version": "1.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "exe:cabal",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    }
+  ]
+}
diff --git a/bootstrap/linux-9.12.2.json b/bootstrap/linux-9.12.2.json
new file mode 100644
index 0000000000000000000000000000000000000000..969b9a40b336a4d726d56f4f1b1283115bfcfa7a
--- /dev/null
+++ b/bootstrap/linux-9.12.2.json
@@ -0,0 +1,511 @@
+{
+  "builtin": [
+    {
+      "package": "rts",
+      "version": "1.0.2"
+    },
+    {
+      "package": "ghc-prim",
+      "version": "0.13.0"
+    },
+    {
+      "package": "ghc-bignum",
+      "version": "1.3"
+    },
+    {
+      "package": "ghc-internal",
+      "version": "9.1202.0"
+    },
+    {
+      "package": "base",
+      "version": "4.21.0.0"
+    },
+    {
+      "package": "array",
+      "version": "0.5.8.0"
+    },
+    {
+      "package": "deepseq",
+      "version": "1.5.1.0"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.12.2"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.23.0.0"
+    },
+    {
+      "package": "containers",
+      "version": "0.7"
+    },
+    {
+      "package": "bytestring",
+      "version": "0.12.2.0"
+    },
+    {
+      "package": "transformers",
+      "version": "0.6.1.2"
+    },
+    {
+      "package": "mtl",
+      "version": "2.3.1"
+    },
+    {
+      "package": "stm",
+      "version": "2.5.3.1"
+    },
+    {
+      "package": "exceptions",
+      "version": "0.10.9"
+    },
+    {
+      "package": "os-string",
+      "version": "2.0.7"
+    },
+    {
+      "package": "filepath",
+      "version": "1.5.4.0"
+    },
+    {
+      "package": "time",
+      "version": "1.14"
+    },
+    {
+      "package": "unix",
+      "version": "2.8.6.0"
+    },
+    {
+      "package": "file-io",
+      "version": "0.1.5"
+    },
+    {
+      "package": "directory",
+      "version": "1.3.9.0"
+    },
+    {
+      "package": "binary",
+      "version": "0.8.9.3"
+    },
+    {
+      "package": "text",
+      "version": "2.1.2"
+    },
+    {
+      "package": "parsec",
+      "version": "3.1.18.0"
+    },
+    {
+      "package": "process",
+      "version": "1.6.25.0"
+    },
+    {
+      "package": "semaphore-compat",
+      "version": "1.0.0"
+    }
+  ],
+  "dependencies": [
+    {
+      "cabal_sha256": "f6fde8ff59e7e38f9e95eca8f5154fb611c9789d1d9538aa9745c6c3cd9495b4",
+      "component": "exe:alex",
+      "flags": [],
+      "package": "alex",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "a5cd52e2dd2837138523e2e24ec3435b8cf2624afd50725105e644226e0b9ec6",
+      "version": "3.5.3.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-syntax",
+      "flags": [],
+      "package": "Cabal-syntax",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal",
+      "flags": [
+        "-git-rev"
+      ],
+      "package": "Cabal",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-hooks",
+      "flags": [],
+      "package": "Cabal-hooks",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.16"
+    },
+    {
+      "cabal_sha256": "725ef6da03d3d6e332db4de0a35bee45d72e4d31decc5ec7f153e6837af5f03e",
+      "component": "exe:hsc2hs",
+      "flags": [
+        "-in-ghc-tree"
+      ],
+      "package": "hsc2hs",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
+      "version": "0.68.10"
+    },
+    {
+      "cabal_sha256": "e3a1ec8b8dd32f1d5a541679a67de60d6626487a95f20c6bc245268ae7142ab7",
+      "component": "lib:network",
+      "flags": [
+        "-devel"
+      ],
+      "package": "network",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "68548e660632a3c09b230c33fe08cc880273372b485e65cbe7a717936de9728b",
+      "version": "3.2.7.0"
+    },
+    {
+      "cabal_sha256": "e83d97946f84fe492762ceb3b4753b4770c78b0b70e594078700baa91a5106c2",
+      "component": "lib:th-compat",
+      "flags": [],
+      "package": "th-compat",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "b781a0c059872bc95406d00e98f6fa7d9e81e744730f75186583cb4dcea0a4eb",
+      "version": "0.1.6"
+    },
+    {
+      "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
+      "component": "lib:network-uri",
+      "flags": [],
+      "package": "network-uri",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
+      "version": "2.6.4.2"
+    },
+    {
+      "cabal_sha256": "75ada03bd2d2b747319e38877a55bf8be529db4520a07d4e5ffbd24c5e850dcb",
+      "component": "lib:HTTP",
+      "flags": [
+        "-conduit10",
+        "+network-uri",
+        "-warn-as-error",
+        "-warp-tests"
+      ],
+      "package": "HTTP",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
+      "version": "4000.4.1"
+    },
+    {
+      "cabal_sha256": "2f23146cbe0325029927b221647695a4c7d6e97548ff731110979e34361f58ef",
+      "component": "lib:hashable",
+      "flags": [
+        "-arch-native",
+        "-random-initial-seed"
+      ],
+      "package": "hashable",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "e58b3a8e18da5f6cd7e937e5fd683e500bb1f8276b3768269759119ca0cddb6a",
+      "version": "1.5.0.0"
+    },
+    {
+      "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
+      "component": "lib:async",
+      "flags": [
+        "-bench"
+      ],
+      "package": "async",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
+      "version": "2.2.5"
+    },
+    {
+      "cabal_sha256": "81a105aed2ee2f5e479448e44252b24cdfacf81a5a2106aabdd217bad94b6f40",
+      "component": "lib:atomic-counter",
+      "flags": [
+        "-dev",
+        "-no-cmm"
+      ],
+      "package": "atomic-counter",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "ce4b63391b3c0d426cbe32af89f483222602a5b43aa5379aa720bf6f45f4cf04",
+      "version": "0.1.2.3"
+    },
+    {
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "component": "lib:base16-bytestring",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
+    {
+      "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
+      "component": "lib:base64-bytestring",
+      "flags": [],
+      "package": "base64-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
+      "version": "1.2.1.0"
+    },
+    {
+      "cabal_sha256": "8f92088f1c51c8d4569279a07565f8aa6b534a6735615b2295d2961dec8f1783",
+      "component": "lib:splitmix",
+      "flags": [
+        "-optimised-mixer"
+      ],
+      "package": "splitmix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d678c41a603a62032cf7e5f8336bb8222c93990e4b59c8b291b7ca26c7eb12c7",
+      "version": "0.1.1"
+    },
+    {
+      "cabal_sha256": "0b4f649c3e78713b2ccad1535251ee34b148237fb2229d7058c2b1d9ccc324b8",
+      "component": "lib:random",
+      "flags": [],
+      "package": "random",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d840ac83f265b0cfa2a678f8ec78627eb50cf9be2f067c52c8a4239c29b71a35",
+      "version": "1.3.1"
+    },
+    {
+      "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
+      "component": "lib:edit-distance",
+      "flags": [],
+      "package": "edit-distance",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
+      "version": "0.2.2.1"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install-solver",
+      "flags": [
+        "-debug-expensive-assertions",
+        "-debug-tracetree"
+      ],
+      "package": "cabal-install-solver",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": "0e9de2ccce261e7a5b027e842f6f47f50eb0e6059a0de98a5479f75aa8164107",
+      "component": "lib:cryptohash-sha256",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 6,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
+    {
+      "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
+      "component": "lib:echo",
+      "flags": [
+        "-example"
+      ],
+      "package": "echo",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
+      "version": "0.1.4"
+    },
+    {
+      "cabal_sha256": "f1550ddbe3b53f1087a035667364011460896cc2b1ff328b521c05ed5973bb78",
+      "component": "lib:ed25519",
+      "flags": [
+        "+no-donna",
+        "+test-doctests",
+        "+test-hlint",
+        "+test-properties"
+      ],
+      "package": "ed25519",
+      "revision": 9,
+      "source": "hackage",
+      "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
+      "version": "0.0.5.0"
+    },
+    {
+      "cabal_sha256": "8334a8d810e385e1dc1423dc02945daaa1f1a9ba058e5227f1a3211e4882ca28",
+      "component": "lib:lukko",
+      "flags": [
+        "+ofd-locking"
+      ],
+      "package": "lukko",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
+      "version": "0.1.2"
+    },
+    {
+      "cabal_sha256": "8931b9ce6e63bf6202dc0c992ae3e6f2ad8e7f4b6eb69994ac6d512c6c9c0f77",
+      "component": "lib:directory-ospath-streaming",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "directory-ospath-streaming",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1ade8fbee13db15e8d22a1ecdca54794617cabc69911b51d46a65e12f4554ef7",
+      "version": "0.2.2"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar-internal",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
+      "component": "lib:zlib",
+      "flags": [
+        "-bundled-c-zlib",
+        "+non-blocking-ffi",
+        "-pkg-config"
+      ],
+      "package": "zlib",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
+      "version": "0.7.1.0"
+    },
+    {
+      "cabal_sha256": "f85f6f1ef55d1f91795f2c7c476db36fd7aedb55c877d47f2a4411f0151040a9",
+      "component": "lib:hackage-security",
+      "flags": [
+        "+cabal-syntax",
+        "+lukko"
+      ],
+      "package": "hackage-security",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
+      "version": "0.6.2.6"
+    },
+    {
+      "cabal_sha256": "5b6ade9c872ff68b1c1c2ac7cd51441ae1ab7557020e744a3f60413938b9121c",
+      "component": "lib:open-browser",
+      "flags": [
+        "-example"
+      ],
+      "package": "open-browser",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c2ab01c3238e31b1560114bf8311a70a6c3538e643d3035286a166d137957804",
+      "version": "0.2.1.1"
+    },
+    {
+      "cabal_sha256": "d6c0c6d1136f5046207a331114ff4130e70640452096de7719bf03e3fceb7c7b",
+      "component": "lib:regex-base",
+      "flags": [],
+      "package": "regex-base",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e8ca2dee598c790dd1c1c4359bdd1e495d9b881f5aa1f539c22f0dd5563747bf",
+      "version": "0.94.0.3"
+    },
+    {
+      "cabal_sha256": "faf170ca5073e8d538a7a18f727a02a96f2a36c5fd53a1696263a70ab81bc6fe",
+      "component": "lib:regex-posix",
+      "flags": [
+        "-_regex-posix-clib"
+      ],
+      "package": "regex-posix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "7e570460c35c5deec54d1ba46305ddb4679c7d4aae84f631dd0c61daaeaa8150",
+      "version": "0.96.0.2"
+    },
+    {
+      "cabal_sha256": "58a8c6f17dece62891e7534c6f033e1fb1d0685e68dbe5d4fbb71256d45c6132",
+      "component": "lib:resolv",
+      "flags": [],
+      "package": "resolv",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
+      "version": "0.2.0.2"
+    },
+    {
+      "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
+      "component": "lib:safe-exceptions",
+      "flags": [],
+      "package": "safe-exceptions",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
+      "version": "0.1.7.4"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "exe:cabal",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    }
+  ]
+}
diff --git a/bootstrap/linux-9.2.8.json b/bootstrap/linux-9.2.8.json
index 8eebe2e44bdfcfaec7e7fc3715ee70b60bab5a04..551976a71ee74750015372a1329e358004cff170 100644
--- a/bootstrap/linux-9.2.8.json
+++ b/bootstrap/linux-9.2.8.json
@@ -1,551 +1,568 @@
 {
-    "builtin": [
-        {
-            "package": "rts",
-            "version": "1.0.2"
-        },
-        {
-            "package": "ghc-prim",
-            "version": "0.8.0"
-        },
-        {
-            "package": "ghc-bignum",
-            "version": "1.2"
-        },
-        {
-            "package": "base",
-            "version": "4.16.4.0"
-        },
-        {
-            "package": "array",
-            "version": "0.5.4.0"
-        },
-        {
-            "package": "deepseq",
-            "version": "1.4.6.1"
-        },
-        {
-            "package": "containers",
-            "version": "0.6.5.1"
-        },
-        {
-            "package": "ghc-boot-th",
-            "version": "9.2.8"
-        },
-        {
-            "package": "pretty",
-            "version": "1.1.3.6"
-        },
-        {
-            "package": "template-haskell",
-            "version": "2.18.0.0"
-        },
-        {
-            "package": "bytestring",
-            "version": "0.11.4.0"
-        },
-        {
-            "package": "transformers",
-            "version": "0.5.6.2"
-        },
-        {
-            "package": "mtl",
-            "version": "2.2.2"
-        },
-        {
-            "package": "stm",
-            "version": "2.5.0.2"
-        },
-        {
-            "package": "exceptions",
-            "version": "0.10.4"
-        },
-        {
-            "package": "time",
-            "version": "1.11.1.1"
-        },
-        {
-            "package": "binary",
-            "version": "0.8.9.0"
-        },
-        {
-            "package": "text",
-            "version": "1.2.5.0"
-        },
-        {
-            "package": "parsec",
-            "version": "3.1.15.0"
-        }
-    ],
-    "dependencies": [
-        {
-            "cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f",
-            "component": "lib:os-string",
-            "flags": [],
-            "package": "os-string",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0",
-            "version": "2.0.7"
-        },
-        {
-            "cabal_sha256": "099c33e0e570dad93390e1c01c1f4bc6e4f13587de8e199df3c94a6cb62c7434",
-            "component": "lib:filepath",
-            "flags": [
-                "-cpphs"
-            ],
-            "package": "filepath",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "54aa86c432f593273d7b9f607c5b5e0a1628c2674c6f4e3b5a54eb0c83db5caf",
-            "version": "1.5.4.0"
-        },
-        {
-            "cabal_sha256": "5b7f8afd7a879c3c8c3c636fd3c7543cdd5e0b514b7da90e76907ccd11434031",
-            "component": "lib:unix",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "unix",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "8117599bb3e4aa1d4656710afbc85aef2a75483eddfac5338f8cc88fb505eea2",
-            "version": "2.8.6.0"
-        },
-        {
-            "cabal_sha256": "e3e1866eab82cb28f6a5f28507643da3987008b737e66a3c7398f39f16d824dc",
-            "component": "lib:file-io",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "file-io",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "e3d9113a015c57e3d8c2294550c41544f84a265291fed96cca697f91b6e86f52",
-            "version": "0.1.4"
-        },
-        {
-            "cabal_sha256": "2490137bb7738bd79392959458ef5f276219ea5ba8a9a56d3e0b06315c1bb917",
-            "component": "lib:directory",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "directory",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "20a24846117fc5f8751d974b7de07210a161989410467e9adca525381b8e64cc",
-            "version": "1.3.9.0"
-        },
-        {
-            "cabal_sha256": "de553eefe0b6548a560e9d8100486310548470a403c1fa21108dd03713da5fc7",
-            "component": "exe:alex",
-            "flags": [],
-            "package": "alex",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c92efe86f8eb959ee03be6c04ee57ebc7e4abc75a6c4b26551215d7443e92a07",
-            "version": "3.5.1.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal-syntax",
-            "flags": [],
-            "package": "Cabal-syntax",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "9a0b2ef8096517fa0e0c7a5e9a5c2ae5744ed824c3331005f9408245810df345",
-            "component": "lib:process",
-            "flags": [],
-            "package": "process",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "496fe0566c3915b112e9772ac9c967dfeb8d5ca04895e54ae0160522bee76e65",
-            "version": "1.6.25.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal",
-            "flags": [
-                "-git-rev"
-            ],
-            "package": "Cabal",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal-hooks",
-            "flags": [],
-            "package": "Cabal-hooks",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.16"
-        },
-        {
-            "cabal_sha256": "276325277350cd2c2c88916ed3ae5cd35b2b4f494ec594fbd9534081eb7fb759",
-            "component": "exe:hsc2hs",
-            "flags": [
-                "-in-ghc-tree"
-            ],
-            "package": "hsc2hs",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
-            "version": "0.68.10"
-        },
-        {
-            "cabal_sha256": "b0fafb2834530084f6406017500ae619f9e5e2049787a6750c68e0d331fd62dc",
-            "component": "lib:network",
-            "flags": [
-                "-devel"
-            ],
-            "package": "network",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "dbd8a10456908294eb5ab9c522bf2da75444d958429a643a821464213698523e",
-            "version": "3.2.6.0"
-        },
-        {
-            "cabal_sha256": "129a59ba3ccfcd06192fd6da899e2711ae276a466915a047bd6727e4a0321d2e",
-            "component": "lib:th-compat",
-            "flags": [],
-            "package": "th-compat",
-            "revision": 2,
-            "source": "hackage",
-            "src_sha256": "81f55fafc7afad7763c09cb8b7b4165ca3765edcf70ffa42c7393043a1382a1e",
-            "version": "0.1.5"
-        },
-        {
-            "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
-            "component": "lib:network-uri",
-            "flags": [],
-            "package": "network-uri",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
-            "version": "2.6.4.2"
-        },
-        {
-            "cabal_sha256": "b90ce97917703f6613ed5a8cfe1a51525b990244f5610509baa15c8499eadca3",
-            "component": "lib:HTTP",
-            "flags": [
-                "-conduit10",
-                "+network-uri",
-                "-warn-as-error",
-                "-warp-tests"
-            ],
-            "package": "HTTP",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
-            "version": "4000.4.1"
-        },
-        {
-            "cabal_sha256": "3a4040018d8f90beef81ecd0ba37f266a9aaad3e902dd790f09056f892ba22fb",
-            "component": "lib:data-array-byte",
-            "flags": [],
-            "package": "data-array-byte",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600",
-            "version": "0.1.0.1"
-        },
-        {
-            "cabal_sha256": "573f3ab242f75465a0d67ce9d84202650a1606575e6dbd6d31ffcf4767a9a379",
-            "component": "lib:hashable",
-            "flags": [
-                "-arch-native",
-                "+integer-gmp",
-                "-random-initial-seed"
-            ],
-            "package": "hashable",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "3baee4c9027a08830d148ec524cbc0471de645e1e8426d46780ef2758df0e8da",
-            "version": "1.4.7.0"
-        },
-        {
-            "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
-            "component": "lib:async",
-            "flags": [
-                "-bench"
-            ],
-            "package": "async",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
-            "version": "2.2.5"
-        },
-        {
-            "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
-            "component": "lib:base16-bytestring",
-            "flags": [],
-            "package": "base16-bytestring",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
-            "version": "1.0.2.0"
-        },
-        {
-            "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
-            "component": "lib:base64-bytestring",
-            "flags": [],
-            "package": "base64-bytestring",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
-            "version": "1.2.1.0"
-        },
-        {
-            "cabal_sha256": "caa9b4a92abf1496c7f6a3c0f4e357426a54880077cb9f04e260a8bfa034b77b",
-            "component": "lib:splitmix",
-            "flags": [
-                "-optimised-mixer"
-            ],
-            "package": "splitmix",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
-            "version": "0.1.0.5"
-        },
-        {
-            "cabal_sha256": "32397de181e20ccaacf806ec70de9308cf044f089a2be37c936f3f8967bde867",
-            "component": "lib:random",
-            "flags": [],
-            "package": "random",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "790f4dc2d2327c453ff6aac7bf15399fd123d55e927935f68f84b5df42d9a4b4",
-            "version": "1.2.1.2"
-        },
-        {
-            "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
-            "component": "lib:edit-distance",
-            "flags": [],
-            "package": "edit-distance",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
-            "version": "0.2.2.1"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:cabal-install-solver",
-            "flags": [
-                "-debug-expensive-assertions",
-                "-debug-tracetree"
-            ],
-            "package": "cabal-install-solver",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "acb64f2af52d81b0bb92c266f11d43def726a7a7b74a2c23d219e160b54edec7",
-            "component": "lib:cryptohash-sha256",
-            "flags": [
-                "-exe",
-                "+use-cbits"
-            ],
-            "package": "cryptohash-sha256",
-            "revision": 5,
-            "source": "hackage",
-            "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
-            "version": "0.11.102.1"
-        },
-        {
-            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
-            "component": "lib:echo",
-            "flags": [
-                "-example"
-            ],
-            "package": "echo",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
-            "version": "0.1.4"
-        },
-        {
-            "cabal_sha256": "48383789821af5cc624498f3ee1d0939a070cda9468c0bfe63c951736be81c75",
-            "component": "lib:ed25519",
-            "flags": [
-                "+no-donna",
-                "+test-doctests",
-                "+test-hlint",
-                "+test-properties"
-            ],
-            "package": "ed25519",
-            "revision": 8,
-            "source": "hackage",
-            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
-            "version": "0.0.5.0"
-        },
-        {
-            "cabal_sha256": "8a3004c2de2a0b5ef0634d3da6eae62ba8d8a734bab9ed8c6cfd749e7ca08997",
-            "component": "lib:lukko",
-            "flags": [
-                "+ofd-locking"
-            ],
-            "package": "lukko",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
-            "version": "0.1.2"
-        },
-        {
-            "cabal_sha256": "e9f151d9999be8953443e730524b2792e9c0a4fb5b1463097fa1a8230870fd8a",
-            "component": "lib:tar-internal",
-            "flags": [],
-            "package": "tar",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "50bb660feec8a524416d6934251b996eaa7e39d49ae107ad505ab700d43f6814",
-            "version": "0.6.3.0"
-        },
-        {
-            "cabal_sha256": "e9f151d9999be8953443e730524b2792e9c0a4fb5b1463097fa1a8230870fd8a",
-            "component": "lib:tar",
-            "flags": [],
-            "package": "tar",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "50bb660feec8a524416d6934251b996eaa7e39d49ae107ad505ab700d43f6814",
-            "version": "0.6.3.0"
-        },
-        {
-            "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
-            "component": "lib:zlib",
-            "flags": [
-                "-bundled-c-zlib",
-                "+non-blocking-ffi",
-                "+pkg-config"
-            ],
-            "package": "zlib",
-            "revision": 2,
-            "source": "hackage",
-            "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
-            "version": "0.7.1.0"
-        },
-        {
-            "cabal_sha256": "a7311a70ce2cc820ee430c389f57f82a082f148230b37526c34eac72b7b3ff34",
-            "component": "lib:hackage-security",
-            "flags": [
-                "+cabal-syntax",
-                "+lukko"
-            ],
-            "package": "hackage-security",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
-            "version": "0.6.2.6"
-        },
-        {
-            "cabal_sha256": "e4be4a206f5ab6ddb5ae4fbb39101529196e20af5670c5d33326fea6eff886fd",
-            "component": "lib:open-browser",
-            "flags": [],
-            "package": "open-browser",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66",
-            "version": "0.2.1.0"
-        },
-        {
-            "cabal_sha256": "0322b2fcd1358f3355e0c8608efa60d27b14d1c9d476451dbcb9181363bd8b27",
-            "component": "lib:regex-base",
-            "flags": [],
-            "package": "regex-base",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1",
-            "version": "0.94.0.2"
-        },
-        {
-            "cabal_sha256": "816d6acc560cb86672f347a7bef8129578dde26ed760f9e79b4976ed9bd7b9fd",
-            "component": "lib:regex-posix",
-            "flags": [
-                "-_regex-posix-clib"
-            ],
-            "package": "regex-posix",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
-            "version": "0.96.0.1"
-        },
-        {
-            "cabal_sha256": "3e196e1362e4d0ec9dfcd7f8d58b24fac91beafaa1c8ee34dc9dee489c362377",
-            "component": "lib:resolv",
-            "flags": [],
-            "package": "resolv",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
-            "version": "0.2.0.2"
-        },
-        {
-            "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
-            "component": "lib:safe-exceptions",
-            "flags": [],
-            "package": "safe-exceptions",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
-            "version": "0.1.7.4"
-        },
-        {
-            "cabal_sha256": "2de5218cef72b8ef090bd7d0fd930ffa143242a120c62e013b5cf039858f1855",
-            "component": "lib:semaphore-compat",
-            "flags": [],
-            "package": "semaphore-compat",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2",
-            "version": "1.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:cabal-install",
-            "flags": [
-                "-git-rev",
-                "+lukko",
-                "+native-dns"
-            ],
-            "package": "cabal-install",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "exe:cabal",
-            "flags": [
-                "-git-rev",
-                "+lukko",
-                "+native-dns"
-            ],
-            "package": "cabal-install",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "e4be4a206f5ab6ddb5ae4fbb39101529196e20af5670c5d33326fea6eff886fd",
-            "component": "exe:example",
-            "flags": [],
-            "package": "open-browser",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66",
-            "version": "0.2.1.0"
-        }
-    ]
+  "builtin": [
+    {
+      "package": "rts",
+      "version": "1.0.2"
+    },
+    {
+      "package": "ghc-prim",
+      "version": "0.8.0"
+    },
+    {
+      "package": "ghc-bignum",
+      "version": "1.2"
+    },
+    {
+      "package": "base",
+      "version": "4.16.4.0"
+    },
+    {
+      "package": "array",
+      "version": "0.5.4.0"
+    },
+    {
+      "package": "deepseq",
+      "version": "1.4.6.1"
+    },
+    {
+      "package": "containers",
+      "version": "0.6.5.1"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.2.8"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.18.0.0"
+    },
+    {
+      "package": "bytestring",
+      "version": "0.11.4.0"
+    },
+    {
+      "package": "transformers",
+      "version": "0.5.6.2"
+    },
+    {
+      "package": "mtl",
+      "version": "2.2.2"
+    },
+    {
+      "package": "stm",
+      "version": "2.5.0.2"
+    },
+    {
+      "package": "exceptions",
+      "version": "0.10.4"
+    },
+    {
+      "package": "time",
+      "version": "1.11.1.1"
+    },
+    {
+      "package": "binary",
+      "version": "0.8.9.0"
+    },
+    {
+      "package": "text",
+      "version": "1.2.5.0"
+    },
+    {
+      "package": "parsec",
+      "version": "3.1.15.0"
+    }
+  ],
+  "dependencies": [
+    {
+      "cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f",
+      "component": "lib:os-string",
+      "flags": [],
+      "package": "os-string",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0",
+      "version": "2.0.7"
+    },
+    {
+      "cabal_sha256": "099c33e0e570dad93390e1c01c1f4bc6e4f13587de8e199df3c94a6cb62c7434",
+      "component": "lib:filepath",
+      "flags": [
+        "-cpphs"
+      ],
+      "package": "filepath",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "54aa86c432f593273d7b9f607c5b5e0a1628c2674c6f4e3b5a54eb0c83db5caf",
+      "version": "1.5.4.0"
+    },
+    {
+      "cabal_sha256": "5b7f8afd7a879c3c8c3c636fd3c7543cdd5e0b514b7da90e76907ccd11434031",
+      "component": "lib:unix",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "unix",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "8117599bb3e4aa1d4656710afbc85aef2a75483eddfac5338f8cc88fb505eea2",
+      "version": "2.8.6.0"
+    },
+    {
+      "cabal_sha256": "1d68a81fa684d006b1ec73836cebe3de9a54688836915fe3e56a20389846bb4e",
+      "component": "lib:file-io",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "file-io",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "310a19e4c792de4d30c912bc71ff3becb40818d7c796b9999bcd0979dab87d5b",
+      "version": "0.1.5"
+    },
+    {
+      "cabal_sha256": "2490137bb7738bd79392959458ef5f276219ea5ba8a9a56d3e0b06315c1bb917",
+      "component": "lib:directory",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "directory",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "20a24846117fc5f8751d974b7de07210a161989410467e9adca525381b8e64cc",
+      "version": "1.3.9.0"
+    },
+    {
+      "cabal_sha256": "f6fde8ff59e7e38f9e95eca8f5154fb611c9789d1d9538aa9745c6c3cd9495b4",
+      "component": "exe:alex",
+      "flags": [],
+      "package": "alex",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "a5cd52e2dd2837138523e2e24ec3435b8cf2624afd50725105e644226e0b9ec6",
+      "version": "3.5.3.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-syntax",
+      "flags": [],
+      "package": "Cabal-syntax",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": "092ab61596e914d21983aa2e9206a74c4faa38a5a636446b5c954305821cb496",
+      "component": "lib:process",
+      "flags": [],
+      "package": "process",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "496fe0566c3915b112e9772ac9c967dfeb8d5ca04895e54ae0160522bee76e65",
+      "version": "1.6.25.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal",
+      "flags": [
+        "-git-rev"
+      ],
+      "package": "Cabal",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-hooks",
+      "flags": [],
+      "package": "Cabal-hooks",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.16"
+    },
+    {
+      "cabal_sha256": "725ef6da03d3d6e332db4de0a35bee45d72e4d31decc5ec7f153e6837af5f03e",
+      "component": "exe:hsc2hs",
+      "flags": [
+        "-in-ghc-tree"
+      ],
+      "package": "hsc2hs",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
+      "version": "0.68.10"
+    },
+    {
+      "cabal_sha256": "e3a1ec8b8dd32f1d5a541679a67de60d6626487a95f20c6bc245268ae7142ab7",
+      "component": "lib:network",
+      "flags": [
+        "-devel"
+      ],
+      "package": "network",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "68548e660632a3c09b230c33fe08cc880273372b485e65cbe7a717936de9728b",
+      "version": "3.2.7.0"
+    },
+    {
+      "cabal_sha256": "e83d97946f84fe492762ceb3b4753b4770c78b0b70e594078700baa91a5106c2",
+      "component": "lib:th-compat",
+      "flags": [],
+      "package": "th-compat",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "b781a0c059872bc95406d00e98f6fa7d9e81e744730f75186583cb4dcea0a4eb",
+      "version": "0.1.6"
+    },
+    {
+      "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
+      "component": "lib:network-uri",
+      "flags": [],
+      "package": "network-uri",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
+      "version": "2.6.4.2"
+    },
+    {
+      "cabal_sha256": "75ada03bd2d2b747319e38877a55bf8be529db4520a07d4e5ffbd24c5e850dcb",
+      "component": "lib:HTTP",
+      "flags": [
+        "-conduit10",
+        "+network-uri",
+        "-warn-as-error",
+        "-warp-tests"
+      ],
+      "package": "HTTP",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
+      "version": "4000.4.1"
+    },
+    {
+      "cabal_sha256": "3a4040018d8f90beef81ecd0ba37f266a9aaad3e902dd790f09056f892ba22fb",
+      "component": "lib:data-array-byte",
+      "flags": [],
+      "package": "data-array-byte",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600",
+      "version": "0.1.0.1"
+    },
+    {
+      "cabal_sha256": "573f3ab242f75465a0d67ce9d84202650a1606575e6dbd6d31ffcf4767a9a379",
+      "component": "lib:hashable",
+      "flags": [
+        "-arch-native",
+        "+integer-gmp",
+        "-random-initial-seed"
+      ],
+      "package": "hashable",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "3baee4c9027a08830d148ec524cbc0471de645e1e8426d46780ef2758df0e8da",
+      "version": "1.4.7.0"
+    },
+    {
+      "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
+      "component": "lib:async",
+      "flags": [
+        "-bench"
+      ],
+      "package": "async",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
+      "version": "2.2.5"
+    },
+    {
+      "cabal_sha256": "81a105aed2ee2f5e479448e44252b24cdfacf81a5a2106aabdd217bad94b6f40",
+      "component": "lib:atomic-counter",
+      "flags": [
+        "-dev",
+        "-no-cmm"
+      ],
+      "package": "atomic-counter",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "ce4b63391b3c0d426cbe32af89f483222602a5b43aa5379aa720bf6f45f4cf04",
+      "version": "0.1.2.3"
+    },
+    {
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "component": "lib:base16-bytestring",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
+    {
+      "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
+      "component": "lib:base64-bytestring",
+      "flags": [],
+      "package": "base64-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
+      "version": "1.2.1.0"
+    },
+    {
+      "cabal_sha256": "8f92088f1c51c8d4569279a07565f8aa6b534a6735615b2295d2961dec8f1783",
+      "component": "lib:splitmix",
+      "flags": [
+        "-optimised-mixer"
+      ],
+      "package": "splitmix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d678c41a603a62032cf7e5f8336bb8222c93990e4b59c8b291b7ca26c7eb12c7",
+      "version": "0.1.1"
+    },
+    {
+      "cabal_sha256": "0b4f649c3e78713b2ccad1535251ee34b148237fb2229d7058c2b1d9ccc324b8",
+      "component": "lib:random",
+      "flags": [],
+      "package": "random",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d840ac83f265b0cfa2a678f8ec78627eb50cf9be2f067c52c8a4239c29b71a35",
+      "version": "1.3.1"
+    },
+    {
+      "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
+      "component": "lib:edit-distance",
+      "flags": [],
+      "package": "edit-distance",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
+      "version": "0.2.2.1"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install-solver",
+      "flags": [
+        "-debug-expensive-assertions",
+        "-debug-tracetree"
+      ],
+      "package": "cabal-install-solver",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": "0e9de2ccce261e7a5b027e842f6f47f50eb0e6059a0de98a5479f75aa8164107",
+      "component": "lib:cryptohash-sha256",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 6,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
+    {
+      "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
+      "component": "lib:echo",
+      "flags": [
+        "-example"
+      ],
+      "package": "echo",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
+      "version": "0.1.4"
+    },
+    {
+      "cabal_sha256": "f1550ddbe3b53f1087a035667364011460896cc2b1ff328b521c05ed5973bb78",
+      "component": "lib:ed25519",
+      "flags": [
+        "+no-donna",
+        "+test-doctests",
+        "+test-hlint",
+        "+test-properties"
+      ],
+      "package": "ed25519",
+      "revision": 9,
+      "source": "hackage",
+      "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
+      "version": "0.0.5.0"
+    },
+    {
+      "cabal_sha256": "8334a8d810e385e1dc1423dc02945daaa1f1a9ba058e5227f1a3211e4882ca28",
+      "component": "lib:lukko",
+      "flags": [
+        "+ofd-locking"
+      ],
+      "package": "lukko",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
+      "version": "0.1.2"
+    },
+    {
+      "cabal_sha256": "8931b9ce6e63bf6202dc0c992ae3e6f2ad8e7f4b6eb69994ac6d512c6c9c0f77",
+      "component": "lib:directory-ospath-streaming",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "directory-ospath-streaming",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1ade8fbee13db15e8d22a1ecdca54794617cabc69911b51d46a65e12f4554ef7",
+      "version": "0.2.2"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar-internal",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
+      "component": "lib:zlib",
+      "flags": [
+        "-bundled-c-zlib",
+        "+non-blocking-ffi",
+        "-pkg-config"
+      ],
+      "package": "zlib",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
+      "version": "0.7.1.0"
+    },
+    {
+      "cabal_sha256": "f85f6f1ef55d1f91795f2c7c476db36fd7aedb55c877d47f2a4411f0151040a9",
+      "component": "lib:hackage-security",
+      "flags": [
+        "+cabal-syntax",
+        "+lukko"
+      ],
+      "package": "hackage-security",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
+      "version": "0.6.2.6"
+    },
+    {
+      "cabal_sha256": "5b6ade9c872ff68b1c1c2ac7cd51441ae1ab7557020e744a3f60413938b9121c",
+      "component": "lib:open-browser",
+      "flags": [
+        "-example"
+      ],
+      "package": "open-browser",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c2ab01c3238e31b1560114bf8311a70a6c3538e643d3035286a166d137957804",
+      "version": "0.2.1.1"
+    },
+    {
+      "cabal_sha256": "d6c0c6d1136f5046207a331114ff4130e70640452096de7719bf03e3fceb7c7b",
+      "component": "lib:regex-base",
+      "flags": [],
+      "package": "regex-base",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e8ca2dee598c790dd1c1c4359bdd1e495d9b881f5aa1f539c22f0dd5563747bf",
+      "version": "0.94.0.3"
+    },
+    {
+      "cabal_sha256": "faf170ca5073e8d538a7a18f727a02a96f2a36c5fd53a1696263a70ab81bc6fe",
+      "component": "lib:regex-posix",
+      "flags": [
+        "-_regex-posix-clib"
+      ],
+      "package": "regex-posix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "7e570460c35c5deec54d1ba46305ddb4679c7d4aae84f631dd0c61daaeaa8150",
+      "version": "0.96.0.2"
+    },
+    {
+      "cabal_sha256": "58a8c6f17dece62891e7534c6f033e1fb1d0685e68dbe5d4fbb71256d45c6132",
+      "component": "lib:resolv",
+      "flags": [],
+      "package": "resolv",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
+      "version": "0.2.0.2"
+    },
+    {
+      "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
+      "component": "lib:safe-exceptions",
+      "flags": [],
+      "package": "safe-exceptions",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
+      "version": "0.1.7.4"
+    },
+    {
+      "cabal_sha256": "2dff81c2c0ec9bac9f8bae364db497188654d2e1e4330f4a0e2f12310149f3e9",
+      "component": "lib:semaphore-compat",
+      "flags": [],
+      "package": "semaphore-compat",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2",
+      "version": "1.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "exe:cabal",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    }
+  ]
 }
diff --git a/bootstrap/linux-9.4.8.json b/bootstrap/linux-9.4.8.json
index c2986821394d1538c0dba3eae08743f37d82bdd8..8d66decacac290800fa493aaaf8b303f13c3cc81 100644
--- a/bootstrap/linux-9.4.8.json
+++ b/bootstrap/linux-9.4.8.json
@@ -1,541 +1,558 @@
 {
-    "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.1"
-        },
-        {
-            "package": "array",
-            "version": "0.5.4.0"
-        },
-        {
-            "package": "deepseq",
-            "version": "1.4.8.0"
-        },
-        {
-            "package": "ghc-boot-th",
-            "version": "9.4.8"
-        },
-        {
-            "package": "pretty",
-            "version": "1.1.3.6"
-        },
-        {
-            "package": "template-haskell",
-            "version": "2.19.0.0"
-        },
-        {
-            "package": "containers",
-            "version": "0.6.7"
-        },
-        {
-            "package": "bytestring",
-            "version": "0.11.5.3"
-        },
-        {
-            "package": "transformers",
-            "version": "0.5.6.2"
-        },
-        {
-            "package": "mtl",
-            "version": "2.2.2"
-        },
-        {
-            "package": "stm",
-            "version": "2.5.1.0"
-        },
-        {
-            "package": "exceptions",
-            "version": "0.10.5"
-        },
-        {
-            "package": "time",
-            "version": "1.12.2"
-        },
-        {
-            "package": "binary",
-            "version": "0.8.9.1"
-        },
-        {
-            "package": "text",
-            "version": "2.0.2"
-        },
-        {
-            "package": "parsec",
-            "version": "3.1.16.1"
-        }
-    ],
-    "dependencies": [
-        {
-            "cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f",
-            "component": "lib:os-string",
-            "flags": [],
-            "package": "os-string",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0",
-            "version": "2.0.7"
-        },
-        {
-            "cabal_sha256": "099c33e0e570dad93390e1c01c1f4bc6e4f13587de8e199df3c94a6cb62c7434",
-            "component": "lib:filepath",
-            "flags": [
-                "-cpphs"
-            ],
-            "package": "filepath",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "54aa86c432f593273d7b9f607c5b5e0a1628c2674c6f4e3b5a54eb0c83db5caf",
-            "version": "1.5.4.0"
-        },
-        {
-            "cabal_sha256": "5b7f8afd7a879c3c8c3c636fd3c7543cdd5e0b514b7da90e76907ccd11434031",
-            "component": "lib:unix",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "unix",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "8117599bb3e4aa1d4656710afbc85aef2a75483eddfac5338f8cc88fb505eea2",
-            "version": "2.8.6.0"
-        },
-        {
-            "cabal_sha256": "e3e1866eab82cb28f6a5f28507643da3987008b737e66a3c7398f39f16d824dc",
-            "component": "lib:file-io",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "file-io",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "e3d9113a015c57e3d8c2294550c41544f84a265291fed96cca697f91b6e86f52",
-            "version": "0.1.4"
-        },
-        {
-            "cabal_sha256": "2490137bb7738bd79392959458ef5f276219ea5ba8a9a56d3e0b06315c1bb917",
-            "component": "lib:directory",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "directory",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "20a24846117fc5f8751d974b7de07210a161989410467e9adca525381b8e64cc",
-            "version": "1.3.9.0"
-        },
-        {
-            "cabal_sha256": "de553eefe0b6548a560e9d8100486310548470a403c1fa21108dd03713da5fc7",
-            "component": "exe:alex",
-            "flags": [],
-            "package": "alex",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c92efe86f8eb959ee03be6c04ee57ebc7e4abc75a6c4b26551215d7443e92a07",
-            "version": "3.5.1.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal-syntax",
-            "flags": [],
-            "package": "Cabal-syntax",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "9a0b2ef8096517fa0e0c7a5e9a5c2ae5744ed824c3331005f9408245810df345",
-            "component": "lib:process",
-            "flags": [],
-            "package": "process",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "496fe0566c3915b112e9772ac9c967dfeb8d5ca04895e54ae0160522bee76e65",
-            "version": "1.6.25.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal",
-            "flags": [
-                "-git-rev"
-            ],
-            "package": "Cabal",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal-hooks",
-            "flags": [],
-            "package": "Cabal-hooks",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.16"
-        },
-        {
-            "cabal_sha256": "276325277350cd2c2c88916ed3ae5cd35b2b4f494ec594fbd9534081eb7fb759",
-            "component": "exe:hsc2hs",
-            "flags": [
-                "-in-ghc-tree"
-            ],
-            "package": "hsc2hs",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
-            "version": "0.68.10"
-        },
-        {
-            "cabal_sha256": "b0fafb2834530084f6406017500ae619f9e5e2049787a6750c68e0d331fd62dc",
-            "component": "lib:network",
-            "flags": [
-                "-devel"
-            ],
-            "package": "network",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "dbd8a10456908294eb5ab9c522bf2da75444d958429a643a821464213698523e",
-            "version": "3.2.6.0"
-        },
-        {
-            "cabal_sha256": "129a59ba3ccfcd06192fd6da899e2711ae276a466915a047bd6727e4a0321d2e",
-            "component": "lib:th-compat",
-            "flags": [],
-            "package": "th-compat",
-            "revision": 2,
-            "source": "hackage",
-            "src_sha256": "81f55fafc7afad7763c09cb8b7b4165ca3765edcf70ffa42c7393043a1382a1e",
-            "version": "0.1.5"
-        },
-        {
-            "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
-            "component": "lib:network-uri",
-            "flags": [],
-            "package": "network-uri",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
-            "version": "2.6.4.2"
-        },
-        {
-            "cabal_sha256": "b90ce97917703f6613ed5a8cfe1a51525b990244f5610509baa15c8499eadca3",
-            "component": "lib:HTTP",
-            "flags": [
-                "-conduit10",
-                "+network-uri",
-                "-warn-as-error",
-                "-warp-tests"
-            ],
-            "package": "HTTP",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
-            "version": "4000.4.1"
-        },
-        {
-            "cabal_sha256": "573f3ab242f75465a0d67ce9d84202650a1606575e6dbd6d31ffcf4767a9a379",
-            "component": "lib:hashable",
-            "flags": [
-                "-arch-native",
-                "+integer-gmp",
-                "-random-initial-seed"
-            ],
-            "package": "hashable",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "3baee4c9027a08830d148ec524cbc0471de645e1e8426d46780ef2758df0e8da",
-            "version": "1.4.7.0"
-        },
-        {
-            "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
-            "component": "lib:async",
-            "flags": [
-                "-bench"
-            ],
-            "package": "async",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
-            "version": "2.2.5"
-        },
-        {
-            "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
-            "component": "lib:base16-bytestring",
-            "flags": [],
-            "package": "base16-bytestring",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
-            "version": "1.0.2.0"
-        },
-        {
-            "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
-            "component": "lib:base64-bytestring",
-            "flags": [],
-            "package": "base64-bytestring",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
-            "version": "1.2.1.0"
-        },
-        {
-            "cabal_sha256": "caa9b4a92abf1496c7f6a3c0f4e357426a54880077cb9f04e260a8bfa034b77b",
-            "component": "lib:splitmix",
-            "flags": [
-                "-optimised-mixer"
-            ],
-            "package": "splitmix",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
-            "version": "0.1.0.5"
-        },
-        {
-            "cabal_sha256": "32397de181e20ccaacf806ec70de9308cf044f089a2be37c936f3f8967bde867",
-            "component": "lib:random",
-            "flags": [],
-            "package": "random",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "790f4dc2d2327c453ff6aac7bf15399fd123d55e927935f68f84b5df42d9a4b4",
-            "version": "1.2.1.2"
-        },
-        {
-            "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
-            "component": "lib:edit-distance",
-            "flags": [],
-            "package": "edit-distance",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
-            "version": "0.2.2.1"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:cabal-install-solver",
-            "flags": [
-                "-debug-expensive-assertions",
-                "-debug-tracetree"
-            ],
-            "package": "cabal-install-solver",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "acb64f2af52d81b0bb92c266f11d43def726a7a7b74a2c23d219e160b54edec7",
-            "component": "lib:cryptohash-sha256",
-            "flags": [
-                "-exe",
-                "+use-cbits"
-            ],
-            "package": "cryptohash-sha256",
-            "revision": 5,
-            "source": "hackage",
-            "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
-            "version": "0.11.102.1"
-        },
-        {
-            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
-            "component": "lib:echo",
-            "flags": [
-                "-example"
-            ],
-            "package": "echo",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
-            "version": "0.1.4"
-        },
-        {
-            "cabal_sha256": "48383789821af5cc624498f3ee1d0939a070cda9468c0bfe63c951736be81c75",
-            "component": "lib:ed25519",
-            "flags": [
-                "+no-donna",
-                "+test-doctests",
-                "+test-hlint",
-                "+test-properties"
-            ],
-            "package": "ed25519",
-            "revision": 8,
-            "source": "hackage",
-            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
-            "version": "0.0.5.0"
-        },
-        {
-            "cabal_sha256": "8a3004c2de2a0b5ef0634d3da6eae62ba8d8a734bab9ed8c6cfd749e7ca08997",
-            "component": "lib:lukko",
-            "flags": [
-                "+ofd-locking"
-            ],
-            "package": "lukko",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
-            "version": "0.1.2"
-        },
-        {
-            "cabal_sha256": "e9f151d9999be8953443e730524b2792e9c0a4fb5b1463097fa1a8230870fd8a",
-            "component": "lib:tar-internal",
-            "flags": [],
-            "package": "tar",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "50bb660feec8a524416d6934251b996eaa7e39d49ae107ad505ab700d43f6814",
-            "version": "0.6.3.0"
-        },
-        {
-            "cabal_sha256": "e9f151d9999be8953443e730524b2792e9c0a4fb5b1463097fa1a8230870fd8a",
-            "component": "lib:tar",
-            "flags": [],
-            "package": "tar",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "50bb660feec8a524416d6934251b996eaa7e39d49ae107ad505ab700d43f6814",
-            "version": "0.6.3.0"
-        },
-        {
-            "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
-            "component": "lib:zlib",
-            "flags": [
-                "-bundled-c-zlib",
-                "+non-blocking-ffi",
-                "+pkg-config"
-            ],
-            "package": "zlib",
-            "revision": 2,
-            "source": "hackage",
-            "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
-            "version": "0.7.1.0"
-        },
-        {
-            "cabal_sha256": "a7311a70ce2cc820ee430c389f57f82a082f148230b37526c34eac72b7b3ff34",
-            "component": "lib:hackage-security",
-            "flags": [
-                "+cabal-syntax",
-                "+lukko"
-            ],
-            "package": "hackage-security",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
-            "version": "0.6.2.6"
-        },
-        {
-            "cabal_sha256": "e4be4a206f5ab6ddb5ae4fbb39101529196e20af5670c5d33326fea6eff886fd",
-            "component": "lib:open-browser",
-            "flags": [],
-            "package": "open-browser",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66",
-            "version": "0.2.1.0"
-        },
-        {
-            "cabal_sha256": "0322b2fcd1358f3355e0c8608efa60d27b14d1c9d476451dbcb9181363bd8b27",
-            "component": "lib:regex-base",
-            "flags": [],
-            "package": "regex-base",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1",
-            "version": "0.94.0.2"
-        },
-        {
-            "cabal_sha256": "816d6acc560cb86672f347a7bef8129578dde26ed760f9e79b4976ed9bd7b9fd",
-            "component": "lib:regex-posix",
-            "flags": [
-                "-_regex-posix-clib"
-            ],
-            "package": "regex-posix",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
-            "version": "0.96.0.1"
-        },
-        {
-            "cabal_sha256": "3e196e1362e4d0ec9dfcd7f8d58b24fac91beafaa1c8ee34dc9dee489c362377",
-            "component": "lib:resolv",
-            "flags": [],
-            "package": "resolv",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
-            "version": "0.2.0.2"
-        },
-        {
-            "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
-            "component": "lib:safe-exceptions",
-            "flags": [],
-            "package": "safe-exceptions",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
-            "version": "0.1.7.4"
-        },
-        {
-            "cabal_sha256": "2de5218cef72b8ef090bd7d0fd930ffa143242a120c62e013b5cf039858f1855",
-            "component": "lib:semaphore-compat",
-            "flags": [],
-            "package": "semaphore-compat",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2",
-            "version": "1.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:cabal-install",
-            "flags": [
-                "-git-rev",
-                "+lukko",
-                "+native-dns"
-            ],
-            "package": "cabal-install",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "exe:cabal",
-            "flags": [
-                "-git-rev",
-                "+lukko",
-                "+native-dns"
-            ],
-            "package": "cabal-install",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "e4be4a206f5ab6ddb5ae4fbb39101529196e20af5670c5d33326fea6eff886fd",
-            "component": "exe:example",
-            "flags": [],
-            "package": "open-browser",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66",
-            "version": "0.2.1.0"
-        }
-    ]
+  "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.1"
+    },
+    {
+      "package": "array",
+      "version": "0.5.4.0"
+    },
+    {
+      "package": "deepseq",
+      "version": "1.4.8.0"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.4.8"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.19.0.0"
+    },
+    {
+      "package": "containers",
+      "version": "0.6.7"
+    },
+    {
+      "package": "bytestring",
+      "version": "0.11.5.3"
+    },
+    {
+      "package": "transformers",
+      "version": "0.5.6.2"
+    },
+    {
+      "package": "mtl",
+      "version": "2.2.2"
+    },
+    {
+      "package": "stm",
+      "version": "2.5.1.0"
+    },
+    {
+      "package": "exceptions",
+      "version": "0.10.5"
+    },
+    {
+      "package": "time",
+      "version": "1.12.2"
+    },
+    {
+      "package": "binary",
+      "version": "0.8.9.1"
+    },
+    {
+      "package": "text",
+      "version": "2.0.2"
+    },
+    {
+      "package": "parsec",
+      "version": "3.1.16.1"
+    }
+  ],
+  "dependencies": [
+    {
+      "cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f",
+      "component": "lib:os-string",
+      "flags": [],
+      "package": "os-string",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0",
+      "version": "2.0.7"
+    },
+    {
+      "cabal_sha256": "099c33e0e570dad93390e1c01c1f4bc6e4f13587de8e199df3c94a6cb62c7434",
+      "component": "lib:filepath",
+      "flags": [
+        "-cpphs"
+      ],
+      "package": "filepath",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "54aa86c432f593273d7b9f607c5b5e0a1628c2674c6f4e3b5a54eb0c83db5caf",
+      "version": "1.5.4.0"
+    },
+    {
+      "cabal_sha256": "5b7f8afd7a879c3c8c3c636fd3c7543cdd5e0b514b7da90e76907ccd11434031",
+      "component": "lib:unix",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "unix",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "8117599bb3e4aa1d4656710afbc85aef2a75483eddfac5338f8cc88fb505eea2",
+      "version": "2.8.6.0"
+    },
+    {
+      "cabal_sha256": "1d68a81fa684d006b1ec73836cebe3de9a54688836915fe3e56a20389846bb4e",
+      "component": "lib:file-io",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "file-io",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "310a19e4c792de4d30c912bc71ff3becb40818d7c796b9999bcd0979dab87d5b",
+      "version": "0.1.5"
+    },
+    {
+      "cabal_sha256": "2490137bb7738bd79392959458ef5f276219ea5ba8a9a56d3e0b06315c1bb917",
+      "component": "lib:directory",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "directory",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "20a24846117fc5f8751d974b7de07210a161989410467e9adca525381b8e64cc",
+      "version": "1.3.9.0"
+    },
+    {
+      "cabal_sha256": "f6fde8ff59e7e38f9e95eca8f5154fb611c9789d1d9538aa9745c6c3cd9495b4",
+      "component": "exe:alex",
+      "flags": [],
+      "package": "alex",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "a5cd52e2dd2837138523e2e24ec3435b8cf2624afd50725105e644226e0b9ec6",
+      "version": "3.5.3.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-syntax",
+      "flags": [],
+      "package": "Cabal-syntax",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": "092ab61596e914d21983aa2e9206a74c4faa38a5a636446b5c954305821cb496",
+      "component": "lib:process",
+      "flags": [],
+      "package": "process",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "496fe0566c3915b112e9772ac9c967dfeb8d5ca04895e54ae0160522bee76e65",
+      "version": "1.6.25.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal",
+      "flags": [
+        "-git-rev"
+      ],
+      "package": "Cabal",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-hooks",
+      "flags": [],
+      "package": "Cabal-hooks",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.16"
+    },
+    {
+      "cabal_sha256": "725ef6da03d3d6e332db4de0a35bee45d72e4d31decc5ec7f153e6837af5f03e",
+      "component": "exe:hsc2hs",
+      "flags": [
+        "-in-ghc-tree"
+      ],
+      "package": "hsc2hs",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
+      "version": "0.68.10"
+    },
+    {
+      "cabal_sha256": "e3a1ec8b8dd32f1d5a541679a67de60d6626487a95f20c6bc245268ae7142ab7",
+      "component": "lib:network",
+      "flags": [
+        "-devel"
+      ],
+      "package": "network",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "68548e660632a3c09b230c33fe08cc880273372b485e65cbe7a717936de9728b",
+      "version": "3.2.7.0"
+    },
+    {
+      "cabal_sha256": "e83d97946f84fe492762ceb3b4753b4770c78b0b70e594078700baa91a5106c2",
+      "component": "lib:th-compat",
+      "flags": [],
+      "package": "th-compat",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "b781a0c059872bc95406d00e98f6fa7d9e81e744730f75186583cb4dcea0a4eb",
+      "version": "0.1.6"
+    },
+    {
+      "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
+      "component": "lib:network-uri",
+      "flags": [],
+      "package": "network-uri",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
+      "version": "2.6.4.2"
+    },
+    {
+      "cabal_sha256": "75ada03bd2d2b747319e38877a55bf8be529db4520a07d4e5ffbd24c5e850dcb",
+      "component": "lib:HTTP",
+      "flags": [
+        "-conduit10",
+        "+network-uri",
+        "-warn-as-error",
+        "-warp-tests"
+      ],
+      "package": "HTTP",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
+      "version": "4000.4.1"
+    },
+    {
+      "cabal_sha256": "573f3ab242f75465a0d67ce9d84202650a1606575e6dbd6d31ffcf4767a9a379",
+      "component": "lib:hashable",
+      "flags": [
+        "-arch-native",
+        "+integer-gmp",
+        "-random-initial-seed"
+      ],
+      "package": "hashable",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "3baee4c9027a08830d148ec524cbc0471de645e1e8426d46780ef2758df0e8da",
+      "version": "1.4.7.0"
+    },
+    {
+      "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
+      "component": "lib:async",
+      "flags": [
+        "-bench"
+      ],
+      "package": "async",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
+      "version": "2.2.5"
+    },
+    {
+      "cabal_sha256": "81a105aed2ee2f5e479448e44252b24cdfacf81a5a2106aabdd217bad94b6f40",
+      "component": "lib:atomic-counter",
+      "flags": [
+        "-dev",
+        "-no-cmm"
+      ],
+      "package": "atomic-counter",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "ce4b63391b3c0d426cbe32af89f483222602a5b43aa5379aa720bf6f45f4cf04",
+      "version": "0.1.2.3"
+    },
+    {
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "component": "lib:base16-bytestring",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
+    {
+      "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
+      "component": "lib:base64-bytestring",
+      "flags": [],
+      "package": "base64-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
+      "version": "1.2.1.0"
+    },
+    {
+      "cabal_sha256": "8f92088f1c51c8d4569279a07565f8aa6b534a6735615b2295d2961dec8f1783",
+      "component": "lib:splitmix",
+      "flags": [
+        "-optimised-mixer"
+      ],
+      "package": "splitmix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d678c41a603a62032cf7e5f8336bb8222c93990e4b59c8b291b7ca26c7eb12c7",
+      "version": "0.1.1"
+    },
+    {
+      "cabal_sha256": "0b4f649c3e78713b2ccad1535251ee34b148237fb2229d7058c2b1d9ccc324b8",
+      "component": "lib:random",
+      "flags": [],
+      "package": "random",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d840ac83f265b0cfa2a678f8ec78627eb50cf9be2f067c52c8a4239c29b71a35",
+      "version": "1.3.1"
+    },
+    {
+      "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
+      "component": "lib:edit-distance",
+      "flags": [],
+      "package": "edit-distance",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
+      "version": "0.2.2.1"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install-solver",
+      "flags": [
+        "-debug-expensive-assertions",
+        "-debug-tracetree"
+      ],
+      "package": "cabal-install-solver",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": "0e9de2ccce261e7a5b027e842f6f47f50eb0e6059a0de98a5479f75aa8164107",
+      "component": "lib:cryptohash-sha256",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 6,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
+    {
+      "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
+      "component": "lib:echo",
+      "flags": [
+        "-example"
+      ],
+      "package": "echo",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
+      "version": "0.1.4"
+    },
+    {
+      "cabal_sha256": "f1550ddbe3b53f1087a035667364011460896cc2b1ff328b521c05ed5973bb78",
+      "component": "lib:ed25519",
+      "flags": [
+        "+no-donna",
+        "+test-doctests",
+        "+test-hlint",
+        "+test-properties"
+      ],
+      "package": "ed25519",
+      "revision": 9,
+      "source": "hackage",
+      "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
+      "version": "0.0.5.0"
+    },
+    {
+      "cabal_sha256": "8334a8d810e385e1dc1423dc02945daaa1f1a9ba058e5227f1a3211e4882ca28",
+      "component": "lib:lukko",
+      "flags": [
+        "+ofd-locking"
+      ],
+      "package": "lukko",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
+      "version": "0.1.2"
+    },
+    {
+      "cabal_sha256": "8931b9ce6e63bf6202dc0c992ae3e6f2ad8e7f4b6eb69994ac6d512c6c9c0f77",
+      "component": "lib:directory-ospath-streaming",
+      "flags": [
+        "+os-string"
+      ],
+      "package": "directory-ospath-streaming",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1ade8fbee13db15e8d22a1ecdca54794617cabc69911b51d46a65e12f4554ef7",
+      "version": "0.2.2"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar-internal",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
+      "component": "lib:zlib",
+      "flags": [
+        "-bundled-c-zlib",
+        "+non-blocking-ffi",
+        "-pkg-config"
+      ],
+      "package": "zlib",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
+      "version": "0.7.1.0"
+    },
+    {
+      "cabal_sha256": "f85f6f1ef55d1f91795f2c7c476db36fd7aedb55c877d47f2a4411f0151040a9",
+      "component": "lib:hackage-security",
+      "flags": [
+        "+cabal-syntax",
+        "+lukko"
+      ],
+      "package": "hackage-security",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
+      "version": "0.6.2.6"
+    },
+    {
+      "cabal_sha256": "5b6ade9c872ff68b1c1c2ac7cd51441ae1ab7557020e744a3f60413938b9121c",
+      "component": "lib:open-browser",
+      "flags": [
+        "-example"
+      ],
+      "package": "open-browser",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c2ab01c3238e31b1560114bf8311a70a6c3538e643d3035286a166d137957804",
+      "version": "0.2.1.1"
+    },
+    {
+      "cabal_sha256": "d6c0c6d1136f5046207a331114ff4130e70640452096de7719bf03e3fceb7c7b",
+      "component": "lib:regex-base",
+      "flags": [],
+      "package": "regex-base",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e8ca2dee598c790dd1c1c4359bdd1e495d9b881f5aa1f539c22f0dd5563747bf",
+      "version": "0.94.0.3"
+    },
+    {
+      "cabal_sha256": "faf170ca5073e8d538a7a18f727a02a96f2a36c5fd53a1696263a70ab81bc6fe",
+      "component": "lib:regex-posix",
+      "flags": [
+        "-_regex-posix-clib"
+      ],
+      "package": "regex-posix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "7e570460c35c5deec54d1ba46305ddb4679c7d4aae84f631dd0c61daaeaa8150",
+      "version": "0.96.0.2"
+    },
+    {
+      "cabal_sha256": "58a8c6f17dece62891e7534c6f033e1fb1d0685e68dbe5d4fbb71256d45c6132",
+      "component": "lib:resolv",
+      "flags": [],
+      "package": "resolv",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
+      "version": "0.2.0.2"
+    },
+    {
+      "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
+      "component": "lib:safe-exceptions",
+      "flags": [],
+      "package": "safe-exceptions",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
+      "version": "0.1.7.4"
+    },
+    {
+      "cabal_sha256": "2dff81c2c0ec9bac9f8bae364db497188654d2e1e4330f4a0e2f12310149f3e9",
+      "component": "lib:semaphore-compat",
+      "flags": [],
+      "package": "semaphore-compat",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2",
+      "version": "1.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "exe:cabal",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    }
+  ]
 }
diff --git a/bootstrap/linux-9.6.4.json b/bootstrap/linux-9.6.4.json
deleted file mode 100644
index 7e806526c3a3337963891c071f4d4851a50c84b0..0000000000000000000000000000000000000000
--- a/bootstrap/linux-9.6.4.json
+++ /dev/null
@@ -1,495 +0,0 @@
-{
-    "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.2.0"
-        },
-        {
-            "package": "array",
-            "version": "0.5.6.0"
-        },
-        {
-            "package": "deepseq",
-            "version": "1.4.8.1"
-        },
-        {
-            "package": "ghc-boot-th",
-            "version": "9.6.4"
-        },
-        {
-            "package": "pretty",
-            "version": "1.1.3.6"
-        },
-        {
-            "package": "template-haskell",
-            "version": "2.20.0.0"
-        },
-        {
-            "package": "containers",
-            "version": "0.6.7"
-        },
-        {
-            "package": "bytestring",
-            "version": "0.11.5.3"
-        },
-        {
-            "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.200.1"
-        },
-        {
-            "package": "time",
-            "version": "1.12.2"
-        },
-        {
-            "package": "unix",
-            "version": "2.8.4.0"
-        },
-        {
-            "package": "directory",
-            "version": "1.3.8.1"
-        },
-        {
-            "package": "binary",
-            "version": "0.8.9.1"
-        },
-        {
-            "package": "text",
-            "version": "2.0.2"
-        },
-        {
-            "package": "parsec",
-            "version": "3.1.16.1"
-        },
-        {
-            "package": "process",
-            "version": "1.6.17.0"
-        }
-    ],
-    "dependencies": [
-        {
-            "cabal_sha256": "de553eefe0b6548a560e9d8100486310548470a403c1fa21108dd03713da5fc7",
-            "component": "exe:alex",
-            "flags": [],
-            "package": "alex",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c92efe86f8eb959ee03be6c04ee57ebc7e4abc75a6c4b26551215d7443e92a07",
-            "version": "3.5.1.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal-syntax",
-            "flags": [],
-            "package": "Cabal-syntax",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.13.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal",
-            "flags": [],
-            "package": "Cabal",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.13.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal-hooks",
-            "flags": [],
-            "package": "Cabal-hooks",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.16"
-        },
-        {
-            "cabal_sha256": "60e78b6c60dc32a77ce6c37ed5ca4e838fc5f76f02836ef64d93cd21cc002325",
-            "component": "exe:hsc2hs",
-            "flags": [
-                "-in-ghc-tree"
-            ],
-            "package": "hsc2hs",
-            "revision": 2,
-            "source": "hackage",
-            "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
-            "version": "0.68.10"
-        },
-        {
-            "cabal_sha256": "25440c1bbd5772fdbbeec068f20138121131e1a56453db0adc113dcdf9044105",
-            "component": "lib:network",
-            "flags": [
-                "-devel"
-            ],
-            "package": "network",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c45696744dc437d93a56871a3dd869965b7b50eda3fe3c1a90a35e2fbb9cb9ca",
-            "version": "3.2.0.0"
-        },
-        {
-            "cabal_sha256": "129a59ba3ccfcd06192fd6da899e2711ae276a466915a047bd6727e4a0321d2e",
-            "component": "lib:th-compat",
-            "flags": [],
-            "package": "th-compat",
-            "revision": 2,
-            "source": "hackage",
-            "src_sha256": "81f55fafc7afad7763c09cb8b7b4165ca3765edcf70ffa42c7393043a1382a1e",
-            "version": "0.1.5"
-        },
-        {
-            "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
-            "component": "lib:network-uri",
-            "flags": [],
-            "package": "network-uri",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
-            "version": "2.6.4.2"
-        },
-        {
-            "cabal_sha256": "b90ce97917703f6613ed5a8cfe1a51525b990244f5610509baa15c8499eadca3",
-            "component": "lib:HTTP",
-            "flags": [
-                "-conduit10",
-                "+network-uri",
-                "-warn-as-error",
-                "-warp-tests"
-            ],
-            "package": "HTTP",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
-            "version": "4000.4.1"
-        },
-        {
-            "cabal_sha256": "4d4186bb8d711435765253c7dc076c44a1d52896300689507ba135706ab35866",
-            "component": "lib:os-string",
-            "flags": [],
-            "package": "os-string",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "f6b388b9f9002622901d3f71437b98f95f54fbf7fe10490d319cb801c2a061ea",
-            "version": "2.0.3"
-        },
-        {
-            "cabal_sha256": "82503a1ef0a625c210e118f2785c4138f8502aacbbfd4e5d987f6baffbb87115",
-            "component": "lib:hashable",
-            "flags": [
-                "-arch-native",
-                "+integer-gmp",
-                "-random-initial-seed"
-            ],
-            "package": "hashable",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "34652a7a1d2fc9e3d764b150bd35bcd2220761c1d4c6b446b0cfac5ad5b778cb",
-            "version": "1.4.6.0"
-        },
-        {
-            "cabal_sha256": "9d5d9e605f52958d099e13a8b8f30ee56cb137c9192996245e3c533adb682cf8",
-            "component": "lib:async",
-            "flags": [
-                "-bench"
-            ],
-            "package": "async",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
-            "version": "2.2.5"
-        },
-        {
-            "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
-            "component": "lib:base16-bytestring",
-            "flags": [],
-            "package": "base16-bytestring",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
-            "version": "1.0.2.0"
-        },
-        {
-            "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
-            "component": "lib:base64-bytestring",
-            "flags": [],
-            "package": "base64-bytestring",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
-            "version": "1.2.1.0"
-        },
-        {
-            "cabal_sha256": "caa9b4a92abf1496c7f6a3c0f4e357426a54880077cb9f04e260a8bfa034b77b",
-            "component": "lib:splitmix",
-            "flags": [
-                "-optimised-mixer"
-            ],
-            "package": "splitmix",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
-            "version": "0.1.0.5"
-        },
-        {
-            "cabal_sha256": "32397de181e20ccaacf806ec70de9308cf044f089a2be37c936f3f8967bde867",
-            "component": "lib:random",
-            "flags": [],
-            "package": "random",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "790f4dc2d2327c453ff6aac7bf15399fd123d55e927935f68f84b5df42d9a4b4",
-            "version": "1.2.1.2"
-        },
-        {
-            "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
-            "component": "lib:edit-distance",
-            "flags": [],
-            "package": "edit-distance",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
-            "version": "0.2.2.1"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:cabal-install-solver",
-            "flags": [
-                "-debug-expensive-assertions",
-                "-debug-tracetree"
-            ],
-            "package": "cabal-install-solver",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.13.0.0"
-        },
-        {
-            "cabal_sha256": "200d756a7b3bab7ca2bac6eb50ed8252f26de77ac8def490a3ad743f2933acbd",
-            "component": "lib:cryptohash-sha256",
-            "flags": [
-                "-exe",
-                "+use-cbits"
-            ],
-            "package": "cryptohash-sha256",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
-            "version": "0.11.102.1"
-        },
-        {
-            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
-            "component": "lib:echo",
-            "flags": [
-                "-example"
-            ],
-            "package": "echo",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
-            "version": "0.1.4"
-        },
-        {
-            "cabal_sha256": "48383789821af5cc624498f3ee1d0939a070cda9468c0bfe63c951736be81c75",
-            "component": "lib:ed25519",
-            "flags": [
-                "+no-donna",
-                "+test-doctests",
-                "+test-hlint",
-                "+test-properties"
-            ],
-            "package": "ed25519",
-            "revision": 8,
-            "source": "hackage",
-            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
-            "version": "0.0.5.0"
-        },
-        {
-            "cabal_sha256": "8a3004c2de2a0b5ef0634d3da6eae62ba8d8a734bab9ed8c6cfd749e7ca08997",
-            "component": "lib:lukko",
-            "flags": [
-                "+ofd-locking"
-            ],
-            "package": "lukko",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
-            "version": "0.1.2"
-        },
-        {
-            "cabal_sha256": "b853b4296cb23386feda17dc0d9065af6709d22d684ec734aab65403d59ed547",
-            "component": "lib:tar-internal",
-            "flags": [],
-            "package": "tar",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "50bb660feec8a524416d6934251b996eaa7e39d49ae107ad505ab700d43f6814",
-            "version": "0.6.3.0"
-        },
-        {
-            "cabal_sha256": "b853b4296cb23386feda17dc0d9065af6709d22d684ec734aab65403d59ed547",
-            "component": "lib:tar",
-            "flags": [],
-            "package": "tar",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "50bb660feec8a524416d6934251b996eaa7e39d49ae107ad505ab700d43f6814",
-            "version": "0.6.3.0"
-        },
-        {
-            "cabal_sha256": "d6696f2b55ab4a50b8de57947abca308604eb7cf8287c40bf69cfa26133e24d3",
-            "component": "lib:zlib",
-            "flags": [
-                "-bundled-c-zlib",
-                "+non-blocking-ffi",
-                "+pkg-config"
-            ],
-            "package": "zlib",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
-            "version": "0.7.1.0"
-        },
-        {
-            "cabal_sha256": "8ff70524314f9ad706f8e5051d7150ee44cb82170147879b245bdab279604b16",
-            "component": "lib:hackage-security",
-            "flags": [
-                "+cabal-syntax",
-                "+lukko"
-            ],
-            "package": "hackage-security",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
-            "version": "0.6.2.6"
-        },
-        {
-            "cabal_sha256": "e4be4a206f5ab6ddb5ae4fbb39101529196e20af5670c5d33326fea6eff886fd",
-            "component": "lib:open-browser",
-            "flags": [],
-            "package": "open-browser",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66",
-            "version": "0.2.1.0"
-        },
-        {
-            "cabal_sha256": "0322b2fcd1358f3355e0c8608efa60d27b14d1c9d476451dbcb9181363bd8b27",
-            "component": "lib:regex-base",
-            "flags": [],
-            "package": "regex-base",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1",
-            "version": "0.94.0.2"
-        },
-        {
-            "cabal_sha256": "816d6acc560cb86672f347a7bef8129578dde26ed760f9e79b4976ed9bd7b9fd",
-            "component": "lib:regex-posix",
-            "flags": [
-                "-_regex-posix-clib"
-            ],
-            "package": "regex-posix",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
-            "version": "0.96.0.1"
-        },
-        {
-            "cabal_sha256": "4868265ab5760d2fdeb96625b138c8df25d41b9ee2651fa299ed019a69403045",
-            "component": "lib:resolv",
-            "flags": [],
-            "package": "resolv",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
-            "version": "0.2.0.2"
-        },
-        {
-            "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
-            "component": "lib:safe-exceptions",
-            "flags": [],
-            "package": "safe-exceptions",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
-            "version": "0.1.7.4"
-        },
-        {
-            "cabal_sha256": "2de5218cef72b8ef090bd7d0fd930ffa143242a120c62e013b5cf039858f1855",
-            "component": "lib:semaphore-compat",
-            "flags": [],
-            "package": "semaphore-compat",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2",
-            "version": "1.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:cabal-install",
-            "flags": [
-                "+lukko",
-                "+native-dns"
-            ],
-            "package": "cabal-install",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.13.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "exe:cabal",
-            "flags": [
-                "+lukko",
-                "+native-dns"
-            ],
-            "package": "cabal-install",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.13.0.0"
-        },
-        {
-            "cabal_sha256": "e4be4a206f5ab6ddb5ae4fbb39101529196e20af5670c5d33326fea6eff886fd",
-            "component": "exe:example",
-            "flags": [],
-            "package": "open-browser",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66",
-            "version": "0.2.1.0"
-        }
-    ]
-}
diff --git a/bootstrap/linux-9.6.7.json b/bootstrap/linux-9.6.7.json
new file mode 100644
index 0000000000000000000000000000000000000000..e32d157fb2438787e54051dc6b632f077db80e67
--- /dev/null
+++ b/bootstrap/linux-9.6.7.json
@@ -0,0 +1,527 @@
+{
+  "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.3.0"
+    },
+    {
+      "package": "array",
+      "version": "0.5.8.0"
+    },
+    {
+      "package": "deepseq",
+      "version": "1.4.8.1"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.6.7"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.20.0.0"
+    },
+    {
+      "package": "containers",
+      "version": "0.6.7"
+    },
+    {
+      "package": "bytestring",
+      "version": "0.11.5.4"
+    },
+    {
+      "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.301.0"
+    },
+    {
+      "package": "time",
+      "version": "1.12.2"
+    },
+    {
+      "package": "unix",
+      "version": "2.8.6.0"
+    },
+    {
+      "package": "directory",
+      "version": "1.3.8.5"
+    },
+    {
+      "package": "binary",
+      "version": "0.8.9.1"
+    },
+    {
+      "package": "text",
+      "version": "2.0.2"
+    },
+    {
+      "package": "parsec",
+      "version": "3.1.16.1"
+    },
+    {
+      "package": "process",
+      "version": "1.6.19.0"
+    }
+  ],
+  "dependencies": [
+    {
+      "cabal_sha256": "f6fde8ff59e7e38f9e95eca8f5154fb611c9789d1d9538aa9745c6c3cd9495b4",
+      "component": "exe:alex",
+      "flags": [],
+      "package": "alex",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "a5cd52e2dd2837138523e2e24ec3435b8cf2624afd50725105e644226e0b9ec6",
+      "version": "3.5.3.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-syntax",
+      "flags": [],
+      "package": "Cabal-syntax",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal",
+      "flags": [
+        "-git-rev"
+      ],
+      "package": "Cabal",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-hooks",
+      "flags": [],
+      "package": "Cabal-hooks",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.16"
+    },
+    {
+      "cabal_sha256": "725ef6da03d3d6e332db4de0a35bee45d72e4d31decc5ec7f153e6837af5f03e",
+      "component": "exe:hsc2hs",
+      "flags": [
+        "-in-ghc-tree"
+      ],
+      "package": "hsc2hs",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
+      "version": "0.68.10"
+    },
+    {
+      "cabal_sha256": "e3a1ec8b8dd32f1d5a541679a67de60d6626487a95f20c6bc245268ae7142ab7",
+      "component": "lib:network",
+      "flags": [
+        "-devel"
+      ],
+      "package": "network",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "68548e660632a3c09b230c33fe08cc880273372b485e65cbe7a717936de9728b",
+      "version": "3.2.7.0"
+    },
+    {
+      "cabal_sha256": "e83d97946f84fe492762ceb3b4753b4770c78b0b70e594078700baa91a5106c2",
+      "component": "lib:th-compat",
+      "flags": [],
+      "package": "th-compat",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "b781a0c059872bc95406d00e98f6fa7d9e81e744730f75186583cb4dcea0a4eb",
+      "version": "0.1.6"
+    },
+    {
+      "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
+      "component": "lib:network-uri",
+      "flags": [],
+      "package": "network-uri",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
+      "version": "2.6.4.2"
+    },
+    {
+      "cabal_sha256": "75ada03bd2d2b747319e38877a55bf8be529db4520a07d4e5ffbd24c5e850dcb",
+      "component": "lib:HTTP",
+      "flags": [
+        "-conduit10",
+        "+network-uri",
+        "-warn-as-error",
+        "-warp-tests"
+      ],
+      "package": "HTTP",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
+      "version": "4000.4.1"
+    },
+    {
+      "cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f",
+      "component": "lib:os-string",
+      "flags": [],
+      "package": "os-string",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0",
+      "version": "2.0.7"
+    },
+    {
+      "cabal_sha256": "2f23146cbe0325029927b221647695a4c7d6e97548ff731110979e34361f58ef",
+      "component": "lib:hashable",
+      "flags": [
+        "-arch-native",
+        "-random-initial-seed"
+      ],
+      "package": "hashable",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "e58b3a8e18da5f6cd7e937e5fd683e500bb1f8276b3768269759119ca0cddb6a",
+      "version": "1.5.0.0"
+    },
+    {
+      "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
+      "component": "lib:async",
+      "flags": [
+        "-bench"
+      ],
+      "package": "async",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
+      "version": "2.2.5"
+    },
+    {
+      "cabal_sha256": "81a105aed2ee2f5e479448e44252b24cdfacf81a5a2106aabdd217bad94b6f40",
+      "component": "lib:atomic-counter",
+      "flags": [
+        "-dev",
+        "-no-cmm"
+      ],
+      "package": "atomic-counter",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "ce4b63391b3c0d426cbe32af89f483222602a5b43aa5379aa720bf6f45f4cf04",
+      "version": "0.1.2.3"
+    },
+    {
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "component": "lib:base16-bytestring",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
+    {
+      "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
+      "component": "lib:base64-bytestring",
+      "flags": [],
+      "package": "base64-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
+      "version": "1.2.1.0"
+    },
+    {
+      "cabal_sha256": "8f92088f1c51c8d4569279a07565f8aa6b534a6735615b2295d2961dec8f1783",
+      "component": "lib:splitmix",
+      "flags": [
+        "-optimised-mixer"
+      ],
+      "package": "splitmix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d678c41a603a62032cf7e5f8336bb8222c93990e4b59c8b291b7ca26c7eb12c7",
+      "version": "0.1.1"
+    },
+    {
+      "cabal_sha256": "0b4f649c3e78713b2ccad1535251ee34b148237fb2229d7058c2b1d9ccc324b8",
+      "component": "lib:random",
+      "flags": [],
+      "package": "random",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d840ac83f265b0cfa2a678f8ec78627eb50cf9be2f067c52c8a4239c29b71a35",
+      "version": "1.3.1"
+    },
+    {
+      "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
+      "component": "lib:edit-distance",
+      "flags": [],
+      "package": "edit-distance",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
+      "version": "0.2.2.1"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install-solver",
+      "flags": [
+        "-debug-expensive-assertions",
+        "-debug-tracetree"
+      ],
+      "package": "cabal-install-solver",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": "0e9de2ccce261e7a5b027e842f6f47f50eb0e6059a0de98a5479f75aa8164107",
+      "component": "lib:cryptohash-sha256",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 6,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
+    {
+      "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
+      "component": "lib:echo",
+      "flags": [
+        "-example"
+      ],
+      "package": "echo",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
+      "version": "0.1.4"
+    },
+    {
+      "cabal_sha256": "f1550ddbe3b53f1087a035667364011460896cc2b1ff328b521c05ed5973bb78",
+      "component": "lib:ed25519",
+      "flags": [
+        "+no-donna",
+        "+test-doctests",
+        "+test-hlint",
+        "+test-properties"
+      ],
+      "package": "ed25519",
+      "revision": 9,
+      "source": "hackage",
+      "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
+      "version": "0.0.5.0"
+    },
+    {
+      "cabal_sha256": "8334a8d810e385e1dc1423dc02945daaa1f1a9ba058e5227f1a3211e4882ca28",
+      "component": "lib:lukko",
+      "flags": [
+        "+ofd-locking"
+      ],
+      "package": "lukko",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
+      "version": "0.1.2"
+    },
+    {
+      "cabal_sha256": "8931b9ce6e63bf6202dc0c992ae3e6f2ad8e7f4b6eb69994ac6d512c6c9c0f77",
+      "component": "lib:directory-ospath-streaming",
+      "flags": [
+        "-os-string"
+      ],
+      "package": "directory-ospath-streaming",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1ade8fbee13db15e8d22a1ecdca54794617cabc69911b51d46a65e12f4554ef7",
+      "version": "0.2.2"
+    },
+    {
+      "cabal_sha256": "1d68a81fa684d006b1ec73836cebe3de9a54688836915fe3e56a20389846bb4e",
+      "component": "lib:file-io",
+      "flags": [
+        "-os-string"
+      ],
+      "package": "file-io",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "310a19e4c792de4d30c912bc71ff3becb40818d7c796b9999bcd0979dab87d5b",
+      "version": "0.1.5"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar-internal",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
+      "component": "lib:zlib",
+      "flags": [
+        "-bundled-c-zlib",
+        "+non-blocking-ffi",
+        "-pkg-config"
+      ],
+      "package": "zlib",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
+      "version": "0.7.1.0"
+    },
+    {
+      "cabal_sha256": "f85f6f1ef55d1f91795f2c7c476db36fd7aedb55c877d47f2a4411f0151040a9",
+      "component": "lib:hackage-security",
+      "flags": [
+        "+cabal-syntax",
+        "+lukko"
+      ],
+      "package": "hackage-security",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
+      "version": "0.6.2.6"
+    },
+    {
+      "cabal_sha256": "5b6ade9c872ff68b1c1c2ac7cd51441ae1ab7557020e744a3f60413938b9121c",
+      "component": "lib:open-browser",
+      "flags": [
+        "-example"
+      ],
+      "package": "open-browser",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c2ab01c3238e31b1560114bf8311a70a6c3538e643d3035286a166d137957804",
+      "version": "0.2.1.1"
+    },
+    {
+      "cabal_sha256": "d6c0c6d1136f5046207a331114ff4130e70640452096de7719bf03e3fceb7c7b",
+      "component": "lib:regex-base",
+      "flags": [],
+      "package": "regex-base",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e8ca2dee598c790dd1c1c4359bdd1e495d9b881f5aa1f539c22f0dd5563747bf",
+      "version": "0.94.0.3"
+    },
+    {
+      "cabal_sha256": "faf170ca5073e8d538a7a18f727a02a96f2a36c5fd53a1696263a70ab81bc6fe",
+      "component": "lib:regex-posix",
+      "flags": [
+        "-_regex-posix-clib"
+      ],
+      "package": "regex-posix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "7e570460c35c5deec54d1ba46305ddb4679c7d4aae84f631dd0c61daaeaa8150",
+      "version": "0.96.0.2"
+    },
+    {
+      "cabal_sha256": "58a8c6f17dece62891e7534c6f033e1fb1d0685e68dbe5d4fbb71256d45c6132",
+      "component": "lib:resolv",
+      "flags": [],
+      "package": "resolv",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
+      "version": "0.2.0.2"
+    },
+    {
+      "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
+      "component": "lib:safe-exceptions",
+      "flags": [],
+      "package": "safe-exceptions",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
+      "version": "0.1.7.4"
+    },
+    {
+      "cabal_sha256": "2dff81c2c0ec9bac9f8bae364db497188654d2e1e4330f4a0e2f12310149f3e9",
+      "component": "lib:semaphore-compat",
+      "flags": [],
+      "package": "semaphore-compat",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2",
+      "version": "1.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "exe:cabal",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    }
+  ]
+}
diff --git a/bootstrap/linux-9.8.2.json b/bootstrap/linux-9.8.2.json
deleted file mode 100644
index 69cb0baa82e556255b87fd59799bdff5d1a0b613..0000000000000000000000000000000000000000
--- a/bootstrap/linux-9.8.2.json
+++ /dev/null
@@ -1,540 +0,0 @@
-{
-    "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.1.0"
-        },
-        {
-            "package": "array",
-            "version": "0.5.6.0"
-        },
-        {
-            "package": "deepseq",
-            "version": "1.5.0.0"
-        },
-        {
-            "package": "ghc-boot-th",
-            "version": "9.8.2"
-        },
-        {
-            "package": "pretty",
-            "version": "1.1.3.6"
-        },
-        {
-            "package": "template-haskell",
-            "version": "2.21.0.0"
-        },
-        {
-            "package": "containers",
-            "version": "0.6.8"
-        },
-        {
-            "package": "bytestring",
-            "version": "0.12.1.0"
-        },
-        {
-            "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": "time",
-            "version": "1.12.2"
-        },
-        {
-            "package": "binary",
-            "version": "0.8.9.1"
-        },
-        {
-            "package": "text",
-            "version": "2.1.1"
-        },
-        {
-            "package": "parsec",
-            "version": "3.1.17.0"
-        }
-    ],
-    "dependencies": [
-        {
-            "cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f",
-            "component": "lib:os-string",
-            "flags": [],
-            "package": "os-string",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0",
-            "version": "2.0.7"
-        },
-        {
-            "cabal_sha256": "099c33e0e570dad93390e1c01c1f4bc6e4f13587de8e199df3c94a6cb62c7434",
-            "component": "lib:filepath",
-            "flags": [
-                "-cpphs"
-            ],
-            "package": "filepath",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "54aa86c432f593273d7b9f607c5b5e0a1628c2674c6f4e3b5a54eb0c83db5caf",
-            "version": "1.5.4.0"
-        },
-        {
-            "cabal_sha256": "5b7f8afd7a879c3c8c3c636fd3c7543cdd5e0b514b7da90e76907ccd11434031",
-            "component": "lib:unix",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "unix",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "8117599bb3e4aa1d4656710afbc85aef2a75483eddfac5338f8cc88fb505eea2",
-            "version": "2.8.6.0"
-        },
-        {
-            "cabal_sha256": "e3e1866eab82cb28f6a5f28507643da3987008b737e66a3c7398f39f16d824dc",
-            "component": "lib:file-io",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "file-io",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "e3d9113a015c57e3d8c2294550c41544f84a265291fed96cca697f91b6e86f52",
-            "version": "0.1.4"
-        },
-        {
-            "cabal_sha256": "2490137bb7738bd79392959458ef5f276219ea5ba8a9a56d3e0b06315c1bb917",
-            "component": "lib:directory",
-            "flags": [
-                "+os-string"
-            ],
-            "package": "directory",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "20a24846117fc5f8751d974b7de07210a161989410467e9adca525381b8e64cc",
-            "version": "1.3.9.0"
-        },
-        {
-            "cabal_sha256": "de553eefe0b6548a560e9d8100486310548470a403c1fa21108dd03713da5fc7",
-            "component": "exe:alex",
-            "flags": [],
-            "package": "alex",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c92efe86f8eb959ee03be6c04ee57ebc7e4abc75a6c4b26551215d7443e92a07",
-            "version": "3.5.1.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal-syntax",
-            "flags": [],
-            "package": "Cabal-syntax",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "9a0b2ef8096517fa0e0c7a5e9a5c2ae5744ed824c3331005f9408245810df345",
-            "component": "lib:process",
-            "flags": [],
-            "package": "process",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "496fe0566c3915b112e9772ac9c967dfeb8d5ca04895e54ae0160522bee76e65",
-            "version": "1.6.25.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal",
-            "flags": [
-                "-git-rev"
-            ],
-            "package": "Cabal",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:Cabal-hooks",
-            "flags": [],
-            "package": "Cabal-hooks",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.16"
-        },
-        {
-            "cabal_sha256": "276325277350cd2c2c88916ed3ae5cd35b2b4f494ec594fbd9534081eb7fb759",
-            "component": "exe:hsc2hs",
-            "flags": [
-                "-in-ghc-tree"
-            ],
-            "package": "hsc2hs",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
-            "version": "0.68.10"
-        },
-        {
-            "cabal_sha256": "b0fafb2834530084f6406017500ae619f9e5e2049787a6750c68e0d331fd62dc",
-            "component": "lib:network",
-            "flags": [
-                "-devel"
-            ],
-            "package": "network",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "dbd8a10456908294eb5ab9c522bf2da75444d958429a643a821464213698523e",
-            "version": "3.2.6.0"
-        },
-        {
-            "cabal_sha256": "129a59ba3ccfcd06192fd6da899e2711ae276a466915a047bd6727e4a0321d2e",
-            "component": "lib:th-compat",
-            "flags": [],
-            "package": "th-compat",
-            "revision": 2,
-            "source": "hackage",
-            "src_sha256": "81f55fafc7afad7763c09cb8b7b4165ca3765edcf70ffa42c7393043a1382a1e",
-            "version": "0.1.5"
-        },
-        {
-            "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
-            "component": "lib:network-uri",
-            "flags": [],
-            "package": "network-uri",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
-            "version": "2.6.4.2"
-        },
-        {
-            "cabal_sha256": "b90ce97917703f6613ed5a8cfe1a51525b990244f5610509baa15c8499eadca3",
-            "component": "lib:HTTP",
-            "flags": [
-                "-conduit10",
-                "+network-uri",
-                "-warn-as-error",
-                "-warp-tests"
-            ],
-            "package": "HTTP",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
-            "version": "4000.4.1"
-        },
-        {
-            "cabal_sha256": "2f23146cbe0325029927b221647695a4c7d6e97548ff731110979e34361f58ef",
-            "component": "lib:hashable",
-            "flags": [
-                "-arch-native",
-                "-random-initial-seed"
-            ],
-            "package": "hashable",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "e58b3a8e18da5f6cd7e937e5fd683e500bb1f8276b3768269759119ca0cddb6a",
-            "version": "1.5.0.0"
-        },
-        {
-            "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
-            "component": "lib:async",
-            "flags": [
-                "-bench"
-            ],
-            "package": "async",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
-            "version": "2.2.5"
-        },
-        {
-            "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
-            "component": "lib:base16-bytestring",
-            "flags": [],
-            "package": "base16-bytestring",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
-            "version": "1.0.2.0"
-        },
-        {
-            "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
-            "component": "lib:base64-bytestring",
-            "flags": [],
-            "package": "base64-bytestring",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
-            "version": "1.2.1.0"
-        },
-        {
-            "cabal_sha256": "caa9b4a92abf1496c7f6a3c0f4e357426a54880077cb9f04e260a8bfa034b77b",
-            "component": "lib:splitmix",
-            "flags": [
-                "-optimised-mixer"
-            ],
-            "package": "splitmix",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "9df07a9611ef45f1b1258a0b412f4d02c920248f69d2e2ce8ccda328f7e13002",
-            "version": "0.1.0.5"
-        },
-        {
-            "cabal_sha256": "32397de181e20ccaacf806ec70de9308cf044f089a2be37c936f3f8967bde867",
-            "component": "lib:random",
-            "flags": [],
-            "package": "random",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "790f4dc2d2327c453ff6aac7bf15399fd123d55e927935f68f84b5df42d9a4b4",
-            "version": "1.2.1.2"
-        },
-        {
-            "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
-            "component": "lib:edit-distance",
-            "flags": [],
-            "package": "edit-distance",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
-            "version": "0.2.2.1"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:cabal-install-solver",
-            "flags": [
-                "-debug-expensive-assertions",
-                "-debug-tracetree"
-            ],
-            "package": "cabal-install-solver",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "acb64f2af52d81b0bb92c266f11d43def726a7a7b74a2c23d219e160b54edec7",
-            "component": "lib:cryptohash-sha256",
-            "flags": [
-                "-exe",
-                "+use-cbits"
-            ],
-            "package": "cryptohash-sha256",
-            "revision": 5,
-            "source": "hackage",
-            "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
-            "version": "0.11.102.1"
-        },
-        {
-            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
-            "component": "lib:echo",
-            "flags": [
-                "-example"
-            ],
-            "package": "echo",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
-            "version": "0.1.4"
-        },
-        {
-            "cabal_sha256": "48383789821af5cc624498f3ee1d0939a070cda9468c0bfe63c951736be81c75",
-            "component": "lib:ed25519",
-            "flags": [
-                "+no-donna",
-                "+test-doctests",
-                "+test-hlint",
-                "+test-properties"
-            ],
-            "package": "ed25519",
-            "revision": 8,
-            "source": "hackage",
-            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
-            "version": "0.0.5.0"
-        },
-        {
-            "cabal_sha256": "8a3004c2de2a0b5ef0634d3da6eae62ba8d8a734bab9ed8c6cfd749e7ca08997",
-            "component": "lib:lukko",
-            "flags": [
-                "+ofd-locking"
-            ],
-            "package": "lukko",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
-            "version": "0.1.2"
-        },
-        {
-            "cabal_sha256": "e9f151d9999be8953443e730524b2792e9c0a4fb5b1463097fa1a8230870fd8a",
-            "component": "lib:tar-internal",
-            "flags": [],
-            "package": "tar",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "50bb660feec8a524416d6934251b996eaa7e39d49ae107ad505ab700d43f6814",
-            "version": "0.6.3.0"
-        },
-        {
-            "cabal_sha256": "e9f151d9999be8953443e730524b2792e9c0a4fb5b1463097fa1a8230870fd8a",
-            "component": "lib:tar",
-            "flags": [],
-            "package": "tar",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "50bb660feec8a524416d6934251b996eaa7e39d49ae107ad505ab700d43f6814",
-            "version": "0.6.3.0"
-        },
-        {
-            "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
-            "component": "lib:zlib",
-            "flags": [
-                "-bundled-c-zlib",
-                "+non-blocking-ffi",
-                "+pkg-config"
-            ],
-            "package": "zlib",
-            "revision": 2,
-            "source": "hackage",
-            "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
-            "version": "0.7.1.0"
-        },
-        {
-            "cabal_sha256": "a7311a70ce2cc820ee430c389f57f82a082f148230b37526c34eac72b7b3ff34",
-            "component": "lib:hackage-security",
-            "flags": [
-                "+cabal-syntax",
-                "+lukko"
-            ],
-            "package": "hackage-security",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
-            "version": "0.6.2.6"
-        },
-        {
-            "cabal_sha256": "e4be4a206f5ab6ddb5ae4fbb39101529196e20af5670c5d33326fea6eff886fd",
-            "component": "lib:open-browser",
-            "flags": [],
-            "package": "open-browser",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66",
-            "version": "0.2.1.0"
-        },
-        {
-            "cabal_sha256": "0322b2fcd1358f3355e0c8608efa60d27b14d1c9d476451dbcb9181363bd8b27",
-            "component": "lib:regex-base",
-            "flags": [],
-            "package": "regex-base",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1",
-            "version": "0.94.0.2"
-        },
-        {
-            "cabal_sha256": "816d6acc560cb86672f347a7bef8129578dde26ed760f9e79b4976ed9bd7b9fd",
-            "component": "lib:regex-posix",
-            "flags": [
-                "-_regex-posix-clib"
-            ],
-            "package": "regex-posix",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
-            "version": "0.96.0.1"
-        },
-        {
-            "cabal_sha256": "3e196e1362e4d0ec9dfcd7f8d58b24fac91beafaa1c8ee34dc9dee489c362377",
-            "component": "lib:resolv",
-            "flags": [],
-            "package": "resolv",
-            "revision": 4,
-            "source": "hackage",
-            "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
-            "version": "0.2.0.2"
-        },
-        {
-            "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
-            "component": "lib:safe-exceptions",
-            "flags": [],
-            "package": "safe-exceptions",
-            "revision": 1,
-            "source": "hackage",
-            "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
-            "version": "0.1.7.4"
-        },
-        {
-            "cabal_sha256": "2de5218cef72b8ef090bd7d0fd930ffa143242a120c62e013b5cf039858f1855",
-            "component": "lib:semaphore-compat",
-            "flags": [],
-            "package": "semaphore-compat",
-            "revision": 3,
-            "source": "hackage",
-            "src_sha256": "1c6e6fab021c2ccee5d86112fb1c0bd016d15e0cf70c489dae5fb5ec156ed9e2",
-            "version": "1.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "lib:cabal-install",
-            "flags": [
-                "-git-rev",
-                "+lukko",
-                "+native-dns"
-            ],
-            "package": "cabal-install",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": null,
-            "component": "exe:cabal",
-            "flags": [
-                "-git-rev",
-                "+lukko",
-                "+native-dns"
-            ],
-            "package": "cabal-install",
-            "revision": null,
-            "source": "local",
-            "src_sha256": null,
-            "version": "3.15.0.0"
-        },
-        {
-            "cabal_sha256": "e4be4a206f5ab6ddb5ae4fbb39101529196e20af5670c5d33326fea6eff886fd",
-            "component": "exe:example",
-            "flags": [],
-            "package": "open-browser",
-            "revision": 0,
-            "source": "hackage",
-            "src_sha256": "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66",
-            "version": "0.2.1.0"
-        }
-    ]
-}
diff --git a/bootstrap/linux-9.8.4.json b/bootstrap/linux-9.8.4.json
new file mode 100644
index 0000000000000000000000000000000000000000..fa49c7f328135f45cc971f635a4d09a83a7a2450
--- /dev/null
+++ b/bootstrap/linux-9.8.4.json
@@ -0,0 +1,521 @@
+{
+  "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.2.0"
+    },
+    {
+      "package": "array",
+      "version": "0.5.8.0"
+    },
+    {
+      "package": "deepseq",
+      "version": "1.5.1.0"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.8.4"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.21.0.0"
+    },
+    {
+      "package": "containers",
+      "version": "0.6.8"
+    },
+    {
+      "package": "bytestring",
+      "version": "0.12.1.0"
+    },
+    {
+      "package": "transformers",
+      "version": "0.6.1.0"
+    },
+    {
+      "package": "mtl",
+      "version": "2.3.1"
+    },
+    {
+      "package": "stm",
+      "version": "2.5.3.1"
+    },
+    {
+      "package": "exceptions",
+      "version": "0.10.7"
+    },
+    {
+      "package": "filepath",
+      "version": "1.4.301.0"
+    },
+    {
+      "package": "time",
+      "version": "1.12.2"
+    },
+    {
+      "package": "unix",
+      "version": "2.8.6.0"
+    },
+    {
+      "package": "directory",
+      "version": "1.3.8.5"
+    },
+    {
+      "package": "binary",
+      "version": "0.8.9.1"
+    },
+    {
+      "package": "text",
+      "version": "2.1.1"
+    },
+    {
+      "package": "parsec",
+      "version": "3.1.17.0"
+    },
+    {
+      "package": "process",
+      "version": "1.6.25.0"
+    },
+    {
+      "package": "semaphore-compat",
+      "version": "1.0.0"
+    }
+  ],
+  "dependencies": [
+    {
+      "cabal_sha256": "f6fde8ff59e7e38f9e95eca8f5154fb611c9789d1d9538aa9745c6c3cd9495b4",
+      "component": "exe:alex",
+      "flags": [],
+      "package": "alex",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "a5cd52e2dd2837138523e2e24ec3435b8cf2624afd50725105e644226e0b9ec6",
+      "version": "3.5.3.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-syntax",
+      "flags": [],
+      "package": "Cabal-syntax",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal",
+      "flags": [
+        "-git-rev"
+      ],
+      "package": "Cabal",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:Cabal-hooks",
+      "flags": [],
+      "package": "Cabal-hooks",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.16"
+    },
+    {
+      "cabal_sha256": "725ef6da03d3d6e332db4de0a35bee45d72e4d31decc5ec7f153e6837af5f03e",
+      "component": "exe:hsc2hs",
+      "flags": [
+        "-in-ghc-tree"
+      ],
+      "package": "hsc2hs",
+      "revision": 4,
+      "source": "hackage",
+      "src_sha256": "6f4e34d788fe2ca7091ee0a10307ee8a7c060a1ba890f2bffad16a7d4d5cef76",
+      "version": "0.68.10"
+    },
+    {
+      "cabal_sha256": "e3a1ec8b8dd32f1d5a541679a67de60d6626487a95f20c6bc245268ae7142ab7",
+      "component": "lib:network",
+      "flags": [
+        "-devel"
+      ],
+      "package": "network",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "68548e660632a3c09b230c33fe08cc880273372b485e65cbe7a717936de9728b",
+      "version": "3.2.7.0"
+    },
+    {
+      "cabal_sha256": "e83d97946f84fe492762ceb3b4753b4770c78b0b70e594078700baa91a5106c2",
+      "component": "lib:th-compat",
+      "flags": [],
+      "package": "th-compat",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "b781a0c059872bc95406d00e98f6fa7d9e81e744730f75186583cb4dcea0a4eb",
+      "version": "0.1.6"
+    },
+    {
+      "cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
+      "component": "lib:network-uri",
+      "flags": [],
+      "package": "network-uri",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
+      "version": "2.6.4.2"
+    },
+    {
+      "cabal_sha256": "75ada03bd2d2b747319e38877a55bf8be529db4520a07d4e5ffbd24c5e850dcb",
+      "component": "lib:HTTP",
+      "flags": [
+        "-conduit10",
+        "+network-uri",
+        "-warn-as-error",
+        "-warp-tests"
+      ],
+      "package": "HTTP",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
+      "version": "4000.4.1"
+    },
+    {
+      "cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f",
+      "component": "lib:os-string",
+      "flags": [],
+      "package": "os-string",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0",
+      "version": "2.0.7"
+    },
+    {
+      "cabal_sha256": "2f23146cbe0325029927b221647695a4c7d6e97548ff731110979e34361f58ef",
+      "component": "lib:hashable",
+      "flags": [
+        "-arch-native",
+        "-random-initial-seed"
+      ],
+      "package": "hashable",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "e58b3a8e18da5f6cd7e937e5fd683e500bb1f8276b3768269759119ca0cddb6a",
+      "version": "1.5.0.0"
+    },
+    {
+      "cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
+      "component": "lib:async",
+      "flags": [
+        "-bench"
+      ],
+      "package": "async",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
+      "version": "2.2.5"
+    },
+    {
+      "cabal_sha256": "81a105aed2ee2f5e479448e44252b24cdfacf81a5a2106aabdd217bad94b6f40",
+      "component": "lib:atomic-counter",
+      "flags": [
+        "-dev",
+        "-no-cmm"
+      ],
+      "package": "atomic-counter",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "ce4b63391b3c0d426cbe32af89f483222602a5b43aa5379aa720bf6f45f4cf04",
+      "version": "0.1.2.3"
+    },
+    {
+      "cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
+      "component": "lib:base16-bytestring",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
+    {
+      "cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
+      "component": "lib:base64-bytestring",
+      "flags": [],
+      "package": "base64-bytestring",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
+      "version": "1.2.1.0"
+    },
+    {
+      "cabal_sha256": "8f92088f1c51c8d4569279a07565f8aa6b534a6735615b2295d2961dec8f1783",
+      "component": "lib:splitmix",
+      "flags": [
+        "-optimised-mixer"
+      ],
+      "package": "splitmix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d678c41a603a62032cf7e5f8336bb8222c93990e4b59c8b291b7ca26c7eb12c7",
+      "version": "0.1.1"
+    },
+    {
+      "cabal_sha256": "0b4f649c3e78713b2ccad1535251ee34b148237fb2229d7058c2b1d9ccc324b8",
+      "component": "lib:random",
+      "flags": [],
+      "package": "random",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "d840ac83f265b0cfa2a678f8ec78627eb50cf9be2f067c52c8a4239c29b71a35",
+      "version": "1.3.1"
+    },
+    {
+      "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
+      "component": "lib:edit-distance",
+      "flags": [],
+      "package": "edit-distance",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
+      "version": "0.2.2.1"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install-solver",
+      "flags": [
+        "-debug-expensive-assertions",
+        "-debug-tracetree"
+      ],
+      "package": "cabal-install-solver",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": "0e9de2ccce261e7a5b027e842f6f47f50eb0e6059a0de98a5479f75aa8164107",
+      "component": "lib:cryptohash-sha256",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 6,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
+    {
+      "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
+      "component": "lib:echo",
+      "flags": [
+        "-example"
+      ],
+      "package": "echo",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
+      "version": "0.1.4"
+    },
+    {
+      "cabal_sha256": "f1550ddbe3b53f1087a035667364011460896cc2b1ff328b521c05ed5973bb78",
+      "component": "lib:ed25519",
+      "flags": [
+        "+no-donna",
+        "+test-doctests",
+        "+test-hlint",
+        "+test-properties"
+      ],
+      "package": "ed25519",
+      "revision": 9,
+      "source": "hackage",
+      "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
+      "version": "0.0.5.0"
+    },
+    {
+      "cabal_sha256": "8334a8d810e385e1dc1423dc02945daaa1f1a9ba058e5227f1a3211e4882ca28",
+      "component": "lib:lukko",
+      "flags": [
+        "+ofd-locking"
+      ],
+      "package": "lukko",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
+      "version": "0.1.2"
+    },
+    {
+      "cabal_sha256": "8931b9ce6e63bf6202dc0c992ae3e6f2ad8e7f4b6eb69994ac6d512c6c9c0f77",
+      "component": "lib:directory-ospath-streaming",
+      "flags": [
+        "-os-string"
+      ],
+      "package": "directory-ospath-streaming",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1ade8fbee13db15e8d22a1ecdca54794617cabc69911b51d46a65e12f4554ef7",
+      "version": "0.2.2"
+    },
+    {
+      "cabal_sha256": "1d68a81fa684d006b1ec73836cebe3de9a54688836915fe3e56a20389846bb4e",
+      "component": "lib:file-io",
+      "flags": [
+        "-os-string"
+      ],
+      "package": "file-io",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "310a19e4c792de4d30c912bc71ff3becb40818d7c796b9999bcd0979dab87d5b",
+      "version": "0.1.5"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar-internal",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
+      "component": "lib:tar",
+      "flags": [],
+      "package": "tar",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
+      "version": "0.6.4.0"
+    },
+    {
+      "cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
+      "component": "lib:zlib",
+      "flags": [
+        "-bundled-c-zlib",
+        "+non-blocking-ffi",
+        "-pkg-config"
+      ],
+      "package": "zlib",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
+      "version": "0.7.1.0"
+    },
+    {
+      "cabal_sha256": "f85f6f1ef55d1f91795f2c7c476db36fd7aedb55c877d47f2a4411f0151040a9",
+      "component": "lib:hackage-security",
+      "flags": [
+        "+cabal-syntax",
+        "+lukko"
+      ],
+      "package": "hackage-security",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
+      "version": "0.6.2.6"
+    },
+    {
+      "cabal_sha256": "5b6ade9c872ff68b1c1c2ac7cd51441ae1ab7557020e744a3f60413938b9121c",
+      "component": "lib:open-browser",
+      "flags": [
+        "-example"
+      ],
+      "package": "open-browser",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "c2ab01c3238e31b1560114bf8311a70a6c3538e643d3035286a166d137957804",
+      "version": "0.2.1.1"
+    },
+    {
+      "cabal_sha256": "d6c0c6d1136f5046207a331114ff4130e70640452096de7719bf03e3fceb7c7b",
+      "component": "lib:regex-base",
+      "flags": [],
+      "package": "regex-base",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "e8ca2dee598c790dd1c1c4359bdd1e495d9b881f5aa1f539c22f0dd5563747bf",
+      "version": "0.94.0.3"
+    },
+    {
+      "cabal_sha256": "faf170ca5073e8d538a7a18f727a02a96f2a36c5fd53a1696263a70ab81bc6fe",
+      "component": "lib:regex-posix",
+      "flags": [
+        "-_regex-posix-clib"
+      ],
+      "package": "regex-posix",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "7e570460c35c5deec54d1ba46305ddb4679c7d4aae84f631dd0c61daaeaa8150",
+      "version": "0.96.0.2"
+    },
+    {
+      "cabal_sha256": "58a8c6f17dece62891e7534c6f033e1fb1d0685e68dbe5d4fbb71256d45c6132",
+      "component": "lib:resolv",
+      "flags": [],
+      "package": "resolv",
+      "revision": 5,
+      "source": "hackage",
+      "src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
+      "version": "0.2.0.2"
+    },
+    {
+      "cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
+      "component": "lib:safe-exceptions",
+      "flags": [],
+      "package": "safe-exceptions",
+      "revision": 1,
+      "source": "hackage",
+      "src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
+      "version": "0.1.7.4"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "lib:cabal-install",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    },
+    {
+      "cabal_sha256": null,
+      "component": "exe:cabal",
+      "flags": [
+        "-git-rev",
+        "+lukko",
+        "+native-dns"
+      ],
+      "package": "cabal-install",
+      "revision": null,
+      "source": "local",
+      "src_sha256": null,
+      "version": "3.15.0.0"
+    }
+  ]
+}
diff --git a/cabal.bootstrap.project b/cabal.bootstrap.project
index bd75ec5c2890056ca4a423f022b34048200a8fca..efbc4d4258d7f77aed383b3805b5fdc0e44098e1 100644
--- a/cabal.bootstrap.project
+++ b/cabal.bootstrap.project
@@ -9,4 +9,4 @@ packages:
 tests: False
 benchmarks: False
 
-index-state: hackage.haskell.org 2024-11-20T00:00:00Z
+index-state: hackage.haskell.org 2025-04-08T00:00:00Z