From db4be3395cb74eb07355339184123d5ded331dc3 Mon Sep 17 00:00:00 2001
From: romes <rodrigo.m.mesquita@gmail.com>
Date: Thu, 16 Mar 2023 11:35:17 +0000
Subject: [PATCH] Add hashes to unit-ids created by hadrian

This commit adds support for computing an inputs hash for packages
compiled by hadrian. The result is that ABI incompatible packages should
be given different hashes and therefore be distinct in a cabal store.

Hashing is enabled by the `--flag`, and is off by default as the hash
contains a hash of the source files. We enable it when we produce
release builds so that the artifacts we distribute have the right unit
ids.
---
 hadrian/bindist/Makefile                      |   2 +-
 hadrian/bootstrap/plan-9_2_1.json             |   2 +-
 hadrian/bootstrap/plan-9_2_2.json             |   2 +-
 hadrian/bootstrap/plan-9_2_3.json             |   2 +-
 hadrian/bootstrap/plan-9_2_4.json             |   2 +-
 hadrian/bootstrap/plan-9_2_5.json             |   2 +-
 hadrian/bootstrap/plan-9_2_6.json             |   2 +-
 hadrian/bootstrap/plan-9_2_7.json             |   2 +-
 hadrian/bootstrap/plan-9_4_1.json             |   2 +-
 hadrian/bootstrap/plan-9_4_2.json             |   2 +-
 hadrian/bootstrap/plan-9_4_3.json             |   2 +-
 hadrian/bootstrap/plan-9_4_4.json             |   2 +-
 hadrian/bootstrap/plan-9_6_1.json             |   2 +-
 hadrian/bootstrap/plan-bootstrap-9_2_1.json   | 116 +++++---
 hadrian/bootstrap/plan-bootstrap-9_2_2.json   |  21 ++
 hadrian/bootstrap/plan-bootstrap-9_2_3.json   |  21 ++
 hadrian/bootstrap/plan-bootstrap-9_2_4.json   |  21 ++
 hadrian/bootstrap/plan-bootstrap-9_2_5.json   |  21 ++
 hadrian/bootstrap/plan-bootstrap-9_2_6.json   |  21 ++
 hadrian/bootstrap/plan-bootstrap-9_2_7.json   |  21 ++
 hadrian/bootstrap/plan-bootstrap-9_4_1.json   |  21 ++
 hadrian/bootstrap/plan-bootstrap-9_4_2.json   |  21 ++
 hadrian/bootstrap/plan-bootstrap-9_4_3.json   |  21 ++
 hadrian/bootstrap/plan-bootstrap-9_4_4.json   |  21 ++
 hadrian/bootstrap/plan-bootstrap-9_6_1.json   |  21 ++
 hadrian/hadrian.cabal                         |   3 +
 hadrian/src/CommandLine.hs                    |  12 +-
 hadrian/src/Context.hs                        |  22 +-
 hadrian/src/Hadrian/BuildPath.hs              |  21 +-
 hadrian/src/Hadrian/Builder/Git.hs            |   3 +-
 hadrian/src/Hadrian/Haskell/Cabal.hs          |  15 +-
 hadrian/src/Hadrian/Haskell/Cabal/Parse.hs    |  11 +-
 hadrian/src/Hadrian/Haskell/Hash.hs           | 257 ++++++++++++++++++
 hadrian/src/Hadrian/Haskell/Hash.hs-boot      |   8 +
 hadrian/src/Hadrian/Package.hs                |   2 +-
 hadrian/src/Rules.hs                          |   2 +
 hadrian/src/Rules/BinaryDist.hs               |   3 +-
 hadrian/src/Rules/CabalReinstall.hs           |   5 +-
 hadrian/src/Rules/Documentation.hs            |   2 +-
 hadrian/src/Rules/Generate.hs                 |  16 +-
 hadrian/src/Rules/Library.hs                  |  48 ++--
 hadrian/src/Rules/Register.hs                 |  40 ++-
 hadrian/src/Settings/Builders/Cabal.hs        |   4 +-
 hadrian/src/Settings/Builders/Ghc.hs          |   7 +-
 hadrian/src/Settings/Builders/Haddock.hs      |   4 +-
 hadrian/src/Settings/Default.hs               |   1 -
 testsuite/driver/testlib.py                   |   5 +-
 .../tests/backpack/cabal/bkpcabal02/all.T     |   2 +-
 testsuite/tests/cabal/t18567/all.T            |   1 +
 testsuite/tests/driver/T16318/Makefile        |   2 +-
 testsuite/tests/driver/T18125/Makefile        |   4 +-
 testsuite/tests/ghci/scripts/Makefile         |   2 +-
 testsuite/tests/package/all.T                 |   2 +-
 utils/ghc-pkg/Main.hs                         |   3 +-
 54 files changed, 740 insertions(+), 140 deletions(-)
 create mode 100644 hadrian/src/Hadrian/Haskell/Hash.hs
 create mode 100644 hadrian/src/Hadrian/Haskell/Hash.hs-boot

diff --git a/hadrian/bindist/Makefile b/hadrian/bindist/Makefile
index d3ad0e84e6f2..3f18720253a9 100644
--- a/hadrian/bindist/Makefile
+++ b/hadrian/bindist/Makefile
@@ -226,7 +226,7 @@ update_package_db: install_bin install_lib
 	$(INSTALL_DATA) mk/system-cxx-std-lib-1.0.conf "$(DESTDIR)$(ActualLibsDir)/package.conf.d"
 	@echo "Updating the package DB"
 	$(foreach p, $(PKG_CONFS),\
-		$(call patchpackageconf,$(shell echo $(notdir $p) | sed 's/-\([0-9]*[0-9]\.\)*conf//g'),$(shell echo "$p" | sed 's:\0xxx\0:   :g'),$(docdir),$(shell mk/relpath.sh "$(ActualLibsDir)" "$(docdir)"),$(shell echo $(notdir $p) | sed 's/.conf//g')))
+		$(call patchpackageconf,$(shell echo $(notdir $p) | sed 's/-[0-9.]*-[0-9a-zA-Z]*\.conf//g'),$(shell echo "$p" | sed 's:\0xxx\0:   :g'),$(docdir),$(shell mk/relpath.sh "$(ActualLibsDir)" "$(docdir)"),$(shell echo $(notdir $p) | sed 's/.conf//g')))
 	'$(DESTDIR)$(ActualBinsDir)/$(CrossCompilePrefix)ghc-pkg' --global-package-db "$(DESTDIR)$(ActualLibsDir)/package.conf.d" recache
 
 install_mingw:
diff --git a/hadrian/bootstrap/plan-9_2_1.json b/hadrian/bootstrap/plan-9_2_1.json
index b66c38b27a64..4f3eeb7f3765 100644
--- a/hadrian/bootstrap/plan-9_2_1.json
+++ b/hadrian/bootstrap/plan-9_2_1.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.1","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.0.0","pkg-name":"Cabal","pkg-version":"3.6.0.0","depends":["array-0.5.4.0","base-4.16.0.0","binary-0.8.9.0","bytestring-0.11.1.0","containers-0.6.5.1","deepseq-1.4.6.0","directory-1.3.6.2","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.13.2","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-d206773042205de1060139757d2714b6fc1f3b1ff5294e611a076f708c2c2939","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.0.0","containers-0.6.5.1","deepseq-1.4.6.0","random-1.2.1.1-97ce1668cc8855def97f8467b8241effcc343cfb3341c4b9c3dec392ca31a395","splitmix-0.1.0.4-6e4cb959752030596da42aa487811cf8f2f8d97e77e5b86f7c0286b176af5a9e","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.0.0"]},{"type":"pre-existing","id":"base-4.16.0.0","pkg-name":"base","pkg-version":"4.16.0.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.0.0","bytestring-0.11.1.0","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.1.0","pkg-name":"bytestring","pkg-version":"0.11.1.0","depends":["base-4.16.0.0","deepseq-1.4.6.0","ghc-bignum-1.2","ghc-prim-0.8.0"]},{"type":"configured","id":"clock-0.8.3-92b3cf3a8d563bc4cec59855d0fe86bab13ee56991b5eb116314b00120c8d023","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.0.0","deepseq-1.4.6.0"]},{"type":"configured","id":"data-array-byte-0.1.0.1-39089d1700e8eb79997c0fea24daee60863f08caa05929ff7d545a59d374af7e","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.0.0","deepseq-1.4.6.0","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.0","pkg-name":"deepseq","pkg-version":"1.4.6.0","depends":["array-0.5.4.0","base-4.16.0.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.0.0","filepath-1.4.2.1","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-4537794a6683eedd21da2fd7dcb19c48d6720bebd53dfa635675ab945ec56f58","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.0.0","clock-0.8.3-92b3cf3a8d563bc4cec59855d0fe86bab13ee56991b5eb116314b00120c8d023","directory-1.3.6.2","filepath-1.4.2.1","process-1.6.13.2","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.16.0.0"]},{"type":"configured","id":"filepattern-0.1.3-44052a6b8a974f5f5b326a6eac65d98c24b4beca809a2e4e6cdb0557d01ac03e","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.0.0","directory-1.3.6.2","extra-1.7.12-4537794a6683eedd21da2fd7dcb19c48d6720bebd53dfa635675ab945ec56f58","filepath-1.4.2.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.1","pkg-name":"ghc-boot-th","pkg-version":"9.2.1","depends":["base-4.16.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.1/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.1/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.0.0","QuickCheck-2.14.2-d206773042205de1060139757d2714b6fc1f3b1ff5294e611a076f708c2c2939","base-4.16.0.0","bytestring-0.11.1.0","containers-0.6.5.1","directory-1.3.6.2","extra-1.7.12-4537794a6683eedd21da2fd7dcb19c48d6720bebd53dfa635675ab945ec56f58","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","shake-0.19.7-f674e0317c75177d3e90c60343b4709ccb09132b7241f5718a9b394e7841298d","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-89127bf85578057135b77bb1158d3c3ba3d8b676352c7d9af1628e53054cfabe"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-a256d5223f556ecea163e1289cbc51834d62cbd6964b0bbc5aacc47e0ce28ead","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.0.0","bytestring-0.11.1.0","containers-0.6.5.1","data-array-byte-0.1.0.1-39089d1700e8eb79997c0fea24daee60863f08caa05929ff7d545a59d374af7e","deepseq-1.4.6.0","filepath-1.4.2.1","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-8d3419f8408b5b8b6841b00f6d1a7471816134201231be28416266a3ee3bde49","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-6278b9d6c9e5cd92f21180eee5fe6a6cc4709b3454a4f39848c0924a4b6130cc","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-0fe00be087c19b4ab01d3df43cb86b0d0d8634379a8ec6ab5d64bd544fc95aa5","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-df9b3aa568ece10aa0a1f02d8e0df8a6faee7f76b182f7f7e8e435249bb7c040","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.14.0","pkg-name":"parsec","pkg-version":"3.1.14.0","depends":["base-4.16.0.0","bytestring-0.11.1.0","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.0.0","deepseq-1.4.6.0","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-1e9f1620b3af36dba02da5dc1555b2753e6c35b78d7641cf661542322aca6e43","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.0.0","data-array-byte-0.1.0.1-39089d1700e8eb79997c0fea24daee60863f08caa05929ff7d545a59d374af7e","deepseq-1.4.6.0","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.13.2","pkg-name":"process","pkg-version":"1.6.13.2","depends":["base-4.16.0.0","deepseq-1.4.6.0","directory-1.3.6.2","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-97ce1668cc8855def97f8467b8241effcc343cfb3341c4b9c3dec392ca31a395","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.0.0","bytestring-0.11.1.0","deepseq-1.4.6.0","mtl-2.2.2","splitmix-0.1.0.4-6e4cb959752030596da42aa487811cf8f2f8d97e77e5b86f7c0286b176af5a9e"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-e-shake-0de9d0da02df51a122baac2187f5171939545b90c4e4b918adcb9f3e9f8f3ae8","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.0.0","binary-0.8.9.0","bytestring-0.11.1.0","deepseq-1.4.6.0","directory-1.3.6.2","extra-1.7.12-4537794a6683eedd21da2fd7dcb19c48d6720bebd53dfa635675ab945ec56f58","filepath-1.4.2.1","filepattern-0.1.3-44052a6b8a974f5f5b326a6eac65d98c24b4beca809a2e4e6cdb0557d01ac03e","hashable-1.4.2.0-a256d5223f556ecea163e1289cbc51834d62cbd6964b0bbc5aacc47e0ce28ead","heaps-0.4-8d3419f8408b5b8b6841b00f6d1a7471816134201231be28416266a3ee3bde49","js-dgtable-0.5.2-6278b9d6c9e5cd92f21180eee5fe6a6cc4709b3454a4f39848c0924a4b6130cc","js-flot-0.8.3-0fe00be087c19b4ab01d3df43cb86b0d0d8634379a8ec6ab5d64bd544fc95aa5","js-jquery-3.3.1-df9b3aa568ece10aa0a1f02d8e0df8a6faee7f76b182f7f7e8e435249bb7c040","primitive-0.8.0.0-1e9f1620b3af36dba02da5dc1555b2753e6c35b78d7641cf661542322aca6e43","process-1.6.13.2","random-1.2.1.1-97ce1668cc8855def97f8467b8241effcc343cfb3341c4b9c3dec392ca31a395","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-89127bf85578057135b77bb1158d3c3ba3d8b676352c7d9af1628e53054cfabe","utf8-string-1.0.2-1508e35653a100bc70cf4b62637d1bc71807fe8682a43fc50125618f1075e8fa"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.1/shake-0.19.7-e-shake-0de9d0da02df51a122baac2187f5171939545b90c4e4b918adcb9f3e9f8f3ae8/bin/shake"},{"type":"configured","id":"shake-0.19.7-f674e0317c75177d3e90c60343b4709ccb09132b7241f5718a9b394e7841298d","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.0.0","binary-0.8.9.0","bytestring-0.11.1.0","deepseq-1.4.6.0","directory-1.3.6.2","extra-1.7.12-4537794a6683eedd21da2fd7dcb19c48d6720bebd53dfa635675ab945ec56f58","filepath-1.4.2.1","filepattern-0.1.3-44052a6b8a974f5f5b326a6eac65d98c24b4beca809a2e4e6cdb0557d01ac03e","hashable-1.4.2.0-a256d5223f556ecea163e1289cbc51834d62cbd6964b0bbc5aacc47e0ce28ead","heaps-0.4-8d3419f8408b5b8b6841b00f6d1a7471816134201231be28416266a3ee3bde49","js-dgtable-0.5.2-6278b9d6c9e5cd92f21180eee5fe6a6cc4709b3454a4f39848c0924a4b6130cc","js-flot-0.8.3-0fe00be087c19b4ab01d3df43cb86b0d0d8634379a8ec6ab5d64bd544fc95aa5","js-jquery-3.3.1-df9b3aa568ece10aa0a1f02d8e0df8a6faee7f76b182f7f7e8e435249bb7c040","primitive-0.8.0.0-1e9f1620b3af36dba02da5dc1555b2753e6c35b78d7641cf661542322aca6e43","process-1.6.13.2","random-1.2.1.1-97ce1668cc8855def97f8467b8241effcc343cfb3341c4b9c3dec392ca31a395","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-89127bf85578057135b77bb1158d3c3ba3d8b676352c7d9af1628e53054cfabe","utf8-string-1.0.2-1508e35653a100bc70cf4b62637d1bc71807fe8682a43fc50125618f1075e8fa"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"splitmix-0.1.0.4-6e4cb959752030596da42aa487811cf8f2f8d97e77e5b86f7c0286b176af5a9e","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.0.0","deepseq-1.4.6.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.0.0","ghc-boot-th-9.2.1","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.0.0","binary-0.8.9.0","bytestring-0.11.1.0","deepseq-1.4.6.0","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.0.0","deepseq-1.4.6.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.0.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.0.0","bytestring-0.11.1.0","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-89127bf85578057135b77bb1158d3c3ba3d8b676352c7d9af1628e53054cfabe","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.0.0","deepseq-1.4.6.0","hashable-1.4.2.0-a256d5223f556ecea163e1289cbc51834d62cbd6964b0bbc5aacc47e0ce28ead","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-1508e35653a100bc70cf4b62637d1bc71807fe8682a43fc50125618f1075e8fa","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.0.0","bytestring-0.11.1.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.6.1","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.8.1.0-372ffc7841ab6b7a5b1b38fc4fa05a1def6d41a4a28a05b6b16412d8d03e6fd6","pkg-name":"Cabal","pkg-version":"3.8.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"77121d8e1aff14a0fd95684b751599db78a7dd26d55862d9fcef27c88b193e9d","pkg-src-sha256":"7464cbe6c2f3d7e5d0232023a1a7330621f8b24853cb259fc89a2af85b736608","depends":["Cabal-syntax-3.8.1.0-3ca25e89601c18bd49019a3d1e19420c47007f095f586f14636917297c1fc62a","array-0.5.5.0","base-4.18.0.0","bytestring-0.11.4.0","containers-0.6.7","deepseq-1.4.8.1","directory-1.3.8.1","filepath-1.4.100.1","mtl-2.3.1","parsec-3.1.16.1","pretty-1.1.3.6","process-1.6.17.0","text-2.0.2","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Cabal-syntax-3.8.1.0-3ca25e89601c18bd49019a3d1e19420c47007f095f586f14636917297c1fc62a","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ed2d937ba6c6a20b75850349eedd41374885fc42369ef152d69e2ba70f44f593","pkg-src-sha256":"07e8ddb19fe01781485f1522b6afc22aba680b0ab28ebe6bbfb84a2dd698ce0f","depends":["array-0.5.5.0","base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","containers-0.6.7","deepseq-1.4.8.1","directory-1.3.8.1","filepath-1.4.100.1","mtl-2.3.1","parsec-3.1.16.1","pretty-1.1.3.6","text-2.0.2","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"QuickCheck-2.14.2-48f73357a0d5467607535cbb21ac8449b28303ff215af7e947416e6a4ef4195f","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.18.0.0","containers-0.6.7","deepseq-1.4.8.1","random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b","template-haskell-2.20.0.0","transformers-0.6.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.5.0","pkg-name":"array","pkg-version":"0.5.5.0","depends":["base-4.18.0.0"]},{"type":"pre-existing","id":"base-4.18.0.0","pkg-name":"base","pkg-version":"4.18.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.10.0","rts-1.0.2"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-b5940c21a059d328169082a7bf03f08fec9ea9cb300f6de1499ec2087f455bc8","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.18.0.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.5.0","base-4.18.0.0","bytestring-0.11.4.0","containers-0.6.7"]},{"type":"pre-existing","id":"bytestring-0.11.4.0","pkg-name":"bytestring","pkg-version":"0.11.4.0","depends":["base-4.18.0.0","deepseq-1.4.8.1","ghc-prim-0.10.0","template-haskell-2.20.0.0"]},{"type":"configured","id":"clock-0.8.3-309549353d285d82eaa6ef36502628671b62ca2d2fb6284260bd7679d5e7b9a3","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.7","pkg-name":"containers","pkg-version":"0.6.7","depends":["array-0.5.5.0","base-4.18.0.0","deepseq-1.4.8.1","template-haskell-2.20.0.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-9d310921383dbec51b2f6fa686c9d99cfd3bb977a8eff016b53bb33c86c941e0","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.18.0.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.8.1","pkg-name":"deepseq","pkg-version":"1.4.8.1","depends":["array-0.5.5.0","base-4.18.0.0","ghc-prim-0.10.0"]},{"type":"pre-existing","id":"directory-1.3.8.1","pkg-name":"directory","pkg-version":"1.3.8.1","depends":["base-4.18.0.0","filepath-1.4.100.1","time-1.12.2","unix-2.8.1.0"]},{"type":"pre-existing","id":"exceptions-0.10.7","pkg-name":"exceptions","pkg-version":"0.10.7","depends":["base-4.18.0.0","mtl-2.3.1","stm-2.5.1.0","template-haskell-2.20.0.0","transformers-0.6.1.0"]},{"type":"configured","id":"extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.18.0.0","clock-0.8.3-309549353d285d82eaa6ef36502628671b62ca2d2fb6284260bd7679d5e7b9a3","directory-1.3.8.1","filepath-1.4.100.1","process-1.6.17.0","time-1.12.2","unix-2.8.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.100.1","pkg-name":"filepath","pkg-version":"1.4.100.1","depends":["base-4.18.0.0","bytestring-0.11.4.0","deepseq-1.4.8.1","exceptions-0.10.7","template-haskell-2.20.0.0"]},{"type":"configured","id":"filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.18.0.0","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.10.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.6.1","pkg-name":"ghc-boot-th","pkg-version":"9.6.1","depends":["base-4.18.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.10.0","pkg-name":"ghc-prim","pkg-version":"0.10.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0-372ffc7841ab6b7a5b1b38fc4fa05a1def6d41a4a28a05b6b16412d8d03e6fd6","QuickCheck-2.14.2-48f73357a0d5467607535cbb21ac8449b28303ff215af7e947416e6a4ef4195f","base-4.18.0.0","base16-bytestring-1.0.2.0-b5940c21a059d328169082a7bf03f08fec9ea9cb300f6de1499ec2087f455bc8","bytestring-0.11.4.0","containers-0.6.7","cryptohash-sha256-0.11.102.1-9d310921383dbec51b2f6fa686c9d99cfd3bb977a8eff016b53bb33c86c941e0","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1","mtl-2.3.1","parsec-3.1.16.1","shake-0.19.7-5a9ab582f15d6b877ed307ed78deca9e9f66793b09ed98bacc612e42b1e9bb49","text-2.0.2","time-1.12.2","transformers-0.6.1.0","unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.18.0.0","bytestring-0.11.4.0","containers-0.6.7","deepseq-1.4.8.1","filepath-1.4.100.1","ghc-bignum-1.3","ghc-prim-0.10.0","text-2.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.3.1","pkg-name":"mtl","pkg-version":"2.3.1","depends":["base-4.18.0.0","transformers-0.6.1.0"]},{"type":"pre-existing","id":"parsec-3.1.16.1","pkg-name":"parsec","pkg-version":"3.1.16.1","depends":["base-4.18.0.0","bytestring-0.11.4.0","mtl-2.3.1","text-2.0.2"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.18.0.0","deepseq-1.4.8.1","ghc-prim-0.10.0"]},{"type":"configured","id":"primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.18.0.0","deepseq-1.4.8.1","template-haskell-2.20.0.0","transformers-0.6.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.17.0","pkg-name":"process","pkg-version":"1.6.17.0","depends":["base-4.18.0.0","deepseq-1.4.8.1","directory-1.3.8.1","filepath-1.4.100.1","unix-2.8.1.0"]},{"type":"configured","id":"random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.18.0.0","bytestring-0.11.4.0","deepseq-1.4.8.1","mtl-2.3.1","splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-5a9ab582f15d6b877ed307ed78deca9e9f66793b09ed98bacc612e42b1e9bb49","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","deepseq-1.4.8.1","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1","filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990","hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459","js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572","js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a","js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed","primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371","process-1.6.17.0","random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0","unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99","utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-a59c980e9cb95b2a1d37687f9ab3efd3a8e8314a00e4ca7fb819044d23198462","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","deepseq-1.4.8.1","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1","filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990","hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459","js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572","js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a","js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed","primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371","process-1.6.17.0","random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0","unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99","utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.6.1/shake-0.19.7-e-shake-a59c980e9cb95b2a1d37687f9ab3efd3a8e8314a00e4ca7fb819044d23198462/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.18.0.0","deepseq-1.4.8.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.1.0","pkg-name":"stm","pkg-version":"2.5.1.0","depends":["array-0.5.5.0","base-4.18.0.0"]},{"type":"pre-existing","id":"template-haskell-2.20.0.0","pkg-name":"template-haskell","pkg-version":"2.20.0.0","depends":["base-4.18.0.0","ghc-boot-th-9.6.1","ghc-prim-0.10.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.2","pkg-name":"text","pkg-version":"2.0.2","depends":["array-0.5.5.0","base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","deepseq-1.4.8.1","ghc-prim-0.10.0","template-haskell-2.20.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.18.0.0","deepseq-1.4.8.1"]},{"type":"pre-existing","id":"transformers-0.6.1.0","pkg-name":"transformers","pkg-version":"0.6.1.0","depends":["base-4.18.0.0"]},{"type":"pre-existing","id":"unix-2.8.1.0","pkg-name":"unix","pkg-version":"2.8.1.0","depends":["base-4.18.0.0","bytestring-0.11.4.0","filepath-1.4.100.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.18.0.0","deepseq-1.4.8.1","hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","template-haskell-2.20.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.18.0.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_2_2.json b/hadrian/bootstrap/plan-9_2_2.json
index b05959aa1730..06ea6783467c 100644
--- a/hadrian/bootstrap/plan-9_2_2.json
+++ b/hadrian/bootstrap/plan-9_2_2.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.2","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.1.0","binary-0.8.9.0","bytestring-0.11.3.0","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.13.2","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-fd6bc24ff3b5f8201c3071f6ca35f332d6b1353852d01e1b4e5ff25db746e149","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.1.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-1a74f78224fb4b9c0290854a02b095a76191148a477857d7f21dcd68e5c2b4cf","splitmix-0.1.0.4-201c59ac932f856499a47c73ffe84a6be5b6dfd5db9ec6182775fe6b945f369c","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.1.0"]},{"type":"pre-existing","id":"base-4.16.1.0","pkg-name":"base","pkg-version":"4.16.1.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.1.0","bytestring-0.11.3.0","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.3.0","pkg-name":"bytestring","pkg-version":"0.11.3.0","depends":["base-4.16.1.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-0c7c9e547a146527c99f2e7581131ba32cadfbda0704ef58b7c52090bd8615f6","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.1.0","deepseq-1.4.6.1"]},{"type":"configured","id":"data-array-byte-0.1.0.1-e7958b903e06231e1e247b429923d80ecc5674ee18a064ad9de8d6edc70e24e5","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.1.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.1.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.1.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-2ebaa460133d1ef6e5e06bbfa066f8d302f505e4a67498115edf41ac0ce1b283","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.1.0","clock-0.8.3-0c7c9e547a146527c99f2e7581131ba32cadfbda0704ef58b7c52090bd8615f6","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.13.2","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.1.0"]},{"type":"configured","id":"filepattern-0.1.3-d9631d8baf926960f6eb6991bc1e7c256a8c1757d9ec9e8cb827d563cf27e3a3","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.1.0","directory-1.3.6.2","extra-1.7.12-2ebaa460133d1ef6e5e06bbfa066f8d302f505e4a67498115edf41ac0ce1b283","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.2","pkg-name":"ghc-boot-th","pkg-version":"9.2.2","depends":["base-4.16.1.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.2/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.2/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-fd6bc24ff3b5f8201c3071f6ca35f332d6b1353852d01e1b4e5ff25db746e149","base-4.16.1.0","bytestring-0.11.3.0","containers-0.6.5.1","directory-1.3.6.2","extra-1.7.12-2ebaa460133d1ef6e5e06bbfa066f8d302f505e4a67498115edf41ac0ce1b283","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-4ae8d8886d8f99edbfe8169a6bb88c87e09313ef8011e4b71d3da02dba0d9060","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-86da5900c10586ba66016cb5b90cb5be35eac7b8f8e5d511594e55990fb9b7e7"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.2/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-9f364f21d03523f32ca22163ac5da2faa0f4cbfda68d9a08c95d216e04119750","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.1.0","bytestring-0.11.3.0","containers-0.6.5.1","data-array-byte-0.1.0.1-e7958b903e06231e1e247b429923d80ecc5674ee18a064ad9de8d6edc70e24e5","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-492ad633a7c1fd0990246fbd401f8438db0635c4fa550e36cb43b775527c157f","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-bfe5ec294647feda55ba2f90bde0d374568a86efba113bfff8363c9e8f34af37","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-6a01b63899fcd71d3e88646c1d9e81ca1d7937cf03770977570987e81b26d8fe","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-5d3188cc3ebaa3d2976301605f921eb24ec9ca825b83351e4eeb8eb4b22dd9f3","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.1.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.1.0","bytestring-0.11.3.0","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.1.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-79a029355b4c47f541431a34a60def13110b01ecc59bbb2dd0ae5e832fe524ff","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.1.0","data-array-byte-0.1.0.1-e7958b903e06231e1e247b429923d80ecc5674ee18a064ad9de8d6edc70e24e5","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.13.2","pkg-name":"process","pkg-version":"1.6.13.2","depends":["base-4.16.1.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-1a74f78224fb4b9c0290854a02b095a76191148a477857d7f21dcd68e5c2b4cf","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.1.0","bytestring-0.11.3.0","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-201c59ac932f856499a47c73ffe84a6be5b6dfd5db9ec6182775fe6b945f369c"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-4ae8d8886d8f99edbfe8169a6bb88c87e09313ef8011e4b71d3da02dba0d9060","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.1.0","binary-0.8.9.0","bytestring-0.11.3.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-2ebaa460133d1ef6e5e06bbfa066f8d302f505e4a67498115edf41ac0ce1b283","filepath-1.4.2.2","filepattern-0.1.3-d9631d8baf926960f6eb6991bc1e7c256a8c1757d9ec9e8cb827d563cf27e3a3","hashable-1.4.2.0-9f364f21d03523f32ca22163ac5da2faa0f4cbfda68d9a08c95d216e04119750","heaps-0.4-492ad633a7c1fd0990246fbd401f8438db0635c4fa550e36cb43b775527c157f","js-dgtable-0.5.2-bfe5ec294647feda55ba2f90bde0d374568a86efba113bfff8363c9e8f34af37","js-flot-0.8.3-6a01b63899fcd71d3e88646c1d9e81ca1d7937cf03770977570987e81b26d8fe","js-jquery-3.3.1-5d3188cc3ebaa3d2976301605f921eb24ec9ca825b83351e4eeb8eb4b22dd9f3","primitive-0.8.0.0-79a029355b4c47f541431a34a60def13110b01ecc59bbb2dd0ae5e832fe524ff","process-1.6.13.2","random-1.2.1.1-1a74f78224fb4b9c0290854a02b095a76191148a477857d7f21dcd68e5c2b4cf","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-86da5900c10586ba66016cb5b90cb5be35eac7b8f8e5d511594e55990fb9b7e7","utf8-string-1.0.2-3b60297ab3bd0b49e24ff62a4d011e876a1464182bd13b03752e8393de14f237"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-dffab5914106a6f7d61bd9c25caad4c6fb10925bc51610993593856eabe755de","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.1.0","binary-0.8.9.0","bytestring-0.11.3.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-2ebaa460133d1ef6e5e06bbfa066f8d302f505e4a67498115edf41ac0ce1b283","filepath-1.4.2.2","filepattern-0.1.3-d9631d8baf926960f6eb6991bc1e7c256a8c1757d9ec9e8cb827d563cf27e3a3","hashable-1.4.2.0-9f364f21d03523f32ca22163ac5da2faa0f4cbfda68d9a08c95d216e04119750","heaps-0.4-492ad633a7c1fd0990246fbd401f8438db0635c4fa550e36cb43b775527c157f","js-dgtable-0.5.2-bfe5ec294647feda55ba2f90bde0d374568a86efba113bfff8363c9e8f34af37","js-flot-0.8.3-6a01b63899fcd71d3e88646c1d9e81ca1d7937cf03770977570987e81b26d8fe","js-jquery-3.3.1-5d3188cc3ebaa3d2976301605f921eb24ec9ca825b83351e4eeb8eb4b22dd9f3","primitive-0.8.0.0-79a029355b4c47f541431a34a60def13110b01ecc59bbb2dd0ae5e832fe524ff","process-1.6.13.2","random-1.2.1.1-1a74f78224fb4b9c0290854a02b095a76191148a477857d7f21dcd68e5c2b4cf","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-86da5900c10586ba66016cb5b90cb5be35eac7b8f8e5d511594e55990fb9b7e7","utf8-string-1.0.2-3b60297ab3bd0b49e24ff62a4d011e876a1464182bd13b03752e8393de14f237"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.2/shake-0.19.7-e-shake-dffab5914106a6f7d61bd9c25caad4c6fb10925bc51610993593856eabe755de/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-201c59ac932f856499a47c73ffe84a6be5b6dfd5db9ec6182775fe6b945f369c","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.1.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.1.0","ghc-boot-th-9.2.2","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.1.0","binary-0.8.9.0","bytestring-0.11.3.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.1.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.1.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.1.0","bytestring-0.11.3.0","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-86da5900c10586ba66016cb5b90cb5be35eac7b8f8e5d511594e55990fb9b7e7","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.1.0","deepseq-1.4.6.1","hashable-1.4.2.0-9f364f21d03523f32ca22163ac5da2faa0f4cbfda68d9a08c95d216e04119750","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-3b60297ab3bd0b49e24ff62a4d011e876a1464182bd13b03752e8393de14f237","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.1.0","bytestring-0.11.3.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.2","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.1.0","binary-0.8.9.0","bytestring-0.11.3.0","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.13.2","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-fd6bc24ff3b5f8201c3071f6ca35f332d6b1353852d01e1b4e5ff25db746e149","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.1.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-1a74f78224fb4b9c0290854a02b095a76191148a477857d7f21dcd68e5c2b4cf","splitmix-0.1.0.4-201c59ac932f856499a47c73ffe84a6be5b6dfd5db9ec6182775fe6b945f369c","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.1.0"]},{"type":"pre-existing","id":"base-4.16.1.0","pkg-name":"base","pkg-version":"4.16.1.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-7d350effd7294677ead91dcc7892137a82d4e37839e8214dd3d9d4f446d67082","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.16.1.0","bytestring-0.11.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.1.0","bytestring-0.11.3.0","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.3.0","pkg-name":"bytestring","pkg-version":"0.11.3.0","depends":["base-4.16.1.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-0c7c9e547a146527c99f2e7581131ba32cadfbda0704ef58b7c52090bd8615f6","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.1.0","deepseq-1.4.6.1"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-77d0e0e250721ad8fbb8386cc0b73155a840c70a76fd3c2e042053fa91dd7aa1","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.16.1.0","bytestring-0.11.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"data-array-byte-0.1.0.1-e7958b903e06231e1e247b429923d80ecc5674ee18a064ad9de8d6edc70e24e5","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.1.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.1.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.1.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-2ebaa460133d1ef6e5e06bbfa066f8d302f505e4a67498115edf41ac0ce1b283","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.1.0","clock-0.8.3-0c7c9e547a146527c99f2e7581131ba32cadfbda0704ef58b7c52090bd8615f6","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.13.2","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.1.0"]},{"type":"configured","id":"filepattern-0.1.3-d9631d8baf926960f6eb6991bc1e7c256a8c1757d9ec9e8cb827d563cf27e3a3","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.1.0","directory-1.3.6.2","extra-1.7.12-2ebaa460133d1ef6e5e06bbfa066f8d302f505e4a67498115edf41ac0ce1b283","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.2","pkg-name":"ghc-boot-th","pkg-version":"9.2.2","depends":["base-4.16.1.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.2/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.2/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-fd6bc24ff3b5f8201c3071f6ca35f332d6b1353852d01e1b4e5ff25db746e149","base-4.16.1.0","base16-bytestring-1.0.2.0-7d350effd7294677ead91dcc7892137a82d4e37839e8214dd3d9d4f446d67082","bytestring-0.11.3.0","containers-0.6.5.1","cryptohash-sha256-0.11.102.1-77d0e0e250721ad8fbb8386cc0b73155a840c70a76fd3c2e042053fa91dd7aa1","directory-1.3.6.2","extra-1.7.12-2ebaa460133d1ef6e5e06bbfa066f8d302f505e4a67498115edf41ac0ce1b283","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-4ae8d8886d8f99edbfe8169a6bb88c87e09313ef8011e4b71d3da02dba0d9060","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-86da5900c10586ba66016cb5b90cb5be35eac7b8f8e5d511594e55990fb9b7e7"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.2/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-9f364f21d03523f32ca22163ac5da2faa0f4cbfda68d9a08c95d216e04119750","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.1.0","bytestring-0.11.3.0","containers-0.6.5.1","data-array-byte-0.1.0.1-e7958b903e06231e1e247b429923d80ecc5674ee18a064ad9de8d6edc70e24e5","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-492ad633a7c1fd0990246fbd401f8438db0635c4fa550e36cb43b775527c157f","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-bfe5ec294647feda55ba2f90bde0d374568a86efba113bfff8363c9e8f34af37","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-6a01b63899fcd71d3e88646c1d9e81ca1d7937cf03770977570987e81b26d8fe","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-5d3188cc3ebaa3d2976301605f921eb24ec9ca825b83351e4eeb8eb4b22dd9f3","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.1.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.1.0","bytestring-0.11.3.0","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.1.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-79a029355b4c47f541431a34a60def13110b01ecc59bbb2dd0ae5e832fe524ff","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.1.0","data-array-byte-0.1.0.1-e7958b903e06231e1e247b429923d80ecc5674ee18a064ad9de8d6edc70e24e5","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.13.2","pkg-name":"process","pkg-version":"1.6.13.2","depends":["base-4.16.1.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-1a74f78224fb4b9c0290854a02b095a76191148a477857d7f21dcd68e5c2b4cf","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.1.0","bytestring-0.11.3.0","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-201c59ac932f856499a47c73ffe84a6be5b6dfd5db9ec6182775fe6b945f369c"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-4ae8d8886d8f99edbfe8169a6bb88c87e09313ef8011e4b71d3da02dba0d9060","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.1.0","binary-0.8.9.0","bytestring-0.11.3.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-2ebaa460133d1ef6e5e06bbfa066f8d302f505e4a67498115edf41ac0ce1b283","filepath-1.4.2.2","filepattern-0.1.3-d9631d8baf926960f6eb6991bc1e7c256a8c1757d9ec9e8cb827d563cf27e3a3","hashable-1.4.2.0-9f364f21d03523f32ca22163ac5da2faa0f4cbfda68d9a08c95d216e04119750","heaps-0.4-492ad633a7c1fd0990246fbd401f8438db0635c4fa550e36cb43b775527c157f","js-dgtable-0.5.2-bfe5ec294647feda55ba2f90bde0d374568a86efba113bfff8363c9e8f34af37","js-flot-0.8.3-6a01b63899fcd71d3e88646c1d9e81ca1d7937cf03770977570987e81b26d8fe","js-jquery-3.3.1-5d3188cc3ebaa3d2976301605f921eb24ec9ca825b83351e4eeb8eb4b22dd9f3","primitive-0.8.0.0-79a029355b4c47f541431a34a60def13110b01ecc59bbb2dd0ae5e832fe524ff","process-1.6.13.2","random-1.2.1.1-1a74f78224fb4b9c0290854a02b095a76191148a477857d7f21dcd68e5c2b4cf","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-86da5900c10586ba66016cb5b90cb5be35eac7b8f8e5d511594e55990fb9b7e7","utf8-string-1.0.2-3b60297ab3bd0b49e24ff62a4d011e876a1464182bd13b03752e8393de14f237"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-dffab5914106a6f7d61bd9c25caad4c6fb10925bc51610993593856eabe755de","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.1.0","binary-0.8.9.0","bytestring-0.11.3.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-2ebaa460133d1ef6e5e06bbfa066f8d302f505e4a67498115edf41ac0ce1b283","filepath-1.4.2.2","filepattern-0.1.3-d9631d8baf926960f6eb6991bc1e7c256a8c1757d9ec9e8cb827d563cf27e3a3","hashable-1.4.2.0-9f364f21d03523f32ca22163ac5da2faa0f4cbfda68d9a08c95d216e04119750","heaps-0.4-492ad633a7c1fd0990246fbd401f8438db0635c4fa550e36cb43b775527c157f","js-dgtable-0.5.2-bfe5ec294647feda55ba2f90bde0d374568a86efba113bfff8363c9e8f34af37","js-flot-0.8.3-6a01b63899fcd71d3e88646c1d9e81ca1d7937cf03770977570987e81b26d8fe","js-jquery-3.3.1-5d3188cc3ebaa3d2976301605f921eb24ec9ca825b83351e4eeb8eb4b22dd9f3","primitive-0.8.0.0-79a029355b4c47f541431a34a60def13110b01ecc59bbb2dd0ae5e832fe524ff","process-1.6.13.2","random-1.2.1.1-1a74f78224fb4b9c0290854a02b095a76191148a477857d7f21dcd68e5c2b4cf","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-86da5900c10586ba66016cb5b90cb5be35eac7b8f8e5d511594e55990fb9b7e7","utf8-string-1.0.2-3b60297ab3bd0b49e24ff62a4d011e876a1464182bd13b03752e8393de14f237"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.2/shake-0.19.7-e-shake-dffab5914106a6f7d61bd9c25caad4c6fb10925bc51610993593856eabe755de/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-201c59ac932f856499a47c73ffe84a6be5b6dfd5db9ec6182775fe6b945f369c","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.1.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.1.0","ghc-boot-th-9.2.2","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.1.0","binary-0.8.9.0","bytestring-0.11.3.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.1.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.1.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.1.0","bytestring-0.11.3.0","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-86da5900c10586ba66016cb5b90cb5be35eac7b8f8e5d511594e55990fb9b7e7","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.1.0","deepseq-1.4.6.1","hashable-1.4.2.0-9f364f21d03523f32ca22163ac5da2faa0f4cbfda68d9a08c95d216e04119750","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-3b60297ab3bd0b49e24ff62a4d011e876a1464182bd13b03752e8393de14f237","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.1.0","bytestring-0.11.3.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_2_3.json b/hadrian/bootstrap/plan-9_2_3.json
index ba4d907bcf06..304e13876dfa 100644
--- a/hadrian/bootstrap/plan-9_2_3.json
+++ b/hadrian/bootstrap/plan-9_2_3.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.3","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.2.0","binary-0.8.9.0","bytestring-0.11.3.1","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.13.2","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-28383ec8c634951270f884fff9301d3d43ed48bb03153402d1ed50f540469641","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.2.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-40759a416704d10d86283d548100f6265a34bcb854377f345fbde64bf698fad0","splitmix-0.1.0.4-f5816d86b79c25a60eb0e68dec4d61b22701a8b4fd7de88550a4b0606cf31730","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.2.0"]},{"type":"pre-existing","id":"base-4.16.2.0","pkg-name":"base","pkg-version":"4.16.2.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.2.0","bytestring-0.11.3.1","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.16.2.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-137df44468d5edff5f854d1fdd7a1d931405a677f532203f6514e2afb4e770bc","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.2.0","deepseq-1.4.6.1"]},{"type":"configured","id":"data-array-byte-0.1.0.1-4e207c2b115249dcadfc85271a70e751fcfcae254ff5818252d7353e3d8cb608","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.2.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.2.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.2.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-03735b64c6d5b3b50ba8f2abe4c1af7c3d5cfe799b9d10ac62086256962a28fa","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.2.0","clock-0.8.3-137df44468d5edff5f854d1fdd7a1d931405a677f532203f6514e2afb4e770bc","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.13.2","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.2.0"]},{"type":"configured","id":"filepattern-0.1.3-c39c77f00628ef3ce634a34cee62a898b5a2c01b16047d7bfab8cb6aa8c3ed4f","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.2.0","directory-1.3.6.2","extra-1.7.12-03735b64c6d5b3b50ba8f2abe4c1af7c3d5cfe799b9d10ac62086256962a28fa","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.3","pkg-name":"ghc-boot-th","pkg-version":"9.2.3","depends":["base-4.16.2.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.3/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.3/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-28383ec8c634951270f884fff9301d3d43ed48bb03153402d1ed50f540469641","base-4.16.2.0","bytestring-0.11.3.1","containers-0.6.5.1","directory-1.3.6.2","extra-1.7.12-03735b64c6d5b3b50ba8f2abe4c1af7c3d5cfe799b9d10ac62086256962a28fa","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-08211eabf258a36d817195dd1d55c2ad9c41ba74e9e5a2bfb4d5d440a4779cf2","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-a82a624e45af105b88150facc7651e298009a39b844f8bde51b8dd88cf5b4916"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.3/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-31f8de08b287590549988e434ce1ffc3d917501f7250186aa981d2c108e32b76","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.2.0","bytestring-0.11.3.1","containers-0.6.5.1","data-array-byte-0.1.0.1-4e207c2b115249dcadfc85271a70e751fcfcae254ff5818252d7353e3d8cb608","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-d8a49d6a489879d9c4153538b9dce8f05178088f9abe624f0b9b7f1bf9b767bd","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-4ccd577f77dcd9aad5f76085357cbca8fac52265b3de9bef5751e8c318bf1092","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-82abb5a93c9421fbaa227436e44b7f8b7ddc9b9978f04fce90b53c8e0012c6a0","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-3490eb5866089e8998fb0b2aa39a1322039178695f200e12962250c13149e26a","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.2.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.2.0","bytestring-0.11.3.1","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.2.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-b4bd4d9d22d69d55dc4d45ece758a7a938f10a7001e1b9163976d63d2dc558a2","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.2.0","data-array-byte-0.1.0.1-4e207c2b115249dcadfc85271a70e751fcfcae254ff5818252d7353e3d8cb608","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.13.2","pkg-name":"process","pkg-version":"1.6.13.2","depends":["base-4.16.2.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-40759a416704d10d86283d548100f6265a34bcb854377f345fbde64bf698fad0","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.2.0","bytestring-0.11.3.1","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-f5816d86b79c25a60eb0e68dec4d61b22701a8b4fd7de88550a4b0606cf31730"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-08211eabf258a36d817195dd1d55c2ad9c41ba74e9e5a2bfb4d5d440a4779cf2","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.2.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-03735b64c6d5b3b50ba8f2abe4c1af7c3d5cfe799b9d10ac62086256962a28fa","filepath-1.4.2.2","filepattern-0.1.3-c39c77f00628ef3ce634a34cee62a898b5a2c01b16047d7bfab8cb6aa8c3ed4f","hashable-1.4.2.0-31f8de08b287590549988e434ce1ffc3d917501f7250186aa981d2c108e32b76","heaps-0.4-d8a49d6a489879d9c4153538b9dce8f05178088f9abe624f0b9b7f1bf9b767bd","js-dgtable-0.5.2-4ccd577f77dcd9aad5f76085357cbca8fac52265b3de9bef5751e8c318bf1092","js-flot-0.8.3-82abb5a93c9421fbaa227436e44b7f8b7ddc9b9978f04fce90b53c8e0012c6a0","js-jquery-3.3.1-3490eb5866089e8998fb0b2aa39a1322039178695f200e12962250c13149e26a","primitive-0.8.0.0-b4bd4d9d22d69d55dc4d45ece758a7a938f10a7001e1b9163976d63d2dc558a2","process-1.6.13.2","random-1.2.1.1-40759a416704d10d86283d548100f6265a34bcb854377f345fbde64bf698fad0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-a82a624e45af105b88150facc7651e298009a39b844f8bde51b8dd88cf5b4916","utf8-string-1.0.2-118917811093d53a6e91865006ec9fa2038310da3ed3410e4fd66982940e44d0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-5c165ed7345c5b65ece21297581f83d9346c178a28a5419b64162a1356501914","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.2.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-03735b64c6d5b3b50ba8f2abe4c1af7c3d5cfe799b9d10ac62086256962a28fa","filepath-1.4.2.2","filepattern-0.1.3-c39c77f00628ef3ce634a34cee62a898b5a2c01b16047d7bfab8cb6aa8c3ed4f","hashable-1.4.2.0-31f8de08b287590549988e434ce1ffc3d917501f7250186aa981d2c108e32b76","heaps-0.4-d8a49d6a489879d9c4153538b9dce8f05178088f9abe624f0b9b7f1bf9b767bd","js-dgtable-0.5.2-4ccd577f77dcd9aad5f76085357cbca8fac52265b3de9bef5751e8c318bf1092","js-flot-0.8.3-82abb5a93c9421fbaa227436e44b7f8b7ddc9b9978f04fce90b53c8e0012c6a0","js-jquery-3.3.1-3490eb5866089e8998fb0b2aa39a1322039178695f200e12962250c13149e26a","primitive-0.8.0.0-b4bd4d9d22d69d55dc4d45ece758a7a938f10a7001e1b9163976d63d2dc558a2","process-1.6.13.2","random-1.2.1.1-40759a416704d10d86283d548100f6265a34bcb854377f345fbde64bf698fad0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-a82a624e45af105b88150facc7651e298009a39b844f8bde51b8dd88cf5b4916","utf8-string-1.0.2-118917811093d53a6e91865006ec9fa2038310da3ed3410e4fd66982940e44d0"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.3/shake-0.19.7-e-shake-5c165ed7345c5b65ece21297581f83d9346c178a28a5419b64162a1356501914/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-f5816d86b79c25a60eb0e68dec4d61b22701a8b4fd7de88550a4b0606cf31730","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.2.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.2.0","ghc-boot-th-9.2.3","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.2.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.2.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.2.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.2.0","bytestring-0.11.3.1","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-a82a624e45af105b88150facc7651e298009a39b844f8bde51b8dd88cf5b4916","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.2.0","deepseq-1.4.6.1","hashable-1.4.2.0-31f8de08b287590549988e434ce1ffc3d917501f7250186aa981d2c108e32b76","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-118917811093d53a6e91865006ec9fa2038310da3ed3410e4fd66982940e44d0","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.2.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.3","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.2.0","binary-0.8.9.0","bytestring-0.11.3.1","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.13.2","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-28383ec8c634951270f884fff9301d3d43ed48bb03153402d1ed50f540469641","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.2.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-40759a416704d10d86283d548100f6265a34bcb854377f345fbde64bf698fad0","splitmix-0.1.0.4-f5816d86b79c25a60eb0e68dec4d61b22701a8b4fd7de88550a4b0606cf31730","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.2.0"]},{"type":"pre-existing","id":"base-4.16.2.0","pkg-name":"base","pkg-version":"4.16.2.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-416181c2ef0e3198dfb3cfbd7c326ee1bf6356d2990473873537dade94cb81b3","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.16.2.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.2.0","bytestring-0.11.3.1","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.16.2.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-137df44468d5edff5f854d1fdd7a1d931405a677f532203f6514e2afb4e770bc","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.2.0","deepseq-1.4.6.1"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-d3fdb48ff5ea6d109a282c25b81369ffa645133c39b66dcf88da5ad16e43b896","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.16.2.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"data-array-byte-0.1.0.1-4e207c2b115249dcadfc85271a70e751fcfcae254ff5818252d7353e3d8cb608","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.2.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.2.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.2.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-03735b64c6d5b3b50ba8f2abe4c1af7c3d5cfe799b9d10ac62086256962a28fa","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.2.0","clock-0.8.3-137df44468d5edff5f854d1fdd7a1d931405a677f532203f6514e2afb4e770bc","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.13.2","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.2.0"]},{"type":"configured","id":"filepattern-0.1.3-c39c77f00628ef3ce634a34cee62a898b5a2c01b16047d7bfab8cb6aa8c3ed4f","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.2.0","directory-1.3.6.2","extra-1.7.12-03735b64c6d5b3b50ba8f2abe4c1af7c3d5cfe799b9d10ac62086256962a28fa","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.3","pkg-name":"ghc-boot-th","pkg-version":"9.2.3","depends":["base-4.16.2.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.3/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.3/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-28383ec8c634951270f884fff9301d3d43ed48bb03153402d1ed50f540469641","base-4.16.2.0","base16-bytestring-1.0.2.0-416181c2ef0e3198dfb3cfbd7c326ee1bf6356d2990473873537dade94cb81b3","bytestring-0.11.3.1","containers-0.6.5.1","cryptohash-sha256-0.11.102.1-d3fdb48ff5ea6d109a282c25b81369ffa645133c39b66dcf88da5ad16e43b896","directory-1.3.6.2","extra-1.7.12-03735b64c6d5b3b50ba8f2abe4c1af7c3d5cfe799b9d10ac62086256962a28fa","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-08211eabf258a36d817195dd1d55c2ad9c41ba74e9e5a2bfb4d5d440a4779cf2","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-a82a624e45af105b88150facc7651e298009a39b844f8bde51b8dd88cf5b4916"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.3/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-31f8de08b287590549988e434ce1ffc3d917501f7250186aa981d2c108e32b76","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.2.0","bytestring-0.11.3.1","containers-0.6.5.1","data-array-byte-0.1.0.1-4e207c2b115249dcadfc85271a70e751fcfcae254ff5818252d7353e3d8cb608","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-d8a49d6a489879d9c4153538b9dce8f05178088f9abe624f0b9b7f1bf9b767bd","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-4ccd577f77dcd9aad5f76085357cbca8fac52265b3de9bef5751e8c318bf1092","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-82abb5a93c9421fbaa227436e44b7f8b7ddc9b9978f04fce90b53c8e0012c6a0","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-3490eb5866089e8998fb0b2aa39a1322039178695f200e12962250c13149e26a","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.2.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.2.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.2.0","bytestring-0.11.3.1","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.2.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-b4bd4d9d22d69d55dc4d45ece758a7a938f10a7001e1b9163976d63d2dc558a2","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.2.0","data-array-byte-0.1.0.1-4e207c2b115249dcadfc85271a70e751fcfcae254ff5818252d7353e3d8cb608","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.13.2","pkg-name":"process","pkg-version":"1.6.13.2","depends":["base-4.16.2.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-40759a416704d10d86283d548100f6265a34bcb854377f345fbde64bf698fad0","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.2.0","bytestring-0.11.3.1","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-f5816d86b79c25a60eb0e68dec4d61b22701a8b4fd7de88550a4b0606cf31730"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-08211eabf258a36d817195dd1d55c2ad9c41ba74e9e5a2bfb4d5d440a4779cf2","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.2.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-03735b64c6d5b3b50ba8f2abe4c1af7c3d5cfe799b9d10ac62086256962a28fa","filepath-1.4.2.2","filepattern-0.1.3-c39c77f00628ef3ce634a34cee62a898b5a2c01b16047d7bfab8cb6aa8c3ed4f","hashable-1.4.2.0-31f8de08b287590549988e434ce1ffc3d917501f7250186aa981d2c108e32b76","heaps-0.4-d8a49d6a489879d9c4153538b9dce8f05178088f9abe624f0b9b7f1bf9b767bd","js-dgtable-0.5.2-4ccd577f77dcd9aad5f76085357cbca8fac52265b3de9bef5751e8c318bf1092","js-flot-0.8.3-82abb5a93c9421fbaa227436e44b7f8b7ddc9b9978f04fce90b53c8e0012c6a0","js-jquery-3.3.1-3490eb5866089e8998fb0b2aa39a1322039178695f200e12962250c13149e26a","primitive-0.8.0.0-b4bd4d9d22d69d55dc4d45ece758a7a938f10a7001e1b9163976d63d2dc558a2","process-1.6.13.2","random-1.2.1.1-40759a416704d10d86283d548100f6265a34bcb854377f345fbde64bf698fad0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-a82a624e45af105b88150facc7651e298009a39b844f8bde51b8dd88cf5b4916","utf8-string-1.0.2-118917811093d53a6e91865006ec9fa2038310da3ed3410e4fd66982940e44d0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-5c165ed7345c5b65ece21297581f83d9346c178a28a5419b64162a1356501914","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.2.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-03735b64c6d5b3b50ba8f2abe4c1af7c3d5cfe799b9d10ac62086256962a28fa","filepath-1.4.2.2","filepattern-0.1.3-c39c77f00628ef3ce634a34cee62a898b5a2c01b16047d7bfab8cb6aa8c3ed4f","hashable-1.4.2.0-31f8de08b287590549988e434ce1ffc3d917501f7250186aa981d2c108e32b76","heaps-0.4-d8a49d6a489879d9c4153538b9dce8f05178088f9abe624f0b9b7f1bf9b767bd","js-dgtable-0.5.2-4ccd577f77dcd9aad5f76085357cbca8fac52265b3de9bef5751e8c318bf1092","js-flot-0.8.3-82abb5a93c9421fbaa227436e44b7f8b7ddc9b9978f04fce90b53c8e0012c6a0","js-jquery-3.3.1-3490eb5866089e8998fb0b2aa39a1322039178695f200e12962250c13149e26a","primitive-0.8.0.0-b4bd4d9d22d69d55dc4d45ece758a7a938f10a7001e1b9163976d63d2dc558a2","process-1.6.13.2","random-1.2.1.1-40759a416704d10d86283d548100f6265a34bcb854377f345fbde64bf698fad0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-a82a624e45af105b88150facc7651e298009a39b844f8bde51b8dd88cf5b4916","utf8-string-1.0.2-118917811093d53a6e91865006ec9fa2038310da3ed3410e4fd66982940e44d0"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.3/shake-0.19.7-e-shake-5c165ed7345c5b65ece21297581f83d9346c178a28a5419b64162a1356501914/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-f5816d86b79c25a60eb0e68dec4d61b22701a8b4fd7de88550a4b0606cf31730","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.2.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.2.0","ghc-boot-th-9.2.3","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.2.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.2.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.2.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.2.0","bytestring-0.11.3.1","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-a82a624e45af105b88150facc7651e298009a39b844f8bde51b8dd88cf5b4916","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.2.0","deepseq-1.4.6.1","hashable-1.4.2.0-31f8de08b287590549988e434ce1ffc3d917501f7250186aa981d2c108e32b76","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-118917811093d53a6e91865006ec9fa2038310da3ed3410e4fd66982940e44d0","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.2.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_2_4.json b/hadrian/bootstrap/plan-9_2_4.json
index 4c0e628a8f89..e0db6f774d8a 100644
--- a/hadrian/bootstrap/plan-9_2_4.json
+++ b/hadrian/bootstrap/plan-9_2_4.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.4","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.3.0","binary-0.8.9.0","bytestring-0.11.3.1","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.13.2","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-6d836be05ad916880fe0949228d3c81e9b8f2ca795d2696c492a4c70b5508239","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.3.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-cacc1501582bd05c5eec5dea004194a2d9ff55cb8e30c141ffdbf5e9daaf76af","splitmix-0.1.0.4-c5a30dae3b6eb47ac8ba23a866a9ff6f96961c3b68fcb8f53614067e0454a0ed","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.3.0"]},{"type":"pre-existing","id":"base-4.16.3.0","pkg-name":"base","pkg-version":"4.16.3.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.3.0","bytestring-0.11.3.1","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.16.3.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-e114f0d147804c0f73def6b7e3e0abc1123ce489f19fe058ee0a85d0c30d88b3","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.3.0","deepseq-1.4.6.1"]},{"type":"configured","id":"data-array-byte-0.1.0.1-0817fab8e0aaf64af1a7971c563c38ecb28cc0ab9636107e9ad76dcbeb16da1b","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.3.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.3.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.3.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-30b204f811b2d9236d3796a4afd55e03a0ebcc236d0936fb48954c001a668d85","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.3.0","clock-0.8.3-e114f0d147804c0f73def6b7e3e0abc1123ce489f19fe058ee0a85d0c30d88b3","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.13.2","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.3.0"]},{"type":"configured","id":"filepattern-0.1.3-553b0fa2b393f41d7a33e70dc70a212a84b4741694eae595c027e2a0bc506bee","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.3.0","directory-1.3.6.2","extra-1.7.12-30b204f811b2d9236d3796a4afd55e03a0ebcc236d0936fb48954c001a668d85","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.4","pkg-name":"ghc-boot-th","pkg-version":"9.2.4","depends":["base-4.16.3.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.4/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.4/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-6d836be05ad916880fe0949228d3c81e9b8f2ca795d2696c492a4c70b5508239","base-4.16.3.0","bytestring-0.11.3.1","containers-0.6.5.1","directory-1.3.6.2","extra-1.7.12-30b204f811b2d9236d3796a4afd55e03a0ebcc236d0936fb48954c001a668d85","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-c24bb8b0eb33f2b23d3d2e2c00ee442f0331dc02df435ed6f01ecdd5d90e7c16","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-685b2b9941ba1dbca71c41b7b129599fa9e60a37ae0cee284194ab113d2ea671"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.4/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-1717d4bc84bbd91e502a6a1d0fbbe9b2913f122572feea473d06f64594b446ec","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.3.0","bytestring-0.11.3.1","containers-0.6.5.1","data-array-byte-0.1.0.1-0817fab8e0aaf64af1a7971c563c38ecb28cc0ab9636107e9ad76dcbeb16da1b","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-9ef32198cdd1e78830c66145fd58d308d8307d7f9673cf1db51fe0663adea5aa","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-ea71215251f637eb99b420c532ed9d47fc287d0541c7aafb9f4e7e212e22ad28","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-7863d367d217e7fe0af1683d0b88b641c00cfce9045c088f91bd42dc630b880d","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-2a68aa0f8e1547440ea68362a9d21af8f4307038e7d45b7c167ab2cfc9fc74c5","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.3.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.3.0","bytestring-0.11.3.1","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.3.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-80350fff1c8215a379d63da45891f42ed8c7c56918c3616f5a3d952c9565ccd5","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.3.0","data-array-byte-0.1.0.1-0817fab8e0aaf64af1a7971c563c38ecb28cc0ab9636107e9ad76dcbeb16da1b","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.13.2","pkg-name":"process","pkg-version":"1.6.13.2","depends":["base-4.16.3.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-cacc1501582bd05c5eec5dea004194a2d9ff55cb8e30c141ffdbf5e9daaf76af","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.3.0","bytestring-0.11.3.1","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-c5a30dae3b6eb47ac8ba23a866a9ff6f96961c3b68fcb8f53614067e0454a0ed"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-c24bb8b0eb33f2b23d3d2e2c00ee442f0331dc02df435ed6f01ecdd5d90e7c16","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.3.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-30b204f811b2d9236d3796a4afd55e03a0ebcc236d0936fb48954c001a668d85","filepath-1.4.2.2","filepattern-0.1.3-553b0fa2b393f41d7a33e70dc70a212a84b4741694eae595c027e2a0bc506bee","hashable-1.4.2.0-1717d4bc84bbd91e502a6a1d0fbbe9b2913f122572feea473d06f64594b446ec","heaps-0.4-9ef32198cdd1e78830c66145fd58d308d8307d7f9673cf1db51fe0663adea5aa","js-dgtable-0.5.2-ea71215251f637eb99b420c532ed9d47fc287d0541c7aafb9f4e7e212e22ad28","js-flot-0.8.3-7863d367d217e7fe0af1683d0b88b641c00cfce9045c088f91bd42dc630b880d","js-jquery-3.3.1-2a68aa0f8e1547440ea68362a9d21af8f4307038e7d45b7c167ab2cfc9fc74c5","primitive-0.8.0.0-80350fff1c8215a379d63da45891f42ed8c7c56918c3616f5a3d952c9565ccd5","process-1.6.13.2","random-1.2.1.1-cacc1501582bd05c5eec5dea004194a2d9ff55cb8e30c141ffdbf5e9daaf76af","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-685b2b9941ba1dbca71c41b7b129599fa9e60a37ae0cee284194ab113d2ea671","utf8-string-1.0.2-d22b18266988d52549714440c6819d7b11afafcefe4fbf4550bb19de6eaeb0e4"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-a14177998667ebf92ef887106b02787b16223d1ae08cbd3e5a9531032831b6ee","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.3.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-30b204f811b2d9236d3796a4afd55e03a0ebcc236d0936fb48954c001a668d85","filepath-1.4.2.2","filepattern-0.1.3-553b0fa2b393f41d7a33e70dc70a212a84b4741694eae595c027e2a0bc506bee","hashable-1.4.2.0-1717d4bc84bbd91e502a6a1d0fbbe9b2913f122572feea473d06f64594b446ec","heaps-0.4-9ef32198cdd1e78830c66145fd58d308d8307d7f9673cf1db51fe0663adea5aa","js-dgtable-0.5.2-ea71215251f637eb99b420c532ed9d47fc287d0541c7aafb9f4e7e212e22ad28","js-flot-0.8.3-7863d367d217e7fe0af1683d0b88b641c00cfce9045c088f91bd42dc630b880d","js-jquery-3.3.1-2a68aa0f8e1547440ea68362a9d21af8f4307038e7d45b7c167ab2cfc9fc74c5","primitive-0.8.0.0-80350fff1c8215a379d63da45891f42ed8c7c56918c3616f5a3d952c9565ccd5","process-1.6.13.2","random-1.2.1.1-cacc1501582bd05c5eec5dea004194a2d9ff55cb8e30c141ffdbf5e9daaf76af","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-685b2b9941ba1dbca71c41b7b129599fa9e60a37ae0cee284194ab113d2ea671","utf8-string-1.0.2-d22b18266988d52549714440c6819d7b11afafcefe4fbf4550bb19de6eaeb0e4"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.4/shake-0.19.7-e-shake-a14177998667ebf92ef887106b02787b16223d1ae08cbd3e5a9531032831b6ee/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-c5a30dae3b6eb47ac8ba23a866a9ff6f96961c3b68fcb8f53614067e0454a0ed","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.3.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.3.0","ghc-boot-th-9.2.4","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.3.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.3.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.3.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.3.0","bytestring-0.11.3.1","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-685b2b9941ba1dbca71c41b7b129599fa9e60a37ae0cee284194ab113d2ea671","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.3.0","deepseq-1.4.6.1","hashable-1.4.2.0-1717d4bc84bbd91e502a6a1d0fbbe9b2913f122572feea473d06f64594b446ec","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-d22b18266988d52549714440c6819d7b11afafcefe4fbf4550bb19de6eaeb0e4","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.3.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.4","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.3.0","binary-0.8.9.0","bytestring-0.11.3.1","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.13.2","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-6d836be05ad916880fe0949228d3c81e9b8f2ca795d2696c492a4c70b5508239","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.3.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-cacc1501582bd05c5eec5dea004194a2d9ff55cb8e30c141ffdbf5e9daaf76af","splitmix-0.1.0.4-c5a30dae3b6eb47ac8ba23a866a9ff6f96961c3b68fcb8f53614067e0454a0ed","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.3.0"]},{"type":"pre-existing","id":"base-4.16.3.0","pkg-name":"base","pkg-version":"4.16.3.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-d2a3a777ac66ab1aa564a0157178c54aa3d081c41c221bcc7641ef827112df8e","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.16.3.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.3.0","bytestring-0.11.3.1","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.16.3.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-e114f0d147804c0f73def6b7e3e0abc1123ce489f19fe058ee0a85d0c30d88b3","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.3.0","deepseq-1.4.6.1"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-e4cde5f01f3cb925513d713200a61fe62165acb4796e3832db49c444783074c0","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.16.3.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"data-array-byte-0.1.0.1-0817fab8e0aaf64af1a7971c563c38ecb28cc0ab9636107e9ad76dcbeb16da1b","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.3.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.3.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.3.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-30b204f811b2d9236d3796a4afd55e03a0ebcc236d0936fb48954c001a668d85","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.3.0","clock-0.8.3-e114f0d147804c0f73def6b7e3e0abc1123ce489f19fe058ee0a85d0c30d88b3","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.13.2","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.3.0"]},{"type":"configured","id":"filepattern-0.1.3-553b0fa2b393f41d7a33e70dc70a212a84b4741694eae595c027e2a0bc506bee","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.3.0","directory-1.3.6.2","extra-1.7.12-30b204f811b2d9236d3796a4afd55e03a0ebcc236d0936fb48954c001a668d85","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.4","pkg-name":"ghc-boot-th","pkg-version":"9.2.4","depends":["base-4.16.3.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.4/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.4/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-6d836be05ad916880fe0949228d3c81e9b8f2ca795d2696c492a4c70b5508239","base-4.16.3.0","base16-bytestring-1.0.2.0-d2a3a777ac66ab1aa564a0157178c54aa3d081c41c221bcc7641ef827112df8e","bytestring-0.11.3.1","containers-0.6.5.1","cryptohash-sha256-0.11.102.1-e4cde5f01f3cb925513d713200a61fe62165acb4796e3832db49c444783074c0","directory-1.3.6.2","extra-1.7.12-30b204f811b2d9236d3796a4afd55e03a0ebcc236d0936fb48954c001a668d85","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-c24bb8b0eb33f2b23d3d2e2c00ee442f0331dc02df435ed6f01ecdd5d90e7c16","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-685b2b9941ba1dbca71c41b7b129599fa9e60a37ae0cee284194ab113d2ea671"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.4/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-1717d4bc84bbd91e502a6a1d0fbbe9b2913f122572feea473d06f64594b446ec","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.3.0","bytestring-0.11.3.1","containers-0.6.5.1","data-array-byte-0.1.0.1-0817fab8e0aaf64af1a7971c563c38ecb28cc0ab9636107e9ad76dcbeb16da1b","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-9ef32198cdd1e78830c66145fd58d308d8307d7f9673cf1db51fe0663adea5aa","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-ea71215251f637eb99b420c532ed9d47fc287d0541c7aafb9f4e7e212e22ad28","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-7863d367d217e7fe0af1683d0b88b641c00cfce9045c088f91bd42dc630b880d","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-2a68aa0f8e1547440ea68362a9d21af8f4307038e7d45b7c167ab2cfc9fc74c5","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.3.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.3.0","bytestring-0.11.3.1","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.3.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-80350fff1c8215a379d63da45891f42ed8c7c56918c3616f5a3d952c9565ccd5","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.3.0","data-array-byte-0.1.0.1-0817fab8e0aaf64af1a7971c563c38ecb28cc0ab9636107e9ad76dcbeb16da1b","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.13.2","pkg-name":"process","pkg-version":"1.6.13.2","depends":["base-4.16.3.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-cacc1501582bd05c5eec5dea004194a2d9ff55cb8e30c141ffdbf5e9daaf76af","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.3.0","bytestring-0.11.3.1","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-c5a30dae3b6eb47ac8ba23a866a9ff6f96961c3b68fcb8f53614067e0454a0ed"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-c24bb8b0eb33f2b23d3d2e2c00ee442f0331dc02df435ed6f01ecdd5d90e7c16","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.3.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-30b204f811b2d9236d3796a4afd55e03a0ebcc236d0936fb48954c001a668d85","filepath-1.4.2.2","filepattern-0.1.3-553b0fa2b393f41d7a33e70dc70a212a84b4741694eae595c027e2a0bc506bee","hashable-1.4.2.0-1717d4bc84bbd91e502a6a1d0fbbe9b2913f122572feea473d06f64594b446ec","heaps-0.4-9ef32198cdd1e78830c66145fd58d308d8307d7f9673cf1db51fe0663adea5aa","js-dgtable-0.5.2-ea71215251f637eb99b420c532ed9d47fc287d0541c7aafb9f4e7e212e22ad28","js-flot-0.8.3-7863d367d217e7fe0af1683d0b88b641c00cfce9045c088f91bd42dc630b880d","js-jquery-3.3.1-2a68aa0f8e1547440ea68362a9d21af8f4307038e7d45b7c167ab2cfc9fc74c5","primitive-0.8.0.0-80350fff1c8215a379d63da45891f42ed8c7c56918c3616f5a3d952c9565ccd5","process-1.6.13.2","random-1.2.1.1-cacc1501582bd05c5eec5dea004194a2d9ff55cb8e30c141ffdbf5e9daaf76af","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-685b2b9941ba1dbca71c41b7b129599fa9e60a37ae0cee284194ab113d2ea671","utf8-string-1.0.2-d22b18266988d52549714440c6819d7b11afafcefe4fbf4550bb19de6eaeb0e4"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-a14177998667ebf92ef887106b02787b16223d1ae08cbd3e5a9531032831b6ee","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.3.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-30b204f811b2d9236d3796a4afd55e03a0ebcc236d0936fb48954c001a668d85","filepath-1.4.2.2","filepattern-0.1.3-553b0fa2b393f41d7a33e70dc70a212a84b4741694eae595c027e2a0bc506bee","hashable-1.4.2.0-1717d4bc84bbd91e502a6a1d0fbbe9b2913f122572feea473d06f64594b446ec","heaps-0.4-9ef32198cdd1e78830c66145fd58d308d8307d7f9673cf1db51fe0663adea5aa","js-dgtable-0.5.2-ea71215251f637eb99b420c532ed9d47fc287d0541c7aafb9f4e7e212e22ad28","js-flot-0.8.3-7863d367d217e7fe0af1683d0b88b641c00cfce9045c088f91bd42dc630b880d","js-jquery-3.3.1-2a68aa0f8e1547440ea68362a9d21af8f4307038e7d45b7c167ab2cfc9fc74c5","primitive-0.8.0.0-80350fff1c8215a379d63da45891f42ed8c7c56918c3616f5a3d952c9565ccd5","process-1.6.13.2","random-1.2.1.1-cacc1501582bd05c5eec5dea004194a2d9ff55cb8e30c141ffdbf5e9daaf76af","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-685b2b9941ba1dbca71c41b7b129599fa9e60a37ae0cee284194ab113d2ea671","utf8-string-1.0.2-d22b18266988d52549714440c6819d7b11afafcefe4fbf4550bb19de6eaeb0e4"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.4/shake-0.19.7-e-shake-a14177998667ebf92ef887106b02787b16223d1ae08cbd3e5a9531032831b6ee/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-c5a30dae3b6eb47ac8ba23a866a9ff6f96961c3b68fcb8f53614067e0454a0ed","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.3.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.3.0","ghc-boot-th-9.2.4","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.3.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.3.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.3.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.3.0","bytestring-0.11.3.1","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-685b2b9941ba1dbca71c41b7b129599fa9e60a37ae0cee284194ab113d2ea671","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.3.0","deepseq-1.4.6.1","hashable-1.4.2.0-1717d4bc84bbd91e502a6a1d0fbbe9b2913f122572feea473d06f64594b446ec","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-d22b18266988d52549714440c6819d7b11afafcefe4fbf4550bb19de6eaeb0e4","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.3.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_2_5.json b/hadrian/bootstrap/plan-9_2_5.json
index 1c4aa97473ee..a7126b4dc3ec 100644
--- a/hadrian/bootstrap/plan-9_2_5.json
+++ b/hadrian/bootstrap/plan-9_2_5.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.5","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.3.1","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.16.0","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-a60570c1dc670dd11ee37ddb50cca2b8e1507fbfd3533a81c0d15b3e979210d9","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.4.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-885807a6bd9d41e8fc2e75d8dd80c9e20b0ba1730d05301809f964023485f9cd","splitmix-0.1.0.4-05e94c68071a79f6544a1eb40799e77fc0303dc95f5ca42c8c0e018ecfa089b5","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"base-4.16.4.0","pkg-name":"base","pkg-version":"4.16.4.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.4.0","bytestring-0.11.3.1","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-215ec906b409ed911e369445f74ad918e85cd7b8092968f82c1604247e0b0fcd","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"configured","id":"data-array-byte-0.1.0.1-d7b8f065d09e7600a2fd18c6f110ad2e9c224dc7abeb08598e439eae971a67a4","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.4.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.4.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.4.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-0b85ca5767dc2461848ebe03542bc268b1ae5936dc02db50abd46225b9124742","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.4.0","clock-0.8.3-215ec906b409ed911e369445f74ad918e85cd7b8092968f82c1604247e0b0fcd","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.16.0","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.4.0"]},{"type":"configured","id":"filepattern-0.1.3-9fd7bc2eeb28ea202ee356e42d64124a8d75f39744aba252872ec5069448ff53","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.4.0","directory-1.3.6.2","extra-1.7.12-0b85ca5767dc2461848ebe03542bc268b1ae5936dc02db50abd46225b9124742","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.5","pkg-name":"ghc-boot-th","pkg-version":"9.2.5","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.5/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.5/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-a60570c1dc670dd11ee37ddb50cca2b8e1507fbfd3533a81c0d15b3e979210d9","base-4.16.4.0","bytestring-0.11.3.1","containers-0.6.5.1","directory-1.3.6.2","extra-1.7.12-0b85ca5767dc2461848ebe03542bc268b1ae5936dc02db50abd46225b9124742","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-d5ed83c858bf166c2267f32ca7608d79b8ca2402f05e75acba55d9c6a59cf591","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-e17e4eaa57041cf90fa7c8c76a10acb176295004933e8ee0b6f66d3f5c723587"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.5/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-cd83efde5acf8903e5c98006b3dc0a9ad0c59df25dc4cfb7a8637e6a72487748","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.4.0","bytestring-0.11.3.1","containers-0.6.5.1","data-array-byte-0.1.0.1-d7b8f065d09e7600a2fd18c6f110ad2e9c224dc7abeb08598e439eae971a67a4","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-c5219f46f5acc26739c28a1d2d3173defe4290dc709c72d7420452f4ca3cdb15","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-6717f236827988762b171655a351e0a3db4d4ff00cbba6c248ee24870e49a222","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-3f91fca8ca3efea1322bbf30309f3f31075f84e270d14a14699fdf5c8af727bc","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-b79aaacdca50f9d6c80a5a81cbf0facb6d3babc309abd7c4829e511c58413d5d","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.4.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.4.0","bytestring-0.11.3.1","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-653648ffbc2bb5880dce88aae02fcd60a85d12a5e665e103a4604adbc2276599","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.4.0","data-array-byte-0.1.0.1-d7b8f065d09e7600a2fd18c6f110ad2e9c224dc7abeb08598e439eae971a67a4","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.16.0","pkg-name":"process","pkg-version":"1.6.16.0","depends":["base-4.16.4.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-885807a6bd9d41e8fc2e75d8dd80c9e20b0ba1730d05301809f964023485f9cd","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.4.0","bytestring-0.11.3.1","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-05e94c68071a79f6544a1eb40799e77fc0303dc95f5ca42c8c0e018ecfa089b5"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-d5ed83c858bf166c2267f32ca7608d79b8ca2402f05e75acba55d9c6a59cf591","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-0b85ca5767dc2461848ebe03542bc268b1ae5936dc02db50abd46225b9124742","filepath-1.4.2.2","filepattern-0.1.3-9fd7bc2eeb28ea202ee356e42d64124a8d75f39744aba252872ec5069448ff53","hashable-1.4.2.0-cd83efde5acf8903e5c98006b3dc0a9ad0c59df25dc4cfb7a8637e6a72487748","heaps-0.4-c5219f46f5acc26739c28a1d2d3173defe4290dc709c72d7420452f4ca3cdb15","js-dgtable-0.5.2-6717f236827988762b171655a351e0a3db4d4ff00cbba6c248ee24870e49a222","js-flot-0.8.3-3f91fca8ca3efea1322bbf30309f3f31075f84e270d14a14699fdf5c8af727bc","js-jquery-3.3.1-b79aaacdca50f9d6c80a5a81cbf0facb6d3babc309abd7c4829e511c58413d5d","primitive-0.8.0.0-653648ffbc2bb5880dce88aae02fcd60a85d12a5e665e103a4604adbc2276599","process-1.6.16.0","random-1.2.1.1-885807a6bd9d41e8fc2e75d8dd80c9e20b0ba1730d05301809f964023485f9cd","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-e17e4eaa57041cf90fa7c8c76a10acb176295004933e8ee0b6f66d3f5c723587","utf8-string-1.0.2-6da47bc6d69d238101f1e6a89229b2565caafca0fff03fece9abd3304b0d2641"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-763e20a0677eb65ee96d570cfde80013759112dca97001cf52844e1a5caf8870","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-0b85ca5767dc2461848ebe03542bc268b1ae5936dc02db50abd46225b9124742","filepath-1.4.2.2","filepattern-0.1.3-9fd7bc2eeb28ea202ee356e42d64124a8d75f39744aba252872ec5069448ff53","hashable-1.4.2.0-cd83efde5acf8903e5c98006b3dc0a9ad0c59df25dc4cfb7a8637e6a72487748","heaps-0.4-c5219f46f5acc26739c28a1d2d3173defe4290dc709c72d7420452f4ca3cdb15","js-dgtable-0.5.2-6717f236827988762b171655a351e0a3db4d4ff00cbba6c248ee24870e49a222","js-flot-0.8.3-3f91fca8ca3efea1322bbf30309f3f31075f84e270d14a14699fdf5c8af727bc","js-jquery-3.3.1-b79aaacdca50f9d6c80a5a81cbf0facb6d3babc309abd7c4829e511c58413d5d","primitive-0.8.0.0-653648ffbc2bb5880dce88aae02fcd60a85d12a5e665e103a4604adbc2276599","process-1.6.16.0","random-1.2.1.1-885807a6bd9d41e8fc2e75d8dd80c9e20b0ba1730d05301809f964023485f9cd","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-e17e4eaa57041cf90fa7c8c76a10acb176295004933e8ee0b6f66d3f5c723587","utf8-string-1.0.2-6da47bc6d69d238101f1e6a89229b2565caafca0fff03fece9abd3304b0d2641"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.5/shake-0.19.7-e-shake-763e20a0677eb65ee96d570cfde80013759112dca97001cf52844e1a5caf8870/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-05e94c68071a79f6544a1eb40799e77fc0303dc95f5ca42c8c0e018ecfa089b5","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.4.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.4.0","ghc-boot-th-9.2.5","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.4.0","bytestring-0.11.3.1","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-e17e4eaa57041cf90fa7c8c76a10acb176295004933e8ee0b6f66d3f5c723587","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.4.0","deepseq-1.4.6.1","hashable-1.4.2.0-cd83efde5acf8903e5c98006b3dc0a9ad0c59df25dc4cfb7a8637e6a72487748","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-6da47bc6d69d238101f1e6a89229b2565caafca0fff03fece9abd3304b0d2641","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.4.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.5","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.3.1","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.16.0","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-a60570c1dc670dd11ee37ddb50cca2b8e1507fbfd3533a81c0d15b3e979210d9","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.4.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-885807a6bd9d41e8fc2e75d8dd80c9e20b0ba1730d05301809f964023485f9cd","splitmix-0.1.0.4-05e94c68071a79f6544a1eb40799e77fc0303dc95f5ca42c8c0e018ecfa089b5","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"base-4.16.4.0","pkg-name":"base","pkg-version":"4.16.4.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-7c01b96bee3990467711e9210569522a67be8600958052b3b662eb864dedb587","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.16.4.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.4.0","bytestring-0.11.3.1","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-215ec906b409ed911e369445f74ad918e85cd7b8092968f82c1604247e0b0fcd","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-fc2c91005ee6c3bbec04cf608246c372198e6571bd2e0086cd14458e1c64bc91","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.16.4.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"data-array-byte-0.1.0.1-d7b8f065d09e7600a2fd18c6f110ad2e9c224dc7abeb08598e439eae971a67a4","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.4.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.4.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.4.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-0b85ca5767dc2461848ebe03542bc268b1ae5936dc02db50abd46225b9124742","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.4.0","clock-0.8.3-215ec906b409ed911e369445f74ad918e85cd7b8092968f82c1604247e0b0fcd","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.16.0","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.4.0"]},{"type":"configured","id":"filepattern-0.1.3-9fd7bc2eeb28ea202ee356e42d64124a8d75f39744aba252872ec5069448ff53","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.4.0","directory-1.3.6.2","extra-1.7.12-0b85ca5767dc2461848ebe03542bc268b1ae5936dc02db50abd46225b9124742","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.5","pkg-name":"ghc-boot-th","pkg-version":"9.2.5","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.5/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.5/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-a60570c1dc670dd11ee37ddb50cca2b8e1507fbfd3533a81c0d15b3e979210d9","base-4.16.4.0","base16-bytestring-1.0.2.0-7c01b96bee3990467711e9210569522a67be8600958052b3b662eb864dedb587","bytestring-0.11.3.1","containers-0.6.5.1","cryptohash-sha256-0.11.102.1-fc2c91005ee6c3bbec04cf608246c372198e6571bd2e0086cd14458e1c64bc91","directory-1.3.6.2","extra-1.7.12-0b85ca5767dc2461848ebe03542bc268b1ae5936dc02db50abd46225b9124742","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-d5ed83c858bf166c2267f32ca7608d79b8ca2402f05e75acba55d9c6a59cf591","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-e17e4eaa57041cf90fa7c8c76a10acb176295004933e8ee0b6f66d3f5c723587"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.5/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-cd83efde5acf8903e5c98006b3dc0a9ad0c59df25dc4cfb7a8637e6a72487748","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.4.0","bytestring-0.11.3.1","containers-0.6.5.1","data-array-byte-0.1.0.1-d7b8f065d09e7600a2fd18c6f110ad2e9c224dc7abeb08598e439eae971a67a4","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-c5219f46f5acc26739c28a1d2d3173defe4290dc709c72d7420452f4ca3cdb15","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-6717f236827988762b171655a351e0a3db4d4ff00cbba6c248ee24870e49a222","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-3f91fca8ca3efea1322bbf30309f3f31075f84e270d14a14699fdf5c8af727bc","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-b79aaacdca50f9d6c80a5a81cbf0facb6d3babc309abd7c4829e511c58413d5d","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.4.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.4.0","bytestring-0.11.3.1","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-653648ffbc2bb5880dce88aae02fcd60a85d12a5e665e103a4604adbc2276599","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.4.0","data-array-byte-0.1.0.1-d7b8f065d09e7600a2fd18c6f110ad2e9c224dc7abeb08598e439eae971a67a4","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.16.0","pkg-name":"process","pkg-version":"1.6.16.0","depends":["base-4.16.4.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-885807a6bd9d41e8fc2e75d8dd80c9e20b0ba1730d05301809f964023485f9cd","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.4.0","bytestring-0.11.3.1","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-05e94c68071a79f6544a1eb40799e77fc0303dc95f5ca42c8c0e018ecfa089b5"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-d5ed83c858bf166c2267f32ca7608d79b8ca2402f05e75acba55d9c6a59cf591","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-0b85ca5767dc2461848ebe03542bc268b1ae5936dc02db50abd46225b9124742","filepath-1.4.2.2","filepattern-0.1.3-9fd7bc2eeb28ea202ee356e42d64124a8d75f39744aba252872ec5069448ff53","hashable-1.4.2.0-cd83efde5acf8903e5c98006b3dc0a9ad0c59df25dc4cfb7a8637e6a72487748","heaps-0.4-c5219f46f5acc26739c28a1d2d3173defe4290dc709c72d7420452f4ca3cdb15","js-dgtable-0.5.2-6717f236827988762b171655a351e0a3db4d4ff00cbba6c248ee24870e49a222","js-flot-0.8.3-3f91fca8ca3efea1322bbf30309f3f31075f84e270d14a14699fdf5c8af727bc","js-jquery-3.3.1-b79aaacdca50f9d6c80a5a81cbf0facb6d3babc309abd7c4829e511c58413d5d","primitive-0.8.0.0-653648ffbc2bb5880dce88aae02fcd60a85d12a5e665e103a4604adbc2276599","process-1.6.16.0","random-1.2.1.1-885807a6bd9d41e8fc2e75d8dd80c9e20b0ba1730d05301809f964023485f9cd","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-e17e4eaa57041cf90fa7c8c76a10acb176295004933e8ee0b6f66d3f5c723587","utf8-string-1.0.2-6da47bc6d69d238101f1e6a89229b2565caafca0fff03fece9abd3304b0d2641"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-763e20a0677eb65ee96d570cfde80013759112dca97001cf52844e1a5caf8870","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-0b85ca5767dc2461848ebe03542bc268b1ae5936dc02db50abd46225b9124742","filepath-1.4.2.2","filepattern-0.1.3-9fd7bc2eeb28ea202ee356e42d64124a8d75f39744aba252872ec5069448ff53","hashable-1.4.2.0-cd83efde5acf8903e5c98006b3dc0a9ad0c59df25dc4cfb7a8637e6a72487748","heaps-0.4-c5219f46f5acc26739c28a1d2d3173defe4290dc709c72d7420452f4ca3cdb15","js-dgtable-0.5.2-6717f236827988762b171655a351e0a3db4d4ff00cbba6c248ee24870e49a222","js-flot-0.8.3-3f91fca8ca3efea1322bbf30309f3f31075f84e270d14a14699fdf5c8af727bc","js-jquery-3.3.1-b79aaacdca50f9d6c80a5a81cbf0facb6d3babc309abd7c4829e511c58413d5d","primitive-0.8.0.0-653648ffbc2bb5880dce88aae02fcd60a85d12a5e665e103a4604adbc2276599","process-1.6.16.0","random-1.2.1.1-885807a6bd9d41e8fc2e75d8dd80c9e20b0ba1730d05301809f964023485f9cd","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-e17e4eaa57041cf90fa7c8c76a10acb176295004933e8ee0b6f66d3f5c723587","utf8-string-1.0.2-6da47bc6d69d238101f1e6a89229b2565caafca0fff03fece9abd3304b0d2641"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.5/shake-0.19.7-e-shake-763e20a0677eb65ee96d570cfde80013759112dca97001cf52844e1a5caf8870/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-05e94c68071a79f6544a1eb40799e77fc0303dc95f5ca42c8c0e018ecfa089b5","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.4.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.4.0","ghc-boot-th-9.2.5","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.3.1","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.4.0","bytestring-0.11.3.1","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-e17e4eaa57041cf90fa7c8c76a10acb176295004933e8ee0b6f66d3f5c723587","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.4.0","deepseq-1.4.6.1","hashable-1.4.2.0-cd83efde5acf8903e5c98006b3dc0a9ad0c59df25dc4cfb7a8637e6a72487748","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-6da47bc6d69d238101f1e6a89229b2565caafca0fff03fece9abd3304b0d2641","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.4.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_2_6.json b/hadrian/bootstrap/plan-9_2_6.json
index 5fc331009119..a75b3f543d5a 100644
--- a/hadrian/bootstrap/plan-9_2_6.json
+++ b/hadrian/bootstrap/plan-9_2_6.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.6","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.16.0","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-dbf4e30d0f90ef756fef51f4f1bf54e3607173d3481dd3c987da144134a63713","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.4.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-64a40e4c6fddbdba903cad1f5e5ab403dd367c26f0ddd1add672cdd6d81a6f02","splitmix-0.1.0.4-30a75f98727f2d9f7b9de56e43dd113516fbffc60c17373cee8309561b81e7b8","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"base-4.16.4.0","pkg-name":"base","pkg-version":"4.16.4.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.4.0","bytestring-0.11.4.0","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.4.0","pkg-name":"bytestring","pkg-version":"0.11.4.0","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-51184a0b8e3da6909a58729bce876ef04e7fdfb4f068846e068f1f28f5be93d0","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"configured","id":"data-array-byte-0.1.0.1-19afe996f4ddff3223a47504ed51afc89f5e0694562791e69a27a9cc24b1588a","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.4.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.4.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.4.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-ea9c6151e5a3affa242ee8590b18355cc4cdeb870899139465792a4abda08abb","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.4.0","clock-0.8.3-51184a0b8e3da6909a58729bce876ef04e7fdfb4f068846e068f1f28f5be93d0","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.16.0","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.4.0"]},{"type":"configured","id":"filepattern-0.1.3-88b6a53592df8db19f164cf8de0983223dfff65cbb03c310395452419a9813f4","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.4.0","directory-1.3.6.2","extra-1.7.12-ea9c6151e5a3affa242ee8590b18355cc4cdeb870899139465792a4abda08abb","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.6","pkg-name":"ghc-boot-th","pkg-version":"9.2.6","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.6/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.6/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-dbf4e30d0f90ef756fef51f4f1bf54e3607173d3481dd3c987da144134a63713","base-4.16.4.0","bytestring-0.11.4.0","containers-0.6.5.1","directory-1.3.6.2","extra-1.7.12-ea9c6151e5a3affa242ee8590b18355cc4cdeb870899139465792a4abda08abb","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-19ef30bd9d7b6fcbbe892dd93cb2d28f815b0be7b47977ee7d9816cfdcfcd09a","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-591ed294851193b09a8296073425c72717ca11a2e00fd2b4f1657dcebb64420f"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.6/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-219a6123a837b28f223d0cb19a87b11bc91fe8ce450c51a52f616cdd71344a6b","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.4.0","bytestring-0.11.4.0","containers-0.6.5.1","data-array-byte-0.1.0.1-19afe996f4ddff3223a47504ed51afc89f5e0694562791e69a27a9cc24b1588a","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-f944fb96ddf3968b74669ff011af10699a1ad53f2605e1f2c5cccaa520c95e54","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-b8b104268fe2193cf0705b12d31ab633f8408aa17a120d695b584f4c96fe7d7a","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-bdd0af7321ae47d17c390fb23407fb78dddefd0c1c5b49450951aa648f1c0e0d","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-00fdc81d3faf92a360d7d5fb09dbdbf8059badd5804fbc233475acd8f8938054","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.4.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.4.0","bytestring-0.11.4.0","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-1efadc0efc23d362dfd242f77ddb53a0577d151a5e5ec98bb5fbb51317ce4be8","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.4.0","data-array-byte-0.1.0.1-19afe996f4ddff3223a47504ed51afc89f5e0694562791e69a27a9cc24b1588a","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.16.0","pkg-name":"process","pkg-version":"1.6.16.0","depends":["base-4.16.4.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-64a40e4c6fddbdba903cad1f5e5ab403dd367c26f0ddd1add672cdd6d81a6f02","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.4.0","bytestring-0.11.4.0","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-30a75f98727f2d9f7b9de56e43dd113516fbffc60c17373cee8309561b81e7b8"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-19ef30bd9d7b6fcbbe892dd93cb2d28f815b0be7b47977ee7d9816cfdcfcd09a","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-ea9c6151e5a3affa242ee8590b18355cc4cdeb870899139465792a4abda08abb","filepath-1.4.2.2","filepattern-0.1.3-88b6a53592df8db19f164cf8de0983223dfff65cbb03c310395452419a9813f4","hashable-1.4.2.0-219a6123a837b28f223d0cb19a87b11bc91fe8ce450c51a52f616cdd71344a6b","heaps-0.4-f944fb96ddf3968b74669ff011af10699a1ad53f2605e1f2c5cccaa520c95e54","js-dgtable-0.5.2-b8b104268fe2193cf0705b12d31ab633f8408aa17a120d695b584f4c96fe7d7a","js-flot-0.8.3-bdd0af7321ae47d17c390fb23407fb78dddefd0c1c5b49450951aa648f1c0e0d","js-jquery-3.3.1-00fdc81d3faf92a360d7d5fb09dbdbf8059badd5804fbc233475acd8f8938054","primitive-0.8.0.0-1efadc0efc23d362dfd242f77ddb53a0577d151a5e5ec98bb5fbb51317ce4be8","process-1.6.16.0","random-1.2.1.1-64a40e4c6fddbdba903cad1f5e5ab403dd367c26f0ddd1add672cdd6d81a6f02","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-591ed294851193b09a8296073425c72717ca11a2e00fd2b4f1657dcebb64420f","utf8-string-1.0.2-742296c0dfd2738ece0c8a465cb13192f7efda7fe7f44a9e6434aae216745eb9"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-5c28b3253611a7e66f56657b8abf418143b5cad9803d07c6ea9adcd168672d99","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-ea9c6151e5a3affa242ee8590b18355cc4cdeb870899139465792a4abda08abb","filepath-1.4.2.2","filepattern-0.1.3-88b6a53592df8db19f164cf8de0983223dfff65cbb03c310395452419a9813f4","hashable-1.4.2.0-219a6123a837b28f223d0cb19a87b11bc91fe8ce450c51a52f616cdd71344a6b","heaps-0.4-f944fb96ddf3968b74669ff011af10699a1ad53f2605e1f2c5cccaa520c95e54","js-dgtable-0.5.2-b8b104268fe2193cf0705b12d31ab633f8408aa17a120d695b584f4c96fe7d7a","js-flot-0.8.3-bdd0af7321ae47d17c390fb23407fb78dddefd0c1c5b49450951aa648f1c0e0d","js-jquery-3.3.1-00fdc81d3faf92a360d7d5fb09dbdbf8059badd5804fbc233475acd8f8938054","primitive-0.8.0.0-1efadc0efc23d362dfd242f77ddb53a0577d151a5e5ec98bb5fbb51317ce4be8","process-1.6.16.0","random-1.2.1.1-64a40e4c6fddbdba903cad1f5e5ab403dd367c26f0ddd1add672cdd6d81a6f02","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-591ed294851193b09a8296073425c72717ca11a2e00fd2b4f1657dcebb64420f","utf8-string-1.0.2-742296c0dfd2738ece0c8a465cb13192f7efda7fe7f44a9e6434aae216745eb9"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.6/shake-0.19.7-e-shake-5c28b3253611a7e66f56657b8abf418143b5cad9803d07c6ea9adcd168672d99/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-30a75f98727f2d9f7b9de56e43dd113516fbffc60c17373cee8309561b81e7b8","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.4.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.4.0","ghc-boot-th-9.2.6","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.4.0","bytestring-0.11.4.0","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-591ed294851193b09a8296073425c72717ca11a2e00fd2b4f1657dcebb64420f","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.4.0","deepseq-1.4.6.1","hashable-1.4.2.0-219a6123a837b28f223d0cb19a87b11bc91fe8ce450c51a52f616cdd71344a6b","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-742296c0dfd2738ece0c8a465cb13192f7efda7fe7f44a9e6434aae216745eb9","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.4.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.6","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.16.0","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-dbf4e30d0f90ef756fef51f4f1bf54e3607173d3481dd3c987da144134a63713","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.4.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-64a40e4c6fddbdba903cad1f5e5ab403dd367c26f0ddd1add672cdd6d81a6f02","splitmix-0.1.0.4-30a75f98727f2d9f7b9de56e43dd113516fbffc60c17373cee8309561b81e7b8","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"base-4.16.4.0","pkg-name":"base","pkg-version":"4.16.4.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-1d1fd135a0eeb482c8dce3fef355d02cb3d02c1f65c92e9c41e3dafc3d059abb","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.16.4.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.4.0","bytestring-0.11.4.0","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.4.0","pkg-name":"bytestring","pkg-version":"0.11.4.0","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-51184a0b8e3da6909a58729bce876ef04e7fdfb4f068846e068f1f28f5be93d0","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-5790921775b531d24a0bbc9d8248feabb687a3fa23f170a8244612b884725ba5","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.16.4.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"data-array-byte-0.1.0.1-19afe996f4ddff3223a47504ed51afc89f5e0694562791e69a27a9cc24b1588a","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.4.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.4.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.4.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-ea9c6151e5a3affa242ee8590b18355cc4cdeb870899139465792a4abda08abb","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.4.0","clock-0.8.3-51184a0b8e3da6909a58729bce876ef04e7fdfb4f068846e068f1f28f5be93d0","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.16.0","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.4.0"]},{"type":"configured","id":"filepattern-0.1.3-88b6a53592df8db19f164cf8de0983223dfff65cbb03c310395452419a9813f4","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.4.0","directory-1.3.6.2","extra-1.7.12-ea9c6151e5a3affa242ee8590b18355cc4cdeb870899139465792a4abda08abb","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.6","pkg-name":"ghc-boot-th","pkg-version":"9.2.6","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.6/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.6/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-dbf4e30d0f90ef756fef51f4f1bf54e3607173d3481dd3c987da144134a63713","base-4.16.4.0","base16-bytestring-1.0.2.0-1d1fd135a0eeb482c8dce3fef355d02cb3d02c1f65c92e9c41e3dafc3d059abb","bytestring-0.11.4.0","containers-0.6.5.1","cryptohash-sha256-0.11.102.1-5790921775b531d24a0bbc9d8248feabb687a3fa23f170a8244612b884725ba5","directory-1.3.6.2","extra-1.7.12-ea9c6151e5a3affa242ee8590b18355cc4cdeb870899139465792a4abda08abb","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-19ef30bd9d7b6fcbbe892dd93cb2d28f815b0be7b47977ee7d9816cfdcfcd09a","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-591ed294851193b09a8296073425c72717ca11a2e00fd2b4f1657dcebb64420f"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.6/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-219a6123a837b28f223d0cb19a87b11bc91fe8ce450c51a52f616cdd71344a6b","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.4.0","bytestring-0.11.4.0","containers-0.6.5.1","data-array-byte-0.1.0.1-19afe996f4ddff3223a47504ed51afc89f5e0694562791e69a27a9cc24b1588a","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-f944fb96ddf3968b74669ff011af10699a1ad53f2605e1f2c5cccaa520c95e54","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-b8b104268fe2193cf0705b12d31ab633f8408aa17a120d695b584f4c96fe7d7a","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-bdd0af7321ae47d17c390fb23407fb78dddefd0c1c5b49450951aa648f1c0e0d","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-00fdc81d3faf92a360d7d5fb09dbdbf8059badd5804fbc233475acd8f8938054","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.4.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.4.0","bytestring-0.11.4.0","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-1efadc0efc23d362dfd242f77ddb53a0577d151a5e5ec98bb5fbb51317ce4be8","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.4.0","data-array-byte-0.1.0.1-19afe996f4ddff3223a47504ed51afc89f5e0694562791e69a27a9cc24b1588a","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.16.0","pkg-name":"process","pkg-version":"1.6.16.0","depends":["base-4.16.4.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-64a40e4c6fddbdba903cad1f5e5ab403dd367c26f0ddd1add672cdd6d81a6f02","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.4.0","bytestring-0.11.4.0","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-30a75f98727f2d9f7b9de56e43dd113516fbffc60c17373cee8309561b81e7b8"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-19ef30bd9d7b6fcbbe892dd93cb2d28f815b0be7b47977ee7d9816cfdcfcd09a","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-ea9c6151e5a3affa242ee8590b18355cc4cdeb870899139465792a4abda08abb","filepath-1.4.2.2","filepattern-0.1.3-88b6a53592df8db19f164cf8de0983223dfff65cbb03c310395452419a9813f4","hashable-1.4.2.0-219a6123a837b28f223d0cb19a87b11bc91fe8ce450c51a52f616cdd71344a6b","heaps-0.4-f944fb96ddf3968b74669ff011af10699a1ad53f2605e1f2c5cccaa520c95e54","js-dgtable-0.5.2-b8b104268fe2193cf0705b12d31ab633f8408aa17a120d695b584f4c96fe7d7a","js-flot-0.8.3-bdd0af7321ae47d17c390fb23407fb78dddefd0c1c5b49450951aa648f1c0e0d","js-jquery-3.3.1-00fdc81d3faf92a360d7d5fb09dbdbf8059badd5804fbc233475acd8f8938054","primitive-0.8.0.0-1efadc0efc23d362dfd242f77ddb53a0577d151a5e5ec98bb5fbb51317ce4be8","process-1.6.16.0","random-1.2.1.1-64a40e4c6fddbdba903cad1f5e5ab403dd367c26f0ddd1add672cdd6d81a6f02","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-591ed294851193b09a8296073425c72717ca11a2e00fd2b4f1657dcebb64420f","utf8-string-1.0.2-742296c0dfd2738ece0c8a465cb13192f7efda7fe7f44a9e6434aae216745eb9"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-5c28b3253611a7e66f56657b8abf418143b5cad9803d07c6ea9adcd168672d99","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-ea9c6151e5a3affa242ee8590b18355cc4cdeb870899139465792a4abda08abb","filepath-1.4.2.2","filepattern-0.1.3-88b6a53592df8db19f164cf8de0983223dfff65cbb03c310395452419a9813f4","hashable-1.4.2.0-219a6123a837b28f223d0cb19a87b11bc91fe8ce450c51a52f616cdd71344a6b","heaps-0.4-f944fb96ddf3968b74669ff011af10699a1ad53f2605e1f2c5cccaa520c95e54","js-dgtable-0.5.2-b8b104268fe2193cf0705b12d31ab633f8408aa17a120d695b584f4c96fe7d7a","js-flot-0.8.3-bdd0af7321ae47d17c390fb23407fb78dddefd0c1c5b49450951aa648f1c0e0d","js-jquery-3.3.1-00fdc81d3faf92a360d7d5fb09dbdbf8059badd5804fbc233475acd8f8938054","primitive-0.8.0.0-1efadc0efc23d362dfd242f77ddb53a0577d151a5e5ec98bb5fbb51317ce4be8","process-1.6.16.0","random-1.2.1.1-64a40e4c6fddbdba903cad1f5e5ab403dd367c26f0ddd1add672cdd6d81a6f02","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-591ed294851193b09a8296073425c72717ca11a2e00fd2b4f1657dcebb64420f","utf8-string-1.0.2-742296c0dfd2738ece0c8a465cb13192f7efda7fe7f44a9e6434aae216745eb9"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.6/shake-0.19.7-e-shake-5c28b3253611a7e66f56657b8abf418143b5cad9803d07c6ea9adcd168672d99/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-30a75f98727f2d9f7b9de56e43dd113516fbffc60c17373cee8309561b81e7b8","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.4.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.4.0","ghc-boot-th-9.2.6","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.4.0","bytestring-0.11.4.0","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-591ed294851193b09a8296073425c72717ca11a2e00fd2b4f1657dcebb64420f","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.4.0","deepseq-1.4.6.1","hashable-1.4.2.0-219a6123a837b28f223d0cb19a87b11bc91fe8ce450c51a52f616cdd71344a6b","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-742296c0dfd2738ece0c8a465cb13192f7efda7fe7f44a9e6434aae216745eb9","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.4.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_2_7.json b/hadrian/bootstrap/plan-9_2_7.json
index 411e915cf934..1960ae623e98 100644
--- a/hadrian/bootstrap/plan-9_2_7.json
+++ b/hadrian/bootstrap/plan-9_2_7.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.7","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.16.0","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-c951510023ba6d593af2f7a96eeb7c5bb62f952a5f93c8d764bf7680e88c0b5e","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.4.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-14950f0d57c55eed8fd0701e27e87527c3c7ef42acca95164df8337d2d526ad3","splitmix-0.1.0.4-89a7e5aa79a8ff61d9f9e80b2e831f423d4e7ceacdf327f68373a5c56a67b0cd","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"base-4.16.4.0","pkg-name":"base","pkg-version":"4.16.4.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.4.0","bytestring-0.11.4.0","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.4.0","pkg-name":"bytestring","pkg-version":"0.11.4.0","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-559669949a0ebfcde3bd9a87feee5c5c9af26aa79c4b02d8942d537ecce4d246","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"configured","id":"data-array-byte-0.1.0.1-67b4cca141a1cc765879ccbd2e58b0d263d9d1b4b7edd293e7d4d51ffa918964","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.4.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.4.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.4.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-fcac65eb35e8efac34a88fafea896211a7d089740793764ffc583e77907f5b29","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.4.0","clock-0.8.3-559669949a0ebfcde3bd9a87feee5c5c9af26aa79c4b02d8942d537ecce4d246","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.16.0","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.4.0"]},{"type":"configured","id":"filepattern-0.1.3-7403bac6d3d46d3a1722c31aa27ff1e8b623ab3f70b34e18d950a8bf38663b27","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.4.0","directory-1.3.6.2","extra-1.7.12-fcac65eb35e8efac34a88fafea896211a7d089740793764ffc583e77907f5b29","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.7","pkg-name":"ghc-boot-th","pkg-version":"9.2.7","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.7/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.7/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-c951510023ba6d593af2f7a96eeb7c5bb62f952a5f93c8d764bf7680e88c0b5e","base-4.16.4.0","bytestring-0.11.4.0","containers-0.6.5.1","directory-1.3.6.2","extra-1.7.12-fcac65eb35e8efac34a88fafea896211a7d089740793764ffc583e77907f5b29","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-fac5227d98425aa87cd5a6ce00dd6ae4112068b311e19bf8a485b8c298a6f004","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-72d06bf7bf8b167e0dbff8d6944ba4e68be2d1f7242823c257b7a3de4095eed3"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.7/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-3bef0ce9e580df6e573b834c5b23a1f8eedaa657dfda94246c0f593232c2e716","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.4.0","bytestring-0.11.4.0","containers-0.6.5.1","data-array-byte-0.1.0.1-67b4cca141a1cc765879ccbd2e58b0d263d9d1b4b7edd293e7d4d51ffa918964","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-e7935e93b9407bb74983a8bb2aecf01a7163b6fa9c2097dcbfbd0206e3e2e3b5","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-af9dd55d69b2ea96e05137850ddd1e6e75e39509f4985edcc4ff8173e82e8dbe","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-0cc61e91af599f6c568189bb9ccf26c4ba3cc9f12f380a7a5cbbf31b24b249d3","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-3f64c9e994a6d8a58b2a43d809f08347b4132f3d51876b60a01bbd50b68a4bd1","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.4.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.4.0","bytestring-0.11.4.0","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-08331230b60fd51ba3238ae3eedb6753731dfba5fa7be73699e334be491db804","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.4.0","data-array-byte-0.1.0.1-67b4cca141a1cc765879ccbd2e58b0d263d9d1b4b7edd293e7d4d51ffa918964","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.16.0","pkg-name":"process","pkg-version":"1.6.16.0","depends":["base-4.16.4.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-14950f0d57c55eed8fd0701e27e87527c3c7ef42acca95164df8337d2d526ad3","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.4.0","bytestring-0.11.4.0","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-89a7e5aa79a8ff61d9f9e80b2e831f423d4e7ceacdf327f68373a5c56a67b0cd"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-e-shake-1224639973d1e3e16f2231e49d37310e61958fd3a162100370d11b7b9027faea","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-fcac65eb35e8efac34a88fafea896211a7d089740793764ffc583e77907f5b29","filepath-1.4.2.2","filepattern-0.1.3-7403bac6d3d46d3a1722c31aa27ff1e8b623ab3f70b34e18d950a8bf38663b27","hashable-1.4.2.0-3bef0ce9e580df6e573b834c5b23a1f8eedaa657dfda94246c0f593232c2e716","heaps-0.4-e7935e93b9407bb74983a8bb2aecf01a7163b6fa9c2097dcbfbd0206e3e2e3b5","js-dgtable-0.5.2-af9dd55d69b2ea96e05137850ddd1e6e75e39509f4985edcc4ff8173e82e8dbe","js-flot-0.8.3-0cc61e91af599f6c568189bb9ccf26c4ba3cc9f12f380a7a5cbbf31b24b249d3","js-jquery-3.3.1-3f64c9e994a6d8a58b2a43d809f08347b4132f3d51876b60a01bbd50b68a4bd1","primitive-0.8.0.0-08331230b60fd51ba3238ae3eedb6753731dfba5fa7be73699e334be491db804","process-1.6.16.0","random-1.2.1.1-14950f0d57c55eed8fd0701e27e87527c3c7ef42acca95164df8337d2d526ad3","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-72d06bf7bf8b167e0dbff8d6944ba4e68be2d1f7242823c257b7a3de4095eed3","utf8-string-1.0.2-9298101b281a7775960563b399d1469d84b96ca00e57f02ad0de27a63b6960fb"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.7/shake-0.19.7-e-shake-1224639973d1e3e16f2231e49d37310e61958fd3a162100370d11b7b9027faea/bin/shake"},{"type":"configured","id":"shake-0.19.7-fac5227d98425aa87cd5a6ce00dd6ae4112068b311e19bf8a485b8c298a6f004","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-fcac65eb35e8efac34a88fafea896211a7d089740793764ffc583e77907f5b29","filepath-1.4.2.2","filepattern-0.1.3-7403bac6d3d46d3a1722c31aa27ff1e8b623ab3f70b34e18d950a8bf38663b27","hashable-1.4.2.0-3bef0ce9e580df6e573b834c5b23a1f8eedaa657dfda94246c0f593232c2e716","heaps-0.4-e7935e93b9407bb74983a8bb2aecf01a7163b6fa9c2097dcbfbd0206e3e2e3b5","js-dgtable-0.5.2-af9dd55d69b2ea96e05137850ddd1e6e75e39509f4985edcc4ff8173e82e8dbe","js-flot-0.8.3-0cc61e91af599f6c568189bb9ccf26c4ba3cc9f12f380a7a5cbbf31b24b249d3","js-jquery-3.3.1-3f64c9e994a6d8a58b2a43d809f08347b4132f3d51876b60a01bbd50b68a4bd1","primitive-0.8.0.0-08331230b60fd51ba3238ae3eedb6753731dfba5fa7be73699e334be491db804","process-1.6.16.0","random-1.2.1.1-14950f0d57c55eed8fd0701e27e87527c3c7ef42acca95164df8337d2d526ad3","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-72d06bf7bf8b167e0dbff8d6944ba4e68be2d1f7242823c257b7a3de4095eed3","utf8-string-1.0.2-9298101b281a7775960563b399d1469d84b96ca00e57f02ad0de27a63b6960fb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"splitmix-0.1.0.4-89a7e5aa79a8ff61d9f9e80b2e831f423d4e7ceacdf327f68373a5c56a67b0cd","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.4.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.4.0","ghc-boot-th-9.2.7","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.4.0","bytestring-0.11.4.0","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-72d06bf7bf8b167e0dbff8d6944ba4e68be2d1f7242823c257b7a3de4095eed3","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.4.0","deepseq-1.4.6.1","hashable-1.4.2.0-3bef0ce9e580df6e573b834c5b23a1f8eedaa657dfda94246c0f593232c2e716","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-9298101b281a7775960563b399d1469d84b96ca00e57f02ad0de27a63b6960fb","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.4.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.2.7","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.6.3.0","pkg-name":"Cabal","pkg-version":"3.6.3.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","containers-0.6.5.1","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.16.0","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"QuickCheck-2.14.2-c951510023ba6d593af2f7a96eeb7c5bb62f952a5f93c8d764bf7680e88c0b5e","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.16.4.0","containers-0.6.5.1","deepseq-1.4.6.1","random-1.2.1.1-14950f0d57c55eed8fd0701e27e87527c3c7ef42acca95164df8337d2d526ad3","splitmix-0.1.0.4-89a7e5aa79a8ff61d9f9e80b2e831f423d4e7ceacdf327f68373a5c56a67b0cd","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"base-4.16.4.0","pkg-name":"base","pkg-version":"4.16.4.0","depends":["ghc-bignum-1.2","ghc-prim-0.8.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-763dd3f7e62ff68246699e004f5359ed58546f0202050790cc9596e8cc8080a7","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.16.4.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.0","pkg-name":"binary","pkg-version":"0.8.9.0","depends":["array-0.5.4.0","base-4.16.4.0","bytestring-0.11.4.0","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.11.4.0","pkg-name":"bytestring","pkg-version":"0.11.4.0","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"configured","id":"clock-0.8.3-559669949a0ebfcde3bd9a87feee5c5c9af26aa79c4b02d8942d537ecce4d246","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-65526283caa2c426e2183837dd7dfa5576bfb29febc30540405f7ec15655662d","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.16.4.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"data-array-byte-0.1.0.1-67b4cca141a1cc765879ccbd2e58b0d263d9d1b4b7edd293e7d4d51ffa918964","pkg-name":"data-array-byte","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada","pkg-src-sha256":"1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600","depends":["base-4.16.4.0","deepseq-1.4.6.1","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.6.1","pkg-name":"deepseq","pkg-version":"1.4.6.1","depends":["array-0.5.4.0","base-4.16.4.0"]},{"type":"pre-existing","id":"directory-1.3.6.2","pkg-name":"directory","pkg-version":"1.3.6.2","depends":["base-4.16.4.0","filepath-1.4.2.2","time-1.11.1.1","unix-2.7.2.2"]},{"type":"configured","id":"extra-1.7.12-fcac65eb35e8efac34a88fafea896211a7d089740793764ffc583e77907f5b29","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.16.4.0","clock-0.8.3-559669949a0ebfcde3bd9a87feee5c5c9af26aa79c4b02d8942d537ecce4d246","directory-1.3.6.2","filepath-1.4.2.2","process-1.6.16.0","time-1.11.1.1","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.16.4.0"]},{"type":"configured","id":"filepattern-0.1.3-7403bac6d3d46d3a1722c31aa27ff1e8b623ab3f70b34e18d950a8bf38663b27","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.16.4.0","directory-1.3.6.2","extra-1.7.12-fcac65eb35e8efac34a88fafea896211a7d089740793764ffc583e77907f5b29","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.2","pkg-name":"ghc-bignum","pkg-version":"1.2","depends":["ghc-prim-0.8.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.2.7","pkg-name":"ghc-boot-th","pkg-version":"9.2.7","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"ghc-prim-0.8.0","pkg-name":"ghc-prim","pkg-version":"0.8.0","depends":["rts"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.7/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.7/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.6.3.0","QuickCheck-2.14.2-c951510023ba6d593af2f7a96eeb7c5bb62f952a5f93c8d764bf7680e88c0b5e","base-4.16.4.0","base16-bytestring-1.0.2.0-763dd3f7e62ff68246699e004f5359ed58546f0202050790cc9596e8cc8080a7","bytestring-0.11.4.0","containers-0.6.5.1","cryptohash-sha256-0.11.102.1-65526283caa2c426e2183837dd7dfa5576bfb29febc30540405f7ec15655662d","directory-1.3.6.2","extra-1.7.12-fcac65eb35e8efac34a88fafea896211a7d089740793764ffc583e77907f5b29","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-fac5227d98425aa87cd5a6ce00dd6ae4112068b311e19bf8a485b8c298a6f004","text-1.2.5.0","time-1.11.1.1","transformers-0.5.6.2","unordered-containers-0.2.19.1-72d06bf7bf8b167e0dbff8d6944ba4e68be2d1f7242823c257b7a3de4095eed3"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.2.7/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-3bef0ce9e580df6e573b834c5b23a1f8eedaa657dfda94246c0f593232c2e716","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.16.4.0","bytestring-0.11.4.0","containers-0.6.5.1","data-array-byte-0.1.0.1-67b4cca141a1cc765879ccbd2e58b0d263d9d1b4b7edd293e7d4d51ffa918964","deepseq-1.4.6.1","filepath-1.4.2.2","ghc-bignum-1.2","ghc-prim-0.8.0","text-1.2.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-e7935e93b9407bb74983a8bb2aecf01a7163b6fa9c2097dcbfbd0206e3e2e3b5","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-af9dd55d69b2ea96e05137850ddd1e6e75e39509f4985edcc4ff8173e82e8dbe","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-0cc61e91af599f6c568189bb9ccf26c4ba3cc9f12f380a7a5cbbf31b24b249d3","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-3f64c9e994a6d8a58b2a43d809f08347b4132f3d51876b60a01bbd50b68a4bd1","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.16.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.16.4.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.16.4.0","bytestring-0.11.4.0","mtl-2.2.2","text-1.2.5.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.16.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0"]},{"type":"configured","id":"primitive-0.8.0.0-08331230b60fd51ba3238ae3eedb6753731dfba5fa7be73699e334be491db804","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.16.4.0","data-array-byte-0.1.0.1-67b4cca141a1cc765879ccbd2e58b0d263d9d1b4b7edd293e7d4d51ffa918964","deepseq-1.4.6.1","template-haskell-2.18.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.16.0","pkg-name":"process","pkg-version":"1.6.16.0","depends":["base-4.16.4.0","deepseq-1.4.6.1","directory-1.3.6.2","filepath-1.4.2.2","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1.1-14950f0d57c55eed8fd0701e27e87527c3c7ef42acca95164df8337d2d526ad3","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.16.4.0","bytestring-0.11.4.0","deepseq-1.4.6.1","mtl-2.2.2","splitmix-0.1.0.4-89a7e5aa79a8ff61d9f9e80b2e831f423d4e7ceacdf327f68373a5c56a67b0cd"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-e-shake-1224639973d1e3e16f2231e49d37310e61958fd3a162100370d11b7b9027faea","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-fcac65eb35e8efac34a88fafea896211a7d089740793764ffc583e77907f5b29","filepath-1.4.2.2","filepattern-0.1.3-7403bac6d3d46d3a1722c31aa27ff1e8b623ab3f70b34e18d950a8bf38663b27","hashable-1.4.2.0-3bef0ce9e580df6e573b834c5b23a1f8eedaa657dfda94246c0f593232c2e716","heaps-0.4-e7935e93b9407bb74983a8bb2aecf01a7163b6fa9c2097dcbfbd0206e3e2e3b5","js-dgtable-0.5.2-af9dd55d69b2ea96e05137850ddd1e6e75e39509f4985edcc4ff8173e82e8dbe","js-flot-0.8.3-0cc61e91af599f6c568189bb9ccf26c4ba3cc9f12f380a7a5cbbf31b24b249d3","js-jquery-3.3.1-3f64c9e994a6d8a58b2a43d809f08347b4132f3d51876b60a01bbd50b68a4bd1","primitive-0.8.0.0-08331230b60fd51ba3238ae3eedb6753731dfba5fa7be73699e334be491db804","process-1.6.16.0","random-1.2.1.1-14950f0d57c55eed8fd0701e27e87527c3c7ef42acca95164df8337d2d526ad3","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-72d06bf7bf8b167e0dbff8d6944ba4e68be2d1f7242823c257b7a3de4095eed3","utf8-string-1.0.2-9298101b281a7775960563b399d1469d84b96ca00e57f02ad0de27a63b6960fb"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.2.7/shake-0.19.7-e-shake-1224639973d1e3e16f2231e49d37310e61958fd3a162100370d11b7b9027faea/bin/shake"},{"type":"configured","id":"shake-0.19.7-fac5227d98425aa87cd5a6ce00dd6ae4112068b311e19bf8a485b8c298a6f004","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","directory-1.3.6.2","extra-1.7.12-fcac65eb35e8efac34a88fafea896211a7d089740793764ffc583e77907f5b29","filepath-1.4.2.2","filepattern-0.1.3-7403bac6d3d46d3a1722c31aa27ff1e8b623ab3f70b34e18d950a8bf38663b27","hashable-1.4.2.0-3bef0ce9e580df6e573b834c5b23a1f8eedaa657dfda94246c0f593232c2e716","heaps-0.4-e7935e93b9407bb74983a8bb2aecf01a7163b6fa9c2097dcbfbd0206e3e2e3b5","js-dgtable-0.5.2-af9dd55d69b2ea96e05137850ddd1e6e75e39509f4985edcc4ff8173e82e8dbe","js-flot-0.8.3-0cc61e91af599f6c568189bb9ccf26c4ba3cc9f12f380a7a5cbbf31b24b249d3","js-jquery-3.3.1-3f64c9e994a6d8a58b2a43d809f08347b4132f3d51876b60a01bbd50b68a4bd1","primitive-0.8.0.0-08331230b60fd51ba3238ae3eedb6753731dfba5fa7be73699e334be491db804","process-1.6.16.0","random-1.2.1.1-14950f0d57c55eed8fd0701e27e87527c3c7ef42acca95164df8337d2d526ad3","time-1.11.1.1","transformers-0.5.6.2","unix-2.7.2.2","unordered-containers-0.2.19.1-72d06bf7bf8b167e0dbff8d6944ba4e68be2d1f7242823c257b7a3de4095eed3","utf8-string-1.0.2-9298101b281a7775960563b399d1469d84b96ca00e57f02ad0de27a63b6960fb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"splitmix-0.1.0.4-89a7e5aa79a8ff61d9f9e80b2e831f423d4e7ceacdf327f68373a5c56a67b0cd","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.16.4.0","deepseq-1.4.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.18.0.0","pkg-name":"template-haskell","pkg-version":"2.18.0.0","depends":["base-4.16.4.0","ghc-boot-th-9.2.7","ghc-prim-0.8.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.5.0","pkg-name":"text","pkg-version":"1.2.5.0","depends":["array-0.5.4.0","base-4.16.4.0","binary-0.8.9.0","bytestring-0.11.4.0","deepseq-1.4.6.1","ghc-prim-0.8.0","template-haskell-2.18.0.0"]},{"type":"pre-existing","id":"time-1.11.1.1","pkg-name":"time","pkg-version":"1.11.1.1","depends":["base-4.16.4.0","deepseq-1.4.6.1"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.16.4.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.16.4.0","bytestring-0.11.4.0","time-1.11.1.1"]},{"type":"configured","id":"unordered-containers-0.2.19.1-72d06bf7bf8b167e0dbff8d6944ba4e68be2d1f7242823c257b7a3de4095eed3","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.16.4.0","deepseq-1.4.6.1","hashable-1.4.2.0-3bef0ce9e580df6e573b834c5b23a1f8eedaa657dfda94246c0f593232c2e716","template-haskell-2.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-9298101b281a7775960563b399d1469d84b96ca00e57f02ad0de27a63b6960fb","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.16.4.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_4_1.json b/hadrian/bootstrap/plan-9_4_1.json
index b4c39fe854ad..02d08ecbd479 100644
--- a/hadrian/bootstrap/plan-9_4_1.json
+++ b/hadrian/bootstrap/plan-9_4_1.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.4.1","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.8.1.0","pkg-name":"Cabal","pkg-version":"3.8.1.0","depends":["Cabal-syntax-3.8.1.0","array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.15.0","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"pre-existing","id":"Cabal-syntax-3.8.1.0","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"configured","id":"QuickCheck-2.14.2-44aec2227e27eddf9f77d5018302a530349bc6f239b48a12da6950ed5bbf27c6","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.17.0.0","containers-0.6.6","deepseq-1.4.8.0","random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12","splitmix-0.1.0.4-db906bed6d86598d897c981156f45a8b2165bae1ccdb86e3aa835176a54e17bd","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"base-4.17.0.0","pkg-name":"base","pkg-version":"4.17.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.9.0","rts-1.0.2"]},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"clock-0.8.3-e675cadb63ad5e90c1cabbe27850d99000d5db86a5062c884ce4164f4a7378d1","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.6","pkg-name":"containers","pkg-version":"0.6.6","depends":["array-0.5.4.0","base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"deepseq-1.4.8.0","pkg-name":"deepseq","pkg-version":"1.4.8.0","depends":["array-0.5.4.0","base-4.17.0.0","ghc-prim-0.9.0"]},{"type":"pre-existing","id":"directory-1.3.7.1","pkg-name":"directory","pkg-version":"1.3.7.1","depends":["base-4.17.0.0","filepath-1.4.2.2","time-1.12.2","unix-2.7.3"]},{"type":"configured","id":"extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.17.0.0","clock-0.8.3-e675cadb63ad5e90c1cabbe27850d99000d5db86a5062c884ce4164f4a7378d1","directory-1.3.7.1","filepath-1.4.2.2","process-1.6.15.0","time-1.12.2","unix-2.7.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.17.0.0"]},{"type":"configured","id":"filepattern-0.1.3-002c7183c9aab179816c0672de9fddf0aee1ca80b60510ac8dbe97b45f3925c2","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.17.0.0","directory-1.3.7.1","extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.9.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.4.1","pkg-name":"ghc-boot-th","pkg-version":"9.4.1","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.9.0","pkg-name":"ghc-prim","pkg-version":"0.9.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0","QuickCheck-2.14.2-44aec2227e27eddf9f77d5018302a530349bc6f239b48a12da6950ed5bbf27c6","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","directory-1.3.7.1","extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-d2fc1dfc6d25adb31e2ca3c13239acbcbadee6c43f4b302967b77dda678899a4","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","filepath-1.4.2.2","ghc-bignum-1.3","ghc-prim-0.9.0","text-2.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-d1d68f7c84e754e5527bfaaf57fe936b7f3b2b13e01ac163bc9a145b2c17fb89","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-7f3616a8d595fe6976ea0cb3b170d51977ab2192394f2cced30c728a1d74f43f","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-de26baf8fa0904dfce2de4ccf078d2c29c945ae9f648843adff7b2ba89aaf21e","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-8a9c7917a9dfc2db75c2a6e4ccbf90329439c9eafb99fef5ab5eaf3d84b7367a","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.17.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.17.0.0","bytestring-0.11.3.1","mtl-2.2.2","text-2.0.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0"]},{"type":"configured","id":"primitive-0.8.0.0-a07f2cbfdf3613880c3e9948bf6f846af5c8ceff5ece4c0866ecec26372c90ef","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.15.0","pkg-name":"process","pkg-version":"1.6.15.0","depends":["base-4.17.0.0","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","unix-2.7.3"]},{"type":"configured","id":"random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.17.0.0","bytestring-0.11.3.1","deepseq-1.4.8.0","mtl-2.2.2","splitmix-0.1.0.4-db906bed6d86598d897c981156f45a8b2165bae1ccdb86e3aa835176a54e17bd"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-d2fc1dfc6d25adb31e2ca3c13239acbcbadee6c43f4b302967b77dda678899a4","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd","filepath-1.4.2.2","filepattern-0.1.3-002c7183c9aab179816c0672de9fddf0aee1ca80b60510ac8dbe97b45f3925c2","hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd","heaps-0.4-d1d68f7c84e754e5527bfaaf57fe936b7f3b2b13e01ac163bc9a145b2c17fb89","js-dgtable-0.5.2-7f3616a8d595fe6976ea0cb3b170d51977ab2192394f2cced30c728a1d74f43f","js-flot-0.8.3-de26baf8fa0904dfce2de4ccf078d2c29c945ae9f648843adff7b2ba89aaf21e","js-jquery-3.3.1-8a9c7917a9dfc2db75c2a6e4ccbf90329439c9eafb99fef5ab5eaf3d84b7367a","primitive-0.8.0.0-a07f2cbfdf3613880c3e9948bf6f846af5c8ceff5ece4c0866ecec26372c90ef","process-1.6.15.0","random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84","utf8-string-1.0.2-8b361b9c94c1703201cb4bc630efe378dcce466e835f8da6034b19636a724526"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-62b640d9e5423cbe62368e849a8bc6542054769417e601f88f487fca539d0d6a","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd","filepath-1.4.2.2","filepattern-0.1.3-002c7183c9aab179816c0672de9fddf0aee1ca80b60510ac8dbe97b45f3925c2","hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd","heaps-0.4-d1d68f7c84e754e5527bfaaf57fe936b7f3b2b13e01ac163bc9a145b2c17fb89","js-dgtable-0.5.2-7f3616a8d595fe6976ea0cb3b170d51977ab2192394f2cced30c728a1d74f43f","js-flot-0.8.3-de26baf8fa0904dfce2de4ccf078d2c29c945ae9f648843adff7b2ba89aaf21e","js-jquery-3.3.1-8a9c7917a9dfc2db75c2a6e4ccbf90329439c9eafb99fef5ab5eaf3d84b7367a","primitive-0.8.0.0-a07f2cbfdf3613880c3e9948bf6f846af5c8ceff5ece4c0866ecec26372c90ef","process-1.6.15.0","random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84","utf8-string-1.0.2-8b361b9c94c1703201cb4bc630efe378dcce466e835f8da6034b19636a724526"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.4.1/shake-0.19.7-e-shake-62b640d9e5423cbe62368e849a8bc6542054769417e601f88f487fca539d0d6a/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-db906bed6d86598d897c981156f45a8b2165bae1ccdb86e3aa835176a54e17bd","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.17.0.0","deepseq-1.4.8.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.19.0.0","pkg-name":"template-haskell","pkg-version":"2.19.0.0","depends":["base-4.17.0.0","ghc-boot-th-9.4.1","ghc-prim-0.9.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.1","pkg-name":"text","pkg-version":"2.0.1","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.17.0.0","deepseq-1.4.8.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"unix-2.7.3","pkg-name":"unix","pkg-version":"2.7.3","depends":["base-4.17.0.0","bytestring-0.11.3.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.17.0.0","deepseq-1.4.8.0","hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd","template-haskell-2.19.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-8b361b9c94c1703201cb4bc630efe378dcce466e835f8da6034b19636a724526","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.4.1","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.8.1.0","pkg-name":"Cabal","pkg-version":"3.8.1.0","depends":["Cabal-syntax-3.8.1.0","array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.15.0","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"pre-existing","id":"Cabal-syntax-3.8.1.0","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"configured","id":"QuickCheck-2.14.2-44aec2227e27eddf9f77d5018302a530349bc6f239b48a12da6950ed5bbf27c6","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.17.0.0","containers-0.6.6","deepseq-1.4.8.0","random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12","splitmix-0.1.0.4-db906bed6d86598d897c981156f45a8b2165bae1ccdb86e3aa835176a54e17bd","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"base-4.17.0.0","pkg-name":"base","pkg-version":"4.17.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.9.0","rts-1.0.2"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-1f4d5cfa7c972d59268ad23a58928ca71cb3b0b4d99ecfb3365582489f8d5c7a","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"clock-0.8.3-e675cadb63ad5e90c1cabbe27850d99000d5db86a5062c884ce4164f4a7378d1","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.6","pkg-name":"containers","pkg-version":"0.6.6","depends":["array-0.5.4.0","base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-803ebe82e336a8fd4af224a090f5332c52868d6c62c4e5b0fb177db5fa3b6e39","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.8.0","pkg-name":"deepseq","pkg-version":"1.4.8.0","depends":["array-0.5.4.0","base-4.17.0.0","ghc-prim-0.9.0"]},{"type":"pre-existing","id":"directory-1.3.7.1","pkg-name":"directory","pkg-version":"1.3.7.1","depends":["base-4.17.0.0","filepath-1.4.2.2","time-1.12.2","unix-2.7.3"]},{"type":"configured","id":"extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.17.0.0","clock-0.8.3-e675cadb63ad5e90c1cabbe27850d99000d5db86a5062c884ce4164f4a7378d1","directory-1.3.7.1","filepath-1.4.2.2","process-1.6.15.0","time-1.12.2","unix-2.7.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.17.0.0"]},{"type":"configured","id":"filepattern-0.1.3-002c7183c9aab179816c0672de9fddf0aee1ca80b60510ac8dbe97b45f3925c2","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.17.0.0","directory-1.3.7.1","extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.9.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.4.1","pkg-name":"ghc-boot-th","pkg-version":"9.4.1","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.9.0","pkg-name":"ghc-prim","pkg-version":"0.9.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0","QuickCheck-2.14.2-44aec2227e27eddf9f77d5018302a530349bc6f239b48a12da6950ed5bbf27c6","base-4.17.0.0","base16-bytestring-1.0.2.0-1f4d5cfa7c972d59268ad23a58928ca71cb3b0b4d99ecfb3365582489f8d5c7a","bytestring-0.11.3.1","containers-0.6.6","cryptohash-sha256-0.11.102.1-803ebe82e336a8fd4af224a090f5332c52868d6c62c4e5b0fb177db5fa3b6e39","directory-1.3.7.1","extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-d2fc1dfc6d25adb31e2ca3c13239acbcbadee6c43f4b302967b77dda678899a4","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","filepath-1.4.2.2","ghc-bignum-1.3","ghc-prim-0.9.0","text-2.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-d1d68f7c84e754e5527bfaaf57fe936b7f3b2b13e01ac163bc9a145b2c17fb89","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-7f3616a8d595fe6976ea0cb3b170d51977ab2192394f2cced30c728a1d74f43f","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-de26baf8fa0904dfce2de4ccf078d2c29c945ae9f648843adff7b2ba89aaf21e","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-8a9c7917a9dfc2db75c2a6e4ccbf90329439c9eafb99fef5ab5eaf3d84b7367a","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.17.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.17.0.0","bytestring-0.11.3.1","mtl-2.2.2","text-2.0.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0"]},{"type":"configured","id":"primitive-0.8.0.0-a07f2cbfdf3613880c3e9948bf6f846af5c8ceff5ece4c0866ecec26372c90ef","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.15.0","pkg-name":"process","pkg-version":"1.6.15.0","depends":["base-4.17.0.0","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","unix-2.7.3"]},{"type":"configured","id":"random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.17.0.0","bytestring-0.11.3.1","deepseq-1.4.8.0","mtl-2.2.2","splitmix-0.1.0.4-db906bed6d86598d897c981156f45a8b2165bae1ccdb86e3aa835176a54e17bd"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-d2fc1dfc6d25adb31e2ca3c13239acbcbadee6c43f4b302967b77dda678899a4","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd","filepath-1.4.2.2","filepattern-0.1.3-002c7183c9aab179816c0672de9fddf0aee1ca80b60510ac8dbe97b45f3925c2","hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd","heaps-0.4-d1d68f7c84e754e5527bfaaf57fe936b7f3b2b13e01ac163bc9a145b2c17fb89","js-dgtable-0.5.2-7f3616a8d595fe6976ea0cb3b170d51977ab2192394f2cced30c728a1d74f43f","js-flot-0.8.3-de26baf8fa0904dfce2de4ccf078d2c29c945ae9f648843adff7b2ba89aaf21e","js-jquery-3.3.1-8a9c7917a9dfc2db75c2a6e4ccbf90329439c9eafb99fef5ab5eaf3d84b7367a","primitive-0.8.0.0-a07f2cbfdf3613880c3e9948bf6f846af5c8ceff5ece4c0866ecec26372c90ef","process-1.6.15.0","random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84","utf8-string-1.0.2-8b361b9c94c1703201cb4bc630efe378dcce466e835f8da6034b19636a724526"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-62b640d9e5423cbe62368e849a8bc6542054769417e601f88f487fca539d0d6a","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-ba1ae6da8d332db535ac32bf5d1361840bf9c054813d92fba0233f72ee4ed8dd","filepath-1.4.2.2","filepattern-0.1.3-002c7183c9aab179816c0672de9fddf0aee1ca80b60510ac8dbe97b45f3925c2","hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd","heaps-0.4-d1d68f7c84e754e5527bfaaf57fe936b7f3b2b13e01ac163bc9a145b2c17fb89","js-dgtable-0.5.2-7f3616a8d595fe6976ea0cb3b170d51977ab2192394f2cced30c728a1d74f43f","js-flot-0.8.3-de26baf8fa0904dfce2de4ccf078d2c29c945ae9f648843adff7b2ba89aaf21e","js-jquery-3.3.1-8a9c7917a9dfc2db75c2a6e4ccbf90329439c9eafb99fef5ab5eaf3d84b7367a","primitive-0.8.0.0-a07f2cbfdf3613880c3e9948bf6f846af5c8ceff5ece4c0866ecec26372c90ef","process-1.6.15.0","random-1.2.1.1-106248b11573776ddf460b1b18f07785d6ec796405301f531b1205ec94df3e12","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84","utf8-string-1.0.2-8b361b9c94c1703201cb4bc630efe378dcce466e835f8da6034b19636a724526"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.4.1/shake-0.19.7-e-shake-62b640d9e5423cbe62368e849a8bc6542054769417e601f88f487fca539d0d6a/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-db906bed6d86598d897c981156f45a8b2165bae1ccdb86e3aa835176a54e17bd","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.17.0.0","deepseq-1.4.8.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.19.0.0","pkg-name":"template-haskell","pkg-version":"2.19.0.0","depends":["base-4.17.0.0","ghc-boot-th-9.4.1","ghc-prim-0.9.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.1","pkg-name":"text","pkg-version":"2.0.1","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.17.0.0","deepseq-1.4.8.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"unix-2.7.3","pkg-name":"unix","pkg-version":"2.7.3","depends":["base-4.17.0.0","bytestring-0.11.3.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-fd0580db377f6ca69761393a9da6a0c1b74bc039be975b6937b87adeb0d66d84","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.17.0.0","deepseq-1.4.8.0","hashable-1.4.2.0-1363e3fa0889cf99817775f4b90b379663b405a4c6d8cb3f2d1b34b2ba9038fd","template-haskell-2.19.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-8b361b9c94c1703201cb4bc630efe378dcce466e835f8da6034b19636a724526","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_4_2.json b/hadrian/bootstrap/plan-9_4_2.json
index 06d6794550c1..b79b3ba4b6ad 100644
--- a/hadrian/bootstrap/plan-9_4_2.json
+++ b/hadrian/bootstrap/plan-9_4_2.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.4.2","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.8.1.0","pkg-name":"Cabal","pkg-version":"3.8.1.0","depends":["Cabal-syntax-3.8.1.0","array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.15.0","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"pre-existing","id":"Cabal-syntax-3.8.1.0","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"configured","id":"QuickCheck-2.14.2-3dda78ffb9c0183413979d4bca4a88aa2dfb8fb922ef115a947bd1bf3458add0","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.17.0.0","containers-0.6.6","deepseq-1.4.8.0","random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948","splitmix-0.1.0.4-038952c2592bf9a18f363fc90951b486b79df30ad213b8f2b39e885e464e4944","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"base-4.17.0.0","pkg-name":"base","pkg-version":"4.17.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.9.0","rts-1.0.2"]},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"clock-0.8.3-0129568eebbfa961d0c38a3dcb8b8cd195f8a921fe59eb9ceddfc368d87f7b74","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.6","pkg-name":"containers","pkg-version":"0.6.6","depends":["array-0.5.4.0","base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"deepseq-1.4.8.0","pkg-name":"deepseq","pkg-version":"1.4.8.0","depends":["array-0.5.4.0","base-4.17.0.0","ghc-prim-0.9.0"]},{"type":"pre-existing","id":"directory-1.3.7.1","pkg-name":"directory","pkg-version":"1.3.7.1","depends":["base-4.17.0.0","filepath-1.4.2.2","time-1.12.2","unix-2.7.3"]},{"type":"configured","id":"extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.17.0.0","clock-0.8.3-0129568eebbfa961d0c38a3dcb8b8cd195f8a921fe59eb9ceddfc368d87f7b74","directory-1.3.7.1","filepath-1.4.2.2","process-1.6.15.0","time-1.12.2","unix-2.7.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.17.0.0"]},{"type":"configured","id":"filepattern-0.1.3-08a9ec632f1ac6000bb77c2013c1110b63c20c3139ed08f95a22f36da4f3ae2d","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.17.0.0","directory-1.3.7.1","extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.9.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.4.2","pkg-name":"ghc-boot-th","pkg-version":"9.4.2","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.9.0","pkg-name":"ghc-prim","pkg-version":"0.9.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0","QuickCheck-2.14.2-3dda78ffb9c0183413979d4bca4a88aa2dfb8fb922ef115a947bd1bf3458add0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","directory-1.3.7.1","extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-e941cd8c6a2384d93b27d15bed9271abdfc1bd3584c51ce36cdfa5ebef75e2d1","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","filepath-1.4.2.2","ghc-bignum-1.3","ghc-prim-0.9.0","text-2.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-3f9ca831e2a710f80e5a253748a1aa605a7219f998fa88ce43b69c22d0075c73","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-f7a634b948774c98a2be281a9a2244964a18c3b15b559a34248b4d851e8efb1b","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-b34534f666396e8ad058c9e0cb79b8d2cfe4294fc870aa2daf758c66a4533545","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-4a51d1b0e66cd03e445290dde0449cd0ba22dd046bccc10876992c1527bc8a6f","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.17.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.17.0.0","bytestring-0.11.3.1","mtl-2.2.2","text-2.0.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0"]},{"type":"configured","id":"primitive-0.8.0.0-c149e96dd6c8e609c75b5c29aa28e8cd219c971a12e6e067d5b176788da134c7","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.15.0","pkg-name":"process","pkg-version":"1.6.15.0","depends":["base-4.17.0.0","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","unix-2.7.3"]},{"type":"configured","id":"random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.17.0.0","bytestring-0.11.3.1","deepseq-1.4.8.0","mtl-2.2.2","splitmix-0.1.0.4-038952c2592bf9a18f363fc90951b486b79df30ad213b8f2b39e885e464e4944"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-e-shake-93a6abbc9595b6d85ad9802cf629596ab2d5d3c72261d6dce269f07068d1b8aa","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d","filepath-1.4.2.2","filepattern-0.1.3-08a9ec632f1ac6000bb77c2013c1110b63c20c3139ed08f95a22f36da4f3ae2d","hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962","heaps-0.4-3f9ca831e2a710f80e5a253748a1aa605a7219f998fa88ce43b69c22d0075c73","js-dgtable-0.5.2-f7a634b948774c98a2be281a9a2244964a18c3b15b559a34248b4d851e8efb1b","js-flot-0.8.3-b34534f666396e8ad058c9e0cb79b8d2cfe4294fc870aa2daf758c66a4533545","js-jquery-3.3.1-4a51d1b0e66cd03e445290dde0449cd0ba22dd046bccc10876992c1527bc8a6f","primitive-0.8.0.0-c149e96dd6c8e609c75b5c29aa28e8cd219c971a12e6e067d5b176788da134c7","process-1.6.15.0","random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357","utf8-string-1.0.2-74175dc1969f6d60b6b78e0f9ae512859446f68011f9742d4519de87229b0554"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.4.2/shake-0.19.7-e-shake-93a6abbc9595b6d85ad9802cf629596ab2d5d3c72261d6dce269f07068d1b8aa/bin/shake"},{"type":"configured","id":"shake-0.19.7-e941cd8c6a2384d93b27d15bed9271abdfc1bd3584c51ce36cdfa5ebef75e2d1","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d","filepath-1.4.2.2","filepattern-0.1.3-08a9ec632f1ac6000bb77c2013c1110b63c20c3139ed08f95a22f36da4f3ae2d","hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962","heaps-0.4-3f9ca831e2a710f80e5a253748a1aa605a7219f998fa88ce43b69c22d0075c73","js-dgtable-0.5.2-f7a634b948774c98a2be281a9a2244964a18c3b15b559a34248b4d851e8efb1b","js-flot-0.8.3-b34534f666396e8ad058c9e0cb79b8d2cfe4294fc870aa2daf758c66a4533545","js-jquery-3.3.1-4a51d1b0e66cd03e445290dde0449cd0ba22dd046bccc10876992c1527bc8a6f","primitive-0.8.0.0-c149e96dd6c8e609c75b5c29aa28e8cd219c971a12e6e067d5b176788da134c7","process-1.6.15.0","random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357","utf8-string-1.0.2-74175dc1969f6d60b6b78e0f9ae512859446f68011f9742d4519de87229b0554"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"splitmix-0.1.0.4-038952c2592bf9a18f363fc90951b486b79df30ad213b8f2b39e885e464e4944","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.17.0.0","deepseq-1.4.8.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.19.0.0","pkg-name":"template-haskell","pkg-version":"2.19.0.0","depends":["base-4.17.0.0","ghc-boot-th-9.4.2","ghc-prim-0.9.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.1","pkg-name":"text","pkg-version":"2.0.1","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.17.0.0","deepseq-1.4.8.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"unix-2.7.3","pkg-name":"unix","pkg-version":"2.7.3","depends":["base-4.17.0.0","bytestring-0.11.3.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.17.0.0","deepseq-1.4.8.0","hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962","template-haskell-2.19.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-74175dc1969f6d60b6b78e0f9ae512859446f68011f9742d4519de87229b0554","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.4.2","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.8.1.0","pkg-name":"Cabal","pkg-version":"3.8.1.0","depends":["Cabal-syntax-3.8.1.0","array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.15.0","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"pre-existing","id":"Cabal-syntax-3.8.1.0","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"configured","id":"QuickCheck-2.14.2-3dda78ffb9c0183413979d4bca4a88aa2dfb8fb922ef115a947bd1bf3458add0","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.17.0.0","containers-0.6.6","deepseq-1.4.8.0","random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948","splitmix-0.1.0.4-038952c2592bf9a18f363fc90951b486b79df30ad213b8f2b39e885e464e4944","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"base-4.17.0.0","pkg-name":"base","pkg-version":"4.17.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.9.0","rts-1.0.2"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-8845b9b845268782664a9731259247bb8eb1e18dc03a39dadfe77b42101a894d","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"clock-0.8.3-0129568eebbfa961d0c38a3dcb8b8cd195f8a921fe59eb9ceddfc368d87f7b74","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.6","pkg-name":"containers","pkg-version":"0.6.6","depends":["array-0.5.4.0","base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-e0ecce2a2a105f81f515ad74e9fd132a406a856efa250f47178547d401b9ef87","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.8.0","pkg-name":"deepseq","pkg-version":"1.4.8.0","depends":["array-0.5.4.0","base-4.17.0.0","ghc-prim-0.9.0"]},{"type":"pre-existing","id":"directory-1.3.7.1","pkg-name":"directory","pkg-version":"1.3.7.1","depends":["base-4.17.0.0","filepath-1.4.2.2","time-1.12.2","unix-2.7.3"]},{"type":"configured","id":"extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.17.0.0","clock-0.8.3-0129568eebbfa961d0c38a3dcb8b8cd195f8a921fe59eb9ceddfc368d87f7b74","directory-1.3.7.1","filepath-1.4.2.2","process-1.6.15.0","time-1.12.2","unix-2.7.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.17.0.0"]},{"type":"configured","id":"filepattern-0.1.3-08a9ec632f1ac6000bb77c2013c1110b63c20c3139ed08f95a22f36da4f3ae2d","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.17.0.0","directory-1.3.7.1","extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.9.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.4.2","pkg-name":"ghc-boot-th","pkg-version":"9.4.2","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.9.0","pkg-name":"ghc-prim","pkg-version":"0.9.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0","QuickCheck-2.14.2-3dda78ffb9c0183413979d4bca4a88aa2dfb8fb922ef115a947bd1bf3458add0","base-4.17.0.0","base16-bytestring-1.0.2.0-8845b9b845268782664a9731259247bb8eb1e18dc03a39dadfe77b42101a894d","bytestring-0.11.3.1","containers-0.6.6","cryptohash-sha256-0.11.102.1-e0ecce2a2a105f81f515ad74e9fd132a406a856efa250f47178547d401b9ef87","directory-1.3.7.1","extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-e941cd8c6a2384d93b27d15bed9271abdfc1bd3584c51ce36cdfa5ebef75e2d1","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.2/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","filepath-1.4.2.2","ghc-bignum-1.3","ghc-prim-0.9.0","text-2.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-3f9ca831e2a710f80e5a253748a1aa605a7219f998fa88ce43b69c22d0075c73","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-f7a634b948774c98a2be281a9a2244964a18c3b15b559a34248b4d851e8efb1b","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-b34534f666396e8ad058c9e0cb79b8d2cfe4294fc870aa2daf758c66a4533545","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-4a51d1b0e66cd03e445290dde0449cd0ba22dd046bccc10876992c1527bc8a6f","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.17.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.17.0.0","bytestring-0.11.3.1","mtl-2.2.2","text-2.0.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0"]},{"type":"configured","id":"primitive-0.8.0.0-c149e96dd6c8e609c75b5c29aa28e8cd219c971a12e6e067d5b176788da134c7","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.15.0","pkg-name":"process","pkg-version":"1.6.15.0","depends":["base-4.17.0.0","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","unix-2.7.3"]},{"type":"configured","id":"random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.17.0.0","bytestring-0.11.3.1","deepseq-1.4.8.0","mtl-2.2.2","splitmix-0.1.0.4-038952c2592bf9a18f363fc90951b486b79df30ad213b8f2b39e885e464e4944"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-e-shake-93a6abbc9595b6d85ad9802cf629596ab2d5d3c72261d6dce269f07068d1b8aa","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d","filepath-1.4.2.2","filepattern-0.1.3-08a9ec632f1ac6000bb77c2013c1110b63c20c3139ed08f95a22f36da4f3ae2d","hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962","heaps-0.4-3f9ca831e2a710f80e5a253748a1aa605a7219f998fa88ce43b69c22d0075c73","js-dgtable-0.5.2-f7a634b948774c98a2be281a9a2244964a18c3b15b559a34248b4d851e8efb1b","js-flot-0.8.3-b34534f666396e8ad058c9e0cb79b8d2cfe4294fc870aa2daf758c66a4533545","js-jquery-3.3.1-4a51d1b0e66cd03e445290dde0449cd0ba22dd046bccc10876992c1527bc8a6f","primitive-0.8.0.0-c149e96dd6c8e609c75b5c29aa28e8cd219c971a12e6e067d5b176788da134c7","process-1.6.15.0","random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357","utf8-string-1.0.2-74175dc1969f6d60b6b78e0f9ae512859446f68011f9742d4519de87229b0554"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.4.2/shake-0.19.7-e-shake-93a6abbc9595b6d85ad9802cf629596ab2d5d3c72261d6dce269f07068d1b8aa/bin/shake"},{"type":"configured","id":"shake-0.19.7-e941cd8c6a2384d93b27d15bed9271abdfc1bd3584c51ce36cdfa5ebef75e2d1","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-f9efaf6c8d3c0aff6a2d5790a849d70549163752fac9725bf7139c733763d52d","filepath-1.4.2.2","filepattern-0.1.3-08a9ec632f1ac6000bb77c2013c1110b63c20c3139ed08f95a22f36da4f3ae2d","hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962","heaps-0.4-3f9ca831e2a710f80e5a253748a1aa605a7219f998fa88ce43b69c22d0075c73","js-dgtable-0.5.2-f7a634b948774c98a2be281a9a2244964a18c3b15b559a34248b4d851e8efb1b","js-flot-0.8.3-b34534f666396e8ad058c9e0cb79b8d2cfe4294fc870aa2daf758c66a4533545","js-jquery-3.3.1-4a51d1b0e66cd03e445290dde0449cd0ba22dd046bccc10876992c1527bc8a6f","primitive-0.8.0.0-c149e96dd6c8e609c75b5c29aa28e8cd219c971a12e6e067d5b176788da134c7","process-1.6.15.0","random-1.2.1.1-9993604da3abd0daa207bd669568b3090a5800f579313cdde4e4f2dd1205a948","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357","utf8-string-1.0.2-74175dc1969f6d60b6b78e0f9ae512859446f68011f9742d4519de87229b0554"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"splitmix-0.1.0.4-038952c2592bf9a18f363fc90951b486b79df30ad213b8f2b39e885e464e4944","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.17.0.0","deepseq-1.4.8.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.19.0.0","pkg-name":"template-haskell","pkg-version":"2.19.0.0","depends":["base-4.17.0.0","ghc-boot-th-9.4.2","ghc-prim-0.9.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.1","pkg-name":"text","pkg-version":"2.0.1","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.17.0.0","deepseq-1.4.8.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"unix-2.7.3","pkg-name":"unix","pkg-version":"2.7.3","depends":["base-4.17.0.0","bytestring-0.11.3.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-5d479bd67546400df56a0d5936ce154eaf2a515f628e7f7c6a4bdf072f3a7357","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.17.0.0","deepseq-1.4.8.0","hashable-1.4.2.0-8e31e6b21e417f686c72cda778509198a6d21d5a913ab5887f00511181a1b962","template-haskell-2.19.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-74175dc1969f6d60b6b78e0f9ae512859446f68011f9742d4519de87229b0554","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_4_3.json b/hadrian/bootstrap/plan-9_4_3.json
index 0db57e8dc968..23c7724ae348 100644
--- a/hadrian/bootstrap/plan-9_4_3.json
+++ b/hadrian/bootstrap/plan-9_4_3.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.4.3","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.8.1.0","pkg-name":"Cabal","pkg-version":"3.8.1.0","depends":["Cabal-syntax-3.8.1.0","array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.16.0","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"pre-existing","id":"Cabal-syntax-3.8.1.0","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"configured","id":"QuickCheck-2.14.2-bd36ed45f2f36a278bda4324fa38bb3bd6d2e4bde8819b78a239a5417138b368","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.17.0.0","containers-0.6.6","deepseq-1.4.8.0","random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af","splitmix-0.1.0.4-710f6aef842a6d0debca56a044407f2910ce264a4b0602d9d4de9ddecf46e668","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"base-4.17.0.0","pkg-name":"base","pkg-version":"4.17.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.9.0","rts-1.0.2"]},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"clock-0.8.3-27cb5e33ec1e869f298606d596f82ca84fe82486f8033c732d01ac07350ac528","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.6","pkg-name":"containers","pkg-version":"0.6.6","depends":["array-0.5.4.0","base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"deepseq-1.4.8.0","pkg-name":"deepseq","pkg-version":"1.4.8.0","depends":["array-0.5.4.0","base-4.17.0.0","ghc-prim-0.9.0"]},{"type":"pre-existing","id":"directory-1.3.7.1","pkg-name":"directory","pkg-version":"1.3.7.1","depends":["base-4.17.0.0","filepath-1.4.2.2","time-1.12.2","unix-2.7.3"]},{"type":"configured","id":"extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.17.0.0","clock-0.8.3-27cb5e33ec1e869f298606d596f82ca84fe82486f8033c732d01ac07350ac528","directory-1.3.7.1","filepath-1.4.2.2","process-1.6.16.0","time-1.12.2","unix-2.7.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.17.0.0"]},{"type":"configured","id":"filepattern-0.1.3-23d7f8ede2c552ae35fa6871e68c09d5495fe0ac277049b6b325cc6f11259b80","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.17.0.0","directory-1.3.7.1","extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.9.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.4.3","pkg-name":"ghc-boot-th","pkg-version":"9.4.3","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.9.0","pkg-name":"ghc-prim","pkg-version":"0.9.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0","QuickCheck-2.14.2-bd36ed45f2f36a278bda4324fa38bb3bd6d2e4bde8819b78a239a5417138b368","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","directory-1.3.7.1","extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-210fc1cbce69aed26102707e3a1f9a8d35afdb700b5ceb2aa5cba89db1cc9fcb","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","filepath-1.4.2.2","ghc-bignum-1.3","ghc-prim-0.9.0","text-2.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.17.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.17.0.0","bytestring-0.11.3.1","mtl-2.2.2","text-2.0.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0"]},{"type":"configured","id":"primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.16.0","pkg-name":"process","pkg-version":"1.6.16.0","depends":["base-4.17.0.0","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","unix-2.7.3"]},{"type":"configured","id":"random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.17.0.0","bytestring-0.11.3.1","deepseq-1.4.8.0","mtl-2.2.2","splitmix-0.1.0.4-710f6aef842a6d0debca56a044407f2910ce264a4b0602d9d4de9ddecf46e668"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-210fc1cbce69aed26102707e3a1f9a8d35afdb700b5ceb2aa5cba89db1cc9fcb","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede","filepath-1.4.2.2","filepattern-0.1.3-23d7f8ede2c552ae35fa6871e68c09d5495fe0ac277049b6b325cc6f11259b80","hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73","heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6","js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d","js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa","js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f","primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531","process-1.6.16.0","random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457","utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-67e15cde7c1cb49bcea296a54aa439315e66dfa316723d77c5efedbe480561be","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede","filepath-1.4.2.2","filepattern-0.1.3-23d7f8ede2c552ae35fa6871e68c09d5495fe0ac277049b6b325cc6f11259b80","hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73","heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6","js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d","js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa","js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f","primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531","process-1.6.16.0","random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457","utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.4.3/shake-0.19.7-e-shake-67e15cde7c1cb49bcea296a54aa439315e66dfa316723d77c5efedbe480561be/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-710f6aef842a6d0debca56a044407f2910ce264a4b0602d9d4de9ddecf46e668","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.17.0.0","deepseq-1.4.8.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.19.0.0","pkg-name":"template-haskell","pkg-version":"2.19.0.0","depends":["base-4.17.0.0","ghc-boot-th-9.4.3","ghc-prim-0.9.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.1","pkg-name":"text","pkg-version":"2.0.1","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.17.0.0","deepseq-1.4.8.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"unix-2.7.3","pkg-name":"unix","pkg-version":"2.7.3","depends":["base-4.17.0.0","bytestring-0.11.3.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.17.0.0","deepseq-1.4.8.0","hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73","template-haskell-2.19.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.4.3","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.8.1.0","pkg-name":"Cabal","pkg-version":"3.8.1.0","depends":["Cabal-syntax-3.8.1.0","array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.16.0","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"pre-existing","id":"Cabal-syntax-3.8.1.0","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"configured","id":"QuickCheck-2.14.2-bd36ed45f2f36a278bda4324fa38bb3bd6d2e4bde8819b78a239a5417138b368","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.17.0.0","containers-0.6.6","deepseq-1.4.8.0","random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af","splitmix-0.1.0.4-710f6aef842a6d0debca56a044407f2910ce264a4b0602d9d4de9ddecf46e668","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"base-4.17.0.0","pkg-name":"base","pkg-version":"4.17.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.9.0","rts-1.0.2"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-022be67a0e4d2e8bed3248f110a529e722a677692e78084e184611e934a069d4","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"clock-0.8.3-27cb5e33ec1e869f298606d596f82ca84fe82486f8033c732d01ac07350ac528","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.6","pkg-name":"containers","pkg-version":"0.6.6","depends":["array-0.5.4.0","base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-e68c05e71af300ee0140f7ecda5ed0439a27ba54936b05cd7b35b19a275e2b94","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.8.0","pkg-name":"deepseq","pkg-version":"1.4.8.0","depends":["array-0.5.4.0","base-4.17.0.0","ghc-prim-0.9.0"]},{"type":"pre-existing","id":"directory-1.3.7.1","pkg-name":"directory","pkg-version":"1.3.7.1","depends":["base-4.17.0.0","filepath-1.4.2.2","time-1.12.2","unix-2.7.3"]},{"type":"configured","id":"extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.17.0.0","clock-0.8.3-27cb5e33ec1e869f298606d596f82ca84fe82486f8033c732d01ac07350ac528","directory-1.3.7.1","filepath-1.4.2.2","process-1.6.16.0","time-1.12.2","unix-2.7.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.17.0.0"]},{"type":"configured","id":"filepattern-0.1.3-23d7f8ede2c552ae35fa6871e68c09d5495fe0ac277049b6b325cc6f11259b80","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.17.0.0","directory-1.3.7.1","extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.9.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.4.3","pkg-name":"ghc-boot-th","pkg-version":"9.4.3","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.9.0","pkg-name":"ghc-prim","pkg-version":"0.9.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0","QuickCheck-2.14.2-bd36ed45f2f36a278bda4324fa38bb3bd6d2e4bde8819b78a239a5417138b368","base-4.17.0.0","base16-bytestring-1.0.2.0-022be67a0e4d2e8bed3248f110a529e722a677692e78084e184611e934a069d4","bytestring-0.11.3.1","containers-0.6.6","cryptohash-sha256-0.11.102.1-e68c05e71af300ee0140f7ecda5ed0439a27ba54936b05cd7b35b19a275e2b94","directory-1.3.7.1","extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-210fc1cbce69aed26102707e3a1f9a8d35afdb700b5ceb2aa5cba89db1cc9fcb","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.3/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","filepath-1.4.2.2","ghc-bignum-1.3","ghc-prim-0.9.0","text-2.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.17.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.17.0.0","bytestring-0.11.3.1","mtl-2.2.2","text-2.0.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0"]},{"type":"configured","id":"primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.16.0","pkg-name":"process","pkg-version":"1.6.16.0","depends":["base-4.17.0.0","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","unix-2.7.3"]},{"type":"configured","id":"random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.17.0.0","bytestring-0.11.3.1","deepseq-1.4.8.0","mtl-2.2.2","splitmix-0.1.0.4-710f6aef842a6d0debca56a044407f2910ce264a4b0602d9d4de9ddecf46e668"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-210fc1cbce69aed26102707e3a1f9a8d35afdb700b5ceb2aa5cba89db1cc9fcb","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede","filepath-1.4.2.2","filepattern-0.1.3-23d7f8ede2c552ae35fa6871e68c09d5495fe0ac277049b6b325cc6f11259b80","hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73","heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6","js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d","js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa","js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f","primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531","process-1.6.16.0","random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457","utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-67e15cde7c1cb49bcea296a54aa439315e66dfa316723d77c5efedbe480561be","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-2f461c53f9b08e5408efea172f9149bfec383edafad68aa7599176c16a13dede","filepath-1.4.2.2","filepattern-0.1.3-23d7f8ede2c552ae35fa6871e68c09d5495fe0ac277049b6b325cc6f11259b80","hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73","heaps-0.4-144db1859f80e348dd364b0344727f2186256658a0f2bd2a1aad9c4c1db630a6","js-dgtable-0.5.2-ce51504654bf180c4ea9d29cda6d8256812da1ea6d2e631267db1cb30cae915d","js-flot-0.8.3-006c070aea66f942992ff19703d82059efcfd6ae82854bcfeb4083431bc579aa","js-jquery-3.3.1-257058014593a08cf3c7160e6a2fbf8b955f738e214c1dbc3ce0042b6a57ae6f","primitive-0.8.0.0-becede3b475b090bfee201276f175b6bdf41386aaea8c881d4d96b97d3787531","process-1.6.16.0","random-1.2.1.1-d9d024ad839cf59e080833d3160f414c51e3c921a07e4605644d3a24096423af","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457","utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.4.3/shake-0.19.7-e-shake-67e15cde7c1cb49bcea296a54aa439315e66dfa316723d77c5efedbe480561be/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-710f6aef842a6d0debca56a044407f2910ce264a4b0602d9d4de9ddecf46e668","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.17.0.0","deepseq-1.4.8.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.19.0.0","pkg-name":"template-haskell","pkg-version":"2.19.0.0","depends":["base-4.17.0.0","ghc-boot-th-9.4.3","ghc-prim-0.9.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.1","pkg-name":"text","pkg-version":"2.0.1","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.17.0.0","deepseq-1.4.8.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"unix-2.7.3","pkg-name":"unix","pkg-version":"2.7.3","depends":["base-4.17.0.0","bytestring-0.11.3.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-4baf378c8835b0cfb97fec3caca371cf946bd377598acf69fe0ab8ec8ac9b457","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.17.0.0","deepseq-1.4.8.0","hashable-1.4.2.0-3cc3eba008bad2dfed3e74ddd12307b1c49fc43da236521d46b3d1b9df8cfd73","template-haskell-2.19.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-b80856b75fa2fd6a3479749a275df202f796046854b0d6f9da80ab1b4390f939","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_4_4.json b/hadrian/bootstrap/plan-9_4_4.json
index f62f9785024c..12b7de4658d0 100644
--- a/hadrian/bootstrap/plan-9_4_4.json
+++ b/hadrian/bootstrap/plan-9_4_4.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.4.4","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.8.1.0","pkg-name":"Cabal","pkg-version":"3.8.1.0","depends":["Cabal-syntax-3.8.1.0","array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.16.0","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"pre-existing","id":"Cabal-syntax-3.8.1.0","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"configured","id":"QuickCheck-2.14.2-a60da574de04097effdc98c78262091fa56c19e05a88c4024e6578341d30e90e","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.17.0.0","containers-0.6.6","deepseq-1.4.8.0","random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21","splitmix-0.1.0.4-d4d340dc5b93e4aadb6f0ee62f239d1f28fbadeae3c81529c67f4df279c3cae7","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"base-4.17.0.0","pkg-name":"base","pkg-version":"4.17.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.9.0","rts-1.0.2"]},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"clock-0.8.3-e1cb5c09c08b802543e1c283427ef69d76d97cf2dec49fcef18840c2a8f690bf","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.6","pkg-name":"containers","pkg-version":"0.6.6","depends":["array-0.5.4.0","base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"deepseq-1.4.8.0","pkg-name":"deepseq","pkg-version":"1.4.8.0","depends":["array-0.5.4.0","base-4.17.0.0","ghc-prim-0.9.0"]},{"type":"pre-existing","id":"directory-1.3.7.1","pkg-name":"directory","pkg-version":"1.3.7.1","depends":["base-4.17.0.0","filepath-1.4.2.2","time-1.12.2","unix-2.7.3"]},{"type":"configured","id":"extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.17.0.0","clock-0.8.3-e1cb5c09c08b802543e1c283427ef69d76d97cf2dec49fcef18840c2a8f690bf","directory-1.3.7.1","filepath-1.4.2.2","process-1.6.16.0","time-1.12.2","unix-2.7.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.17.0.0"]},{"type":"configured","id":"filepattern-0.1.3-3209dee43b8f78099b7623a80834f0944d05b5c63e74e5607c738100e0aeefb7","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.17.0.0","directory-1.3.7.1","extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.9.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.4.4","pkg-name":"ghc-boot-th","pkg-version":"9.4.4","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.9.0","pkg-name":"ghc-prim","pkg-version":"0.9.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0","QuickCheck-2.14.2-a60da574de04097effdc98c78262091fa56c19e05a88c4024e6578341d30e90e","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","directory-1.3.7.1","extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-9447f50d9da0cc8668e587f8e555d4d8c2a3b4aef6766374d908e2942c04845d","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","filepath-1.4.2.2","ghc-bignum-1.3","ghc-prim-0.9.0","text-2.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-7a6066160342ac2a9ea4aec008f23eb9d92ad7a8c8d2e78cbeed667d8096912c","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-b37805c8ad3dc85830c773ec5da0d4cdfd56a534a3f6acb334c4517b737e5cb1","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-65df5b8c3953095207aa8a04d9d37d07aed474c73133bf9239df4e5cdbe4a9bd","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-8c84fdfa715ddd833b67b8a90ef47411829e61b194d5967e0699193776231e76","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.17.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.17.0.0","bytestring-0.11.3.1","mtl-2.2.2","text-2.0.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0"]},{"type":"configured","id":"primitive-0.8.0.0-621aca8de1dc201eec4f41917b8b5a6a9b9074831d6e26b48d3157f27593d2cb","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.16.0","pkg-name":"process","pkg-version":"1.6.16.0","depends":["base-4.17.0.0","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","unix-2.7.3"]},{"type":"configured","id":"random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.17.0.0","bytestring-0.11.3.1","deepseq-1.4.8.0","mtl-2.2.2","splitmix-0.1.0.4-d4d340dc5b93e4aadb6f0ee62f239d1f28fbadeae3c81529c67f4df279c3cae7"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-9447f50d9da0cc8668e587f8e555d4d8c2a3b4aef6766374d908e2942c04845d","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9","filepath-1.4.2.2","filepattern-0.1.3-3209dee43b8f78099b7623a80834f0944d05b5c63e74e5607c738100e0aeefb7","hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898","heaps-0.4-7a6066160342ac2a9ea4aec008f23eb9d92ad7a8c8d2e78cbeed667d8096912c","js-dgtable-0.5.2-b37805c8ad3dc85830c773ec5da0d4cdfd56a534a3f6acb334c4517b737e5cb1","js-flot-0.8.3-65df5b8c3953095207aa8a04d9d37d07aed474c73133bf9239df4e5cdbe4a9bd","js-jquery-3.3.1-8c84fdfa715ddd833b67b8a90ef47411829e61b194d5967e0699193776231e76","primitive-0.8.0.0-621aca8de1dc201eec4f41917b8b5a6a9b9074831d6e26b48d3157f27593d2cb","process-1.6.16.0","random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce","utf8-string-1.0.2-ecbcc42d461fefe46d60189b7229cddccce61f9cc8c90c79b2546be729015263"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-58a8239f06abe2b027b3d505240dffcac7bbaa4718579418aa458c0ac50d8beb","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9","filepath-1.4.2.2","filepattern-0.1.3-3209dee43b8f78099b7623a80834f0944d05b5c63e74e5607c738100e0aeefb7","hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898","heaps-0.4-7a6066160342ac2a9ea4aec008f23eb9d92ad7a8c8d2e78cbeed667d8096912c","js-dgtable-0.5.2-b37805c8ad3dc85830c773ec5da0d4cdfd56a534a3f6acb334c4517b737e5cb1","js-flot-0.8.3-65df5b8c3953095207aa8a04d9d37d07aed474c73133bf9239df4e5cdbe4a9bd","js-jquery-3.3.1-8c84fdfa715ddd833b67b8a90ef47411829e61b194d5967e0699193776231e76","primitive-0.8.0.0-621aca8de1dc201eec4f41917b8b5a6a9b9074831d6e26b48d3157f27593d2cb","process-1.6.16.0","random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce","utf8-string-1.0.2-ecbcc42d461fefe46d60189b7229cddccce61f9cc8c90c79b2546be729015263"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.4.4/shake-0.19.7-e-shake-58a8239f06abe2b027b3d505240dffcac7bbaa4718579418aa458c0ac50d8beb/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-d4d340dc5b93e4aadb6f0ee62f239d1f28fbadeae3c81529c67f4df279c3cae7","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.17.0.0","deepseq-1.4.8.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.19.0.0","pkg-name":"template-haskell","pkg-version":"2.19.0.0","depends":["base-4.17.0.0","ghc-boot-th-9.4.4","ghc-prim-0.9.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.1","pkg-name":"text","pkg-version":"2.0.1","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.17.0.0","deepseq-1.4.8.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"unix-2.7.3","pkg-name":"unix","pkg-version":"2.7.3","depends":["base-4.17.0.0","bytestring-0.11.3.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.17.0.0","deepseq-1.4.8.0","hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898","template-haskell-2.19.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-ecbcc42d461fefe46d60189b7229cddccce61f9cc8c90c79b2546be729015263","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.4.4","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.8.1.0","pkg-name":"Cabal","pkg-version":"3.8.1.0","depends":["Cabal-syntax-3.8.1.0","array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","process-1.6.16.0","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"pre-existing","id":"Cabal-syntax-3.8.1.0","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","pretty-1.1.3.6","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unix-2.7.3"]},{"type":"configured","id":"QuickCheck-2.14.2-a60da574de04097effdc98c78262091fa56c19e05a88c4024e6578341d30e90e","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.17.0.0","containers-0.6.6","deepseq-1.4.8.0","random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21","splitmix-0.1.0.4-d4d340dc5b93e4aadb6f0ee62f239d1f28fbadeae3c81529c67f4df279c3cae7","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"base-4.17.0.0","pkg-name":"base","pkg-version":"4.17.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.9.0","rts-1.0.2"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-2c05b63cefa5d7007acd478c1dbfe18a190bfba61d8945d4d5b87798ed9ca8c2","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.4.0","base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6"]},{"type":"pre-existing","id":"bytestring-0.11.3.1","pkg-name":"bytestring","pkg-version":"0.11.3.1","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"clock-0.8.3-e1cb5c09c08b802543e1c283427ef69d76d97cf2dec49fcef18840c2a8f690bf","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.6","pkg-name":"containers","pkg-version":"0.6.6","depends":["array-0.5.4.0","base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-ae70c6c39b427440638d8d0177551367c44baa0fcf044bb565f9e69c4daafe02","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.8.0","pkg-name":"deepseq","pkg-version":"1.4.8.0","depends":["array-0.5.4.0","base-4.17.0.0","ghc-prim-0.9.0"]},{"type":"pre-existing","id":"directory-1.3.7.1","pkg-name":"directory","pkg-version":"1.3.7.1","depends":["base-4.17.0.0","filepath-1.4.2.2","time-1.12.2","unix-2.7.3"]},{"type":"configured","id":"extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.17.0.0","clock-0.8.3-e1cb5c09c08b802543e1c283427ef69d76d97cf2dec49fcef18840c2a8f690bf","directory-1.3.7.1","filepath-1.4.2.2","process-1.6.16.0","time-1.12.2","unix-2.7.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.2","pkg-name":"filepath","pkg-version":"1.4.2.2","depends":["base-4.17.0.0"]},{"type":"configured","id":"filepattern-0.1.3-3209dee43b8f78099b7623a80834f0944d05b5c63e74e5607c738100e0aeefb7","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.17.0.0","directory-1.3.7.1","extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9","filepath-1.4.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.9.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.4.4","pkg-name":"ghc-boot-th","pkg-version":"9.4.4","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.9.0","pkg-name":"ghc-prim","pkg-version":"0.9.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0","QuickCheck-2.14.2-a60da574de04097effdc98c78262091fa56c19e05a88c4024e6578341d30e90e","base-4.17.0.0","base16-bytestring-1.0.2.0-2c05b63cefa5d7007acd478c1dbfe18a190bfba61d8945d4d5b87798ed9ca8c2","bytestring-0.11.3.1","containers-0.6.6","cryptohash-sha256-0.11.102.1-ae70c6c39b427440638d8d0177551367c44baa0fcf044bb565f9e69c4daafe02","directory-1.3.7.1","extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9","filepath-1.4.2.2","mtl-2.2.2","parsec-3.1.15.0","shake-0.19.7-9447f50d9da0cc8668e587f8e555d4d8c2a3b4aef6766374d908e2942c04845d","text-2.0.1","time-1.12.2","transformers-0.5.6.2","unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.4.4/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.17.0.0","bytestring-0.11.3.1","containers-0.6.6","deepseq-1.4.8.0","filepath-1.4.2.2","ghc-bignum-1.3","ghc-prim-0.9.0","text-2.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-7a6066160342ac2a9ea4aec008f23eb9d92ad7a8c8d2e78cbeed667d8096912c","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-b37805c8ad3dc85830c773ec5da0d4cdfd56a534a3f6acb334c4517b737e5cb1","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-65df5b8c3953095207aa8a04d9d37d07aed474c73133bf9239df4e5cdbe4a9bd","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-8c84fdfa715ddd833b67b8a90ef47411829e61b194d5967e0699193776231e76","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.17.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.17.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"parsec-3.1.15.0","pkg-name":"parsec","pkg-version":"3.1.15.0","depends":["base-4.17.0.0","bytestring-0.11.3.1","mtl-2.2.2","text-2.0.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.17.0.0","deepseq-1.4.8.0","ghc-prim-0.9.0"]},{"type":"configured","id":"primitive-0.8.0.0-621aca8de1dc201eec4f41917b8b5a6a9b9074831d6e26b48d3157f27593d2cb","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.17.0.0","deepseq-1.4.8.0","template-haskell-2.19.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.16.0","pkg-name":"process","pkg-version":"1.6.16.0","depends":["base-4.17.0.0","deepseq-1.4.8.0","directory-1.3.7.1","filepath-1.4.2.2","unix-2.7.3"]},{"type":"configured","id":"random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.17.0.0","bytestring-0.11.3.1","deepseq-1.4.8.0","mtl-2.2.2","splitmix-0.1.0.4-d4d340dc5b93e4aadb6f0ee62f239d1f28fbadeae3c81529c67f4df279c3cae7"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-9447f50d9da0cc8668e587f8e555d4d8c2a3b4aef6766374d908e2942c04845d","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9","filepath-1.4.2.2","filepattern-0.1.3-3209dee43b8f78099b7623a80834f0944d05b5c63e74e5607c738100e0aeefb7","hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898","heaps-0.4-7a6066160342ac2a9ea4aec008f23eb9d92ad7a8c8d2e78cbeed667d8096912c","js-dgtable-0.5.2-b37805c8ad3dc85830c773ec5da0d4cdfd56a534a3f6acb334c4517b737e5cb1","js-flot-0.8.3-65df5b8c3953095207aa8a04d9d37d07aed474c73133bf9239df4e5cdbe4a9bd","js-jquery-3.3.1-8c84fdfa715ddd833b67b8a90ef47411829e61b194d5967e0699193776231e76","primitive-0.8.0.0-621aca8de1dc201eec4f41917b8b5a6a9b9074831d6e26b48d3157f27593d2cb","process-1.6.16.0","random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce","utf8-string-1.0.2-ecbcc42d461fefe46d60189b7229cddccce61f9cc8c90c79b2546be729015263"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-58a8239f06abe2b027b3d505240dffcac7bbaa4718579418aa458c0ac50d8beb","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","directory-1.3.7.1","extra-1.7.12-ed96143baca6959ac781d058b4532253a1a26d733ef4adb0a1321df73f5180d9","filepath-1.4.2.2","filepattern-0.1.3-3209dee43b8f78099b7623a80834f0944d05b5c63e74e5607c738100e0aeefb7","hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898","heaps-0.4-7a6066160342ac2a9ea4aec008f23eb9d92ad7a8c8d2e78cbeed667d8096912c","js-dgtable-0.5.2-b37805c8ad3dc85830c773ec5da0d4cdfd56a534a3f6acb334c4517b737e5cb1","js-flot-0.8.3-65df5b8c3953095207aa8a04d9d37d07aed474c73133bf9239df4e5cdbe4a9bd","js-jquery-3.3.1-8c84fdfa715ddd833b67b8a90ef47411829e61b194d5967e0699193776231e76","primitive-0.8.0.0-621aca8de1dc201eec4f41917b8b5a6a9b9074831d6e26b48d3157f27593d2cb","process-1.6.16.0","random-1.2.1.1-dbffd18a055fbf1c5ccdc18dddc6a7070869702691c237f3c9fec60b9a349e21","time-1.12.2","transformers-0.5.6.2","unix-2.7.3","unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce","utf8-string-1.0.2-ecbcc42d461fefe46d60189b7229cddccce61f9cc8c90c79b2546be729015263"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.4.4/shake-0.19.7-e-shake-58a8239f06abe2b027b3d505240dffcac7bbaa4718579418aa458c0ac50d8beb/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-d4d340dc5b93e4aadb6f0ee62f239d1f28fbadeae3c81529c67f4df279c3cae7","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.17.0.0","deepseq-1.4.8.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.19.0.0","pkg-name":"template-haskell","pkg-version":"2.19.0.0","depends":["base-4.17.0.0","ghc-boot-th-9.4.4","ghc-prim-0.9.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.1","pkg-name":"text","pkg-version":"2.0.1","depends":["array-0.5.4.0","base-4.17.0.0","binary-0.8.9.1","bytestring-0.11.3.1","deepseq-1.4.8.0","ghc-prim-0.9.0","template-haskell-2.19.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.17.0.0","deepseq-1.4.8.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.17.0.0"]},{"type":"pre-existing","id":"unix-2.7.3","pkg-name":"unix","pkg-version":"2.7.3","depends":["base-4.17.0.0","bytestring-0.11.3.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-2dec9e8b7cc43fc729dcfa4b3cfe5ce42488c299bc0108cd6fc3f6accbd109ce","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.17.0.0","deepseq-1.4.8.0","hashable-1.4.2.0-8b24e015b5994215b529553ebf9f53466f24b616595cb02efad3ae8f6f6c1898","template-haskell-2.19.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-ecbcc42d461fefe46d60189b7229cddccce61f9cc8c90c79b2546be729015263","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.17.0.0","bytestring-0.11.3.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-9_6_1.json b/hadrian/bootstrap/plan-9_6_1.json
index b3554e129b5d..4f3eeb7f3765 100644
--- a/hadrian/bootstrap/plan-9_6_1.json
+++ b/hadrian/bootstrap/plan-9_6_1.json
@@ -1 +1 @@
-{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.6.1","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.8.1.0-372ffc7841ab6b7a5b1b38fc4fa05a1def6d41a4a28a05b6b16412d8d03e6fd6","pkg-name":"Cabal","pkg-version":"3.8.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"77121d8e1aff14a0fd95684b751599db78a7dd26d55862d9fcef27c88b193e9d","pkg-src-sha256":"7464cbe6c2f3d7e5d0232023a1a7330621f8b24853cb259fc89a2af85b736608","depends":["Cabal-syntax-3.8.1.0-3ca25e89601c18bd49019a3d1e19420c47007f095f586f14636917297c1fc62a","array-0.5.5.0","base-4.18.0.0","bytestring-0.11.4.0","containers-0.6.7","deepseq-1.4.8.1","directory-1.3.8.1","filepath-1.4.100.1","mtl-2.3.1","parsec-3.1.16.1","pretty-1.1.3.6","process-1.6.17.0","text-2.0.2","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Cabal-syntax-3.8.1.0-3ca25e89601c18bd49019a3d1e19420c47007f095f586f14636917297c1fc62a","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ed2d937ba6c6a20b75850349eedd41374885fc42369ef152d69e2ba70f44f593","pkg-src-sha256":"07e8ddb19fe01781485f1522b6afc22aba680b0ab28ebe6bbfb84a2dd698ce0f","depends":["array-0.5.5.0","base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","containers-0.6.7","deepseq-1.4.8.1","directory-1.3.8.1","filepath-1.4.100.1","mtl-2.3.1","parsec-3.1.16.1","pretty-1.1.3.6","text-2.0.2","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"QuickCheck-2.14.2-48f73357a0d5467607535cbb21ac8449b28303ff215af7e947416e6a4ef4195f","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.18.0.0","containers-0.6.7","deepseq-1.4.8.1","random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b","template-haskell-2.20.0.0","transformers-0.6.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.5.0","pkg-name":"array","pkg-version":"0.5.5.0","depends":["base-4.18.0.0"]},{"type":"pre-existing","id":"base-4.18.0.0","pkg-name":"base","pkg-version":"4.18.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.10.0","rts-1.0.2"]},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.5.0","base-4.18.0.0","bytestring-0.11.4.0","containers-0.6.7"]},{"type":"pre-existing","id":"bytestring-0.11.4.0","pkg-name":"bytestring","pkg-version":"0.11.4.0","depends":["base-4.18.0.0","deepseq-1.4.8.1","ghc-prim-0.10.0","template-haskell-2.20.0.0"]},{"type":"configured","id":"clock-0.8.3-309549353d285d82eaa6ef36502628671b62ca2d2fb6284260bd7679d5e7b9a3","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.7","pkg-name":"containers","pkg-version":"0.6.7","depends":["array-0.5.5.0","base-4.18.0.0","deepseq-1.4.8.1","template-haskell-2.20.0.0"]},{"type":"pre-existing","id":"deepseq-1.4.8.1","pkg-name":"deepseq","pkg-version":"1.4.8.1","depends":["array-0.5.5.0","base-4.18.0.0","ghc-prim-0.10.0"]},{"type":"pre-existing","id":"directory-1.3.8.1","pkg-name":"directory","pkg-version":"1.3.8.1","depends":["base-4.18.0.0","filepath-1.4.100.1","time-1.12.2","unix-2.8.1.0"]},{"type":"pre-existing","id":"exceptions-0.10.7","pkg-name":"exceptions","pkg-version":"0.10.7","depends":["base-4.18.0.0","mtl-2.3.1","stm-2.5.1.0","template-haskell-2.20.0.0","transformers-0.6.1.0"]},{"type":"configured","id":"extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.18.0.0","clock-0.8.3-309549353d285d82eaa6ef36502628671b62ca2d2fb6284260bd7679d5e7b9a3","directory-1.3.8.1","filepath-1.4.100.1","process-1.6.17.0","time-1.12.2","unix-2.8.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.100.1","pkg-name":"filepath","pkg-version":"1.4.100.1","depends":["base-4.18.0.0","bytestring-0.11.4.0","deepseq-1.4.8.1","exceptions-0.10.7","template-haskell-2.20.0.0"]},{"type":"configured","id":"filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.18.0.0","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.10.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.6.1","pkg-name":"ghc-boot-th","pkg-version":"9.6.1","depends":["base-4.18.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.10.0","pkg-name":"ghc-prim","pkg-version":"0.10.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-scratch/hadrian/."},"dist-dir":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0-372ffc7841ab6b7a5b1b38fc4fa05a1def6d41a4a28a05b6b16412d8d03e6fd6","QuickCheck-2.14.2-48f73357a0d5467607535cbb21ac8449b28303ff215af7e947416e6a4ef4195f","base-4.18.0.0","bytestring-0.11.4.0","containers-0.6.7","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1","mtl-2.3.1","parsec-3.1.16.1","shake-0.19.7-5a9ab582f15d6b877ed307ed78deca9e9f66793b09ed98bacc612e42b1e9bb49","text-2.0.2","time-1.12.2","transformers-0.6.1.0","unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-scratch/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.18.0.0","bytestring-0.11.4.0","containers-0.6.7","deepseq-1.4.8.1","filepath-1.4.100.1","ghc-bignum-1.3","ghc-prim-0.10.0","text-2.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.3.1","pkg-name":"mtl","pkg-version":"2.3.1","depends":["base-4.18.0.0","transformers-0.6.1.0"]},{"type":"pre-existing","id":"parsec-3.1.16.1","pkg-name":"parsec","pkg-version":"3.1.16.1","depends":["base-4.18.0.0","bytestring-0.11.4.0","mtl-2.3.1","text-2.0.2"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.18.0.0","deepseq-1.4.8.1","ghc-prim-0.10.0"]},{"type":"configured","id":"primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.18.0.0","deepseq-1.4.8.1","template-haskell-2.20.0.0","transformers-0.6.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.17.0","pkg-name":"process","pkg-version":"1.6.17.0","depends":["base-4.18.0.0","deepseq-1.4.8.1","directory-1.3.8.1","filepath-1.4.100.1","unix-2.8.1.0"]},{"type":"configured","id":"random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.18.0.0","bytestring-0.11.4.0","deepseq-1.4.8.1","mtl-2.3.1","splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-5a9ab582f15d6b877ed307ed78deca9e9f66793b09ed98bacc612e42b1e9bb49","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","deepseq-1.4.8.1","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1","filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990","hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459","js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572","js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a","js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed","primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371","process-1.6.17.0","random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0","unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99","utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-a59c980e9cb95b2a1d37687f9ab3efd3a8e8314a00e4ca7fb819044d23198462","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","deepseq-1.4.8.1","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1","filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990","hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459","js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572","js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a","js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed","primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371","process-1.6.17.0","random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0","unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99","utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.6.1/shake-0.19.7-e-shake-a59c980e9cb95b2a1d37687f9ab3efd3a8e8314a00e4ca7fb819044d23198462/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.18.0.0","deepseq-1.4.8.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.1.0","pkg-name":"stm","pkg-version":"2.5.1.0","depends":["array-0.5.5.0","base-4.18.0.0"]},{"type":"pre-existing","id":"template-haskell-2.20.0.0","pkg-name":"template-haskell","pkg-version":"2.20.0.0","depends":["base-4.18.0.0","ghc-boot-th-9.6.1","ghc-prim-0.10.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.2","pkg-name":"text","pkg-version":"2.0.2","depends":["array-0.5.5.0","base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","deepseq-1.4.8.1","ghc-prim-0.10.0","template-haskell-2.20.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.18.0.0","deepseq-1.4.8.1"]},{"type":"pre-existing","id":"transformers-0.6.1.0","pkg-name":"transformers","pkg-version":"0.6.1.0","depends":["base-4.18.0.0"]},{"type":"pre-existing","id":"unix-2.8.1.0","pkg-name":"unix","pkg-version":"2.8.1.0","depends":["base-4.18.0.0","bytestring-0.11.4.0","filepath-1.4.100.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.18.0.0","deepseq-1.4.8.1","hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","template-haskell-2.20.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.18.0.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.8.1.0","cabal-lib-version":"3.8.1.0","compiler-id":"ghc-9.6.1","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.8.1.0-372ffc7841ab6b7a5b1b38fc4fa05a1def6d41a4a28a05b6b16412d8d03e6fd6","pkg-name":"Cabal","pkg-version":"3.8.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"77121d8e1aff14a0fd95684b751599db78a7dd26d55862d9fcef27c88b193e9d","pkg-src-sha256":"7464cbe6c2f3d7e5d0232023a1a7330621f8b24853cb259fc89a2af85b736608","depends":["Cabal-syntax-3.8.1.0-3ca25e89601c18bd49019a3d1e19420c47007f095f586f14636917297c1fc62a","array-0.5.5.0","base-4.18.0.0","bytestring-0.11.4.0","containers-0.6.7","deepseq-1.4.8.1","directory-1.3.8.1","filepath-1.4.100.1","mtl-2.3.1","parsec-3.1.16.1","pretty-1.1.3.6","process-1.6.17.0","text-2.0.2","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Cabal-syntax-3.8.1.0-3ca25e89601c18bd49019a3d1e19420c47007f095f586f14636917297c1fc62a","pkg-name":"Cabal-syntax","pkg-version":"3.8.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ed2d937ba6c6a20b75850349eedd41374885fc42369ef152d69e2ba70f44f593","pkg-src-sha256":"07e8ddb19fe01781485f1522b6afc22aba680b0ab28ebe6bbfb84a2dd698ce0f","depends":["array-0.5.5.0","base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","containers-0.6.7","deepseq-1.4.8.1","directory-1.3.8.1","filepath-1.4.100.1","mtl-2.3.1","parsec-3.1.16.1","pretty-1.1.3.6","text-2.0.2","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"QuickCheck-2.14.2-48f73357a0d5467607535cbb21ac8449b28303ff215af7e947416e6a4ef4195f","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.18.0.0","containers-0.6.7","deepseq-1.4.8.1","random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b","template-haskell-2.20.0.0","transformers-0.6.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.5.0","pkg-name":"array","pkg-version":"0.5.5.0","depends":["base-4.18.0.0"]},{"type":"pre-existing","id":"base-4.18.0.0","pkg-name":"base","pkg-version":"4.18.0.0","depends":["ghc-bignum-1.3","ghc-prim-0.10.0","rts-1.0.2"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-b5940c21a059d328169082a7bf03f08fec9ea9cb300f6de1499ec2087f455bc8","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.18.0.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.1","pkg-name":"binary","pkg-version":"0.8.9.1","depends":["array-0.5.5.0","base-4.18.0.0","bytestring-0.11.4.0","containers-0.6.7"]},{"type":"pre-existing","id":"bytestring-0.11.4.0","pkg-name":"bytestring","pkg-version":"0.11.4.0","depends":["base-4.18.0.0","deepseq-1.4.8.1","ghc-prim-0.10.0","template-haskell-2.20.0.0"]},{"type":"configured","id":"clock-0.8.3-309549353d285d82eaa6ef36502628671b62ca2d2fb6284260bd7679d5e7b9a3","pkg-name":"clock","pkg-version":"0.8.3","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c","pkg-src-sha256":"845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.7","pkg-name":"containers","pkg-version":"0.6.7","depends":["array-0.5.5.0","base-4.18.0.0","deepseq-1.4.8.1","template-haskell-2.20.0.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-9d310921383dbec51b2f6fa686c9d99cfd3bb977a8eff016b53bb33c86c941e0","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.18.0.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.8.1","pkg-name":"deepseq","pkg-version":"1.4.8.1","depends":["array-0.5.5.0","base-4.18.0.0","ghc-prim-0.10.0"]},{"type":"pre-existing","id":"directory-1.3.8.1","pkg-name":"directory","pkg-version":"1.3.8.1","depends":["base-4.18.0.0","filepath-1.4.100.1","time-1.12.2","unix-2.8.1.0"]},{"type":"pre-existing","id":"exceptions-0.10.7","pkg-name":"exceptions","pkg-version":"0.10.7","depends":["base-4.18.0.0","mtl-2.3.1","stm-2.5.1.0","template-haskell-2.20.0.0","transformers-0.6.1.0"]},{"type":"configured","id":"extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","pkg-name":"extra","pkg-version":"1.7.12","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f","pkg-src-sha256":"e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c","depends":["base-4.18.0.0","clock-0.8.3-309549353d285d82eaa6ef36502628671b62ca2d2fb6284260bd7679d5e7b9a3","directory-1.3.8.1","filepath-1.4.100.1","process-1.6.17.0","time-1.12.2","unix-2.8.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.100.1","pkg-name":"filepath","pkg-version":"1.4.100.1","depends":["base-4.18.0.0","bytestring-0.11.4.0","deepseq-1.4.8.1","exceptions-0.10.7","template-haskell-2.20.0.0"]},{"type":"configured","id":"filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990","pkg-name":"filepattern","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2","pkg-src-sha256":"cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636","depends":["base-4.18.0.0","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.10.0"]},{"type":"pre-existing","id":"ghc-boot-th-9.6.1","pkg-name":"ghc-boot-th","pkg-version":"9.6.1","depends":["base-4.18.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.10.0","pkg-name":"ghc-prim","pkg-version":"0.10.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hadrian-0.1.0.0-inplace-hadrian","pkg-name":"hadrian","pkg-version":"0.1.0.0","flags":{"selftest":true,"threaded":true},"style":"local","pkg-src":{"type":"local","path":"/home/matt/ghc-rodrigo/hadrian/."},"dist-dir":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian","build-info":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian/build-info.json","depends":["Cabal-3.8.1.0-372ffc7841ab6b7a5b1b38fc4fa05a1def6d41a4a28a05b6b16412d8d03e6fd6","QuickCheck-2.14.2-48f73357a0d5467607535cbb21ac8449b28303ff215af7e947416e6a4ef4195f","base-4.18.0.0","base16-bytestring-1.0.2.0-b5940c21a059d328169082a7bf03f08fec9ea9cb300f6de1499ec2087f455bc8","bytestring-0.11.4.0","containers-0.6.7","cryptohash-sha256-0.11.102.1-9d310921383dbec51b2f6fa686c9d99cfd3bb977a8eff016b53bb33c86c941e0","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1","mtl-2.3.1","parsec-3.1.16.1","shake-0.19.7-5a9ab582f15d6b877ed307ed78deca9e9f66793b09ed98bacc612e42b1e9bb49","text-2.0.2","time-1.12.2","transformers-0.6.1.0","unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99"],"exe-depends":[],"component-name":"exe:hadrian","bin-file":"/home/matt/ghc-rodrigo/hadrian/dist-newstyle/build/x86_64-linux/ghc-9.6.1/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian"},{"type":"configured","id":"hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","pkg-name":"hashable","pkg-version":"1.4.2.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"585792335d5541dba78fa8dfcb291a89cd5812a281825ff7a44afa296ab5d58a","pkg-src-sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","depends":["base-4.18.0.0","bytestring-0.11.4.0","containers-0.6.7","deepseq-1.4.8.1","filepath-1.4.100.1","ghc-bignum-1.3","ghc-prim-0.10.0","text-2.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459","pkg-name":"heaps","pkg-version":"0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8","pkg-src-sha256":"89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572","pkg-name":"js-dgtable","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4","pkg-src-sha256":"e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a","pkg-name":"js-flot","pkg-version":"0.8.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d","pkg-src-sha256":"1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed","pkg-name":"js-jquery","pkg-version":"3.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5","pkg-src-sha256":"e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b","depends":["base-4.18.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.3.1","pkg-name":"mtl","pkg-version":"2.3.1","depends":["base-4.18.0.0","transformers-0.6.1.0"]},{"type":"pre-existing","id":"parsec-3.1.16.1","pkg-name":"parsec","pkg-version":"3.1.16.1","depends":["base-4.18.0.0","bytestring-0.11.4.0","mtl-2.3.1","text-2.0.2"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.18.0.0","deepseq-1.4.8.1","ghc-prim-0.10.0"]},{"type":"configured","id":"primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371","pkg-name":"primitive","pkg-version":"0.8.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"826bf2a702a26ef87532a135808abad69d74f70ead39f26c06d034b1f0537a19","pkg-src-sha256":"5553c21b4a789f9b591eed69e598cc58484c274af29250e517b5a8bcc62b995f","depends":["base-4.18.0.0","deepseq-1.4.8.1","template-haskell-2.20.0.0","transformers-0.6.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.17.0","pkg-name":"process","pkg-version":"1.6.17.0","depends":["base-4.18.0.0","deepseq-1.4.8.1","directory-1.3.8.1","filepath-1.4.100.1","unix-2.8.1.0"]},{"type":"configured","id":"random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","pkg-name":"random","pkg-version":"1.2.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","pkg-src-sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","depends":["base-4.18.0.0","bytestring-0.11.4.0","deepseq-1.4.8.1","mtl-2.3.1","splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"shake-0.19.7-5a9ab582f15d6b877ed307ed78deca9e9f66793b09ed98bacc612e42b1e9bb49","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","deepseq-1.4.8.1","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1","filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990","hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459","js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572","js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a","js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed","primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371","process-1.6.17.0","random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0","unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99","utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"shake-0.19.7-e-shake-a59c980e9cb95b2a1d37687f9ab3efd3a8e8314a00e4ca7fb819044d23198462","pkg-name":"shake","pkg-version":"0.19.7","flags":{"cloud":false,"embed-files":false,"portable":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3cb5814cce210b9756fa9246ff1b2a1e1b86be46fdc4c5e2baacdc5bf83ce5c3","pkg-src-sha256":"352a56af12f70b50d564dcb61131555577281957ee196f1702a3723c0a3699d1","depends":["base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","deepseq-1.4.8.1","directory-1.3.8.1","extra-1.7.12-3ff76dca5298f0150cab13d98558cc454778c8488bbe7ff495cf22dd8ce1fbac","filepath-1.4.100.1","filepattern-0.1.3-27d278e9a17a55f9f951233d92fa6c79dfb3359757c1c3d71c29c72a1563a990","hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","heaps-0.4-84f785fa326505d8cac138316c7ca1fae826bac79403765826b5e0e8b4ca6459","js-dgtable-0.5.2-929f5bb1639fd2d41e313c57e9a1322999779829eab0b2562697ea02d35cb572","js-flot-0.8.3-6ef19e2feb165ecbdc5faf2cc57c67ac671129ac8bfa15f49d808e2c55182e5a","js-jquery-3.3.1-7aa226a6aaf4a0a4ab8c2edaf9ce49229001fbdf5d86e863b4c2ece60a4532ed","primitive-0.8.0.0-ad645076af9195e65e5c77d3a3850c7fb7f4153156656431f6be749f834f8371","process-1.6.17.0","random-1.2.1.1-2344f66ad3296b3c8c64d0fbe5a1dc8799adc0c02f28ef27b3d8bcb93f71e8f6","time-1.12.2","transformers-0.6.1.0","unix-2.8.1.0","unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99","utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053"],"exe-depends":[],"component-name":"exe:shake","bin-file":"/home/matt/.cabal/store/ghc-9.6.1/shake-0.19.7-e-shake-a59c980e9cb95b2a1d37687f9ab3efd3a8e8314a00e4ca7fb819044d23198462/bin/shake"},{"type":"configured","id":"splitmix-0.1.0.4-d2df76b90c23066708f4e66aade172a985bb07c1ccf613221011d8827c32f89b","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.18.0.0","deepseq-1.4.8.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.1.0","pkg-name":"stm","pkg-version":"2.5.1.0","depends":["array-0.5.5.0","base-4.18.0.0"]},{"type":"pre-existing","id":"template-haskell-2.20.0.0","pkg-name":"template-haskell","pkg-version":"2.20.0.0","depends":["base-4.18.0.0","ghc-boot-th-9.6.1","ghc-prim-0.10.0","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-2.0.2","pkg-name":"text","pkg-version":"2.0.2","depends":["array-0.5.5.0","base-4.18.0.0","binary-0.8.9.1","bytestring-0.11.4.0","deepseq-1.4.8.1","ghc-prim-0.10.0","template-haskell-2.20.0.0"]},{"type":"pre-existing","id":"time-1.12.2","pkg-name":"time","pkg-version":"1.12.2","depends":["base-4.18.0.0","deepseq-1.4.8.1"]},{"type":"pre-existing","id":"transformers-0.6.1.0","pkg-name":"transformers","pkg-version":"0.6.1.0","depends":["base-4.18.0.0"]},{"type":"pre-existing","id":"unix-2.8.1.0","pkg-name":"unix","pkg-version":"2.8.1.0","depends":["base-4.18.0.0","bytestring-0.11.4.0","filepath-1.4.100.1","time-1.12.2"]},{"type":"configured","id":"unordered-containers-0.2.19.1-dd696ab9b62a991ef164b9913b3122a7c8f7f5556a841af32aff1e29cd73ef99","pkg-name":"unordered-containers","pkg-version":"0.2.19.1","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ad8972c2e913c37b1d4f0e1261517fd7a1b8c8a58077e057be69837e3dbaa00","pkg-src-sha256":"1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2","depends":["base-4.18.0.0","deepseq-1.4.8.1","hashable-1.4.2.0-0889edbce65a4fa263d1b820b2b8d69eaa1dc95475dff3c60f82e860064fa7d4","template-haskell-2.20.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"utf8-string-1.0.2-721e9e04faa6601f986dacde9b25ed4ab91af08c4232b52f8ff34c6b34918053","pkg-name":"utf8-string","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f","pkg-src-sha256":"ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a","depends":["base-4.18.0.0","bytestring-0.11.4.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/hadrian/bootstrap/plan-bootstrap-9_2_1.json b/hadrian/bootstrap/plan-bootstrap-9_2_1.json
index 14bbc28ecc36..5dedb0dced9c 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_2_1.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_2_1.json
@@ -6,90 +6,112 @@
     },
     {
       "package": "ghc-prim",
-      "version": "0.8.0"
+      "version": "0.10.0"
     },
     {
       "package": "ghc-bignum",
-      "version": "1.2"
+      "version": "1.3"
     },
     {
       "package": "base",
-      "version": "4.16.0.0"
+      "version": "4.18.0.0"
     },
     {
       "package": "array",
-      "version": "0.5.4.0"
+      "version": "0.5.5.0"
     },
     {
       "package": "deepseq",
-      "version": "1.4.6.0"
+      "version": "1.4.8.1"
+    },
+    {
+      "package": "ghc-boot-th",
+      "version": "9.6.1"
+    },
+    {
+      "package": "pretty",
+      "version": "1.1.3.6"
+    },
+    {
+      "package": "template-haskell",
+      "version": "2.20.0.0"
     },
     {
       "package": "bytestring",
-      "version": "0.11.1.0"
+      "version": "0.11.4.0"
     },
     {
       "package": "containers",
-      "version": "0.6.5.1"
+      "version": "0.6.7"
     },
     {
       "package": "binary",
-      "version": "0.8.9.0"
-    },
-    {
-      "package": "filepath",
-      "version": "1.4.2.1"
+      "version": "0.8.9.1"
     },
     {
-      "package": "time",
-      "version": "1.11.1.1"
+      "package": "transformers",
+      "version": "0.6.1.0"
     },
     {
-      "package": "unix",
-      "version": "2.7.2.2"
+      "package": "mtl",
+      "version": "2.3.1"
     },
     {
-      "package": "directory",
-      "version": "1.3.6.2"
+      "package": "stm",
+      "version": "2.5.1.0"
     },
     {
-      "package": "transformers",
-      "version": "0.5.6.2"
+      "package": "exceptions",
+      "version": "0.10.7"
     },
     {
-      "package": "mtl",
-      "version": "2.2.2"
+      "package": "filepath",
+      "version": "1.4.100.1"
     },
     {
-      "package": "ghc-boot-th",
-      "version": "9.2.1"
+      "package": "time",
+      "version": "1.12.2"
     },
     {
-      "package": "pretty",
-      "version": "1.1.3.6"
+      "package": "unix",
+      "version": "2.8.1.0"
     },
     {
-      "package": "template-haskell",
-      "version": "2.18.0.0"
+      "package": "directory",
+      "version": "1.3.8.1"
     },
     {
       "package": "text",
-      "version": "1.2.5.0"
+      "version": "2.0.2"
     },
     {
       "package": "parsec",
-      "version": "3.1.14.0"
+      "version": "3.1.16.1"
     },
     {
       "package": "process",
-      "version": "1.6.13.2"
-    },
-    {
-      "package": "Cabal",
-      "version": "3.6.0.0"
+      "version": "1.6.17.0"
     }
   ],
   "dependencies": [
+    {
+      "cabal_sha256": "ed2d937ba6c6a20b75850349eedd41374885fc42369ef152d69e2ba70f44f593",
+      "flags": [],
+      "package": "Cabal-syntax",
+      "revision": 3,
+      "source": "hackage",
+      "src_sha256": "07e8ddb19fe01781485f1522b6afc22aba680b0ab28ebe6bbfb84a2dd698ce0f",
+      "version": "3.8.1.0"
+    },
+    {
+      "cabal_sha256": "77121d8e1aff14a0fd95684b751599db78a7dd26d55862d9fcef27c88b193e9d",
+      "flags": [],
+      "package": "Cabal",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "7464cbe6c2f3d7e5d0232023a1a7330621f8b24853cb259fc89a2af85b736608",
+      "version": "3.8.1.0"
+    },
     {
       "cabal_sha256": "db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e",
       "flags": [
@@ -122,6 +144,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -134,13 +165,16 @@
       "version": "0.8.3"
     },
     {
-      "cabal_sha256": "2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada",
-      "flags": [],
-      "package": "data-array-byte",
-      "revision": 1,
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
       "source": "hackage",
-      "src_sha256": "1bb6eca0b3e02d057fe7f4e14c81ef395216f421ab30fdaa1b18017c9c025600",
-      "version": "0.1.0.1"
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
     },
     {
       "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
diff --git a/hadrian/bootstrap/plan-bootstrap-9_2_2.json b/hadrian/bootstrap/plan-bootstrap-9_2_2.json
index 5bc41d78c21e..25cffab58274 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_2_2.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_2_2.json
@@ -122,6 +122,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -133,6 +142,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada",
       "flags": [],
diff --git a/hadrian/bootstrap/plan-bootstrap-9_2_3.json b/hadrian/bootstrap/plan-bootstrap-9_2_3.json
index a06817a41e07..aacc2f6f6a4d 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_2_3.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_2_3.json
@@ -122,6 +122,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -133,6 +142,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada",
       "flags": [],
diff --git a/hadrian/bootstrap/plan-bootstrap-9_2_4.json b/hadrian/bootstrap/plan-bootstrap-9_2_4.json
index 0a2cfb9697d5..c53e7c358692 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_2_4.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_2_4.json
@@ -122,6 +122,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -133,6 +142,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada",
       "flags": [],
diff --git a/hadrian/bootstrap/plan-bootstrap-9_2_5.json b/hadrian/bootstrap/plan-bootstrap-9_2_5.json
index 282db35f7521..f2f1b94b9e13 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_2_5.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_2_5.json
@@ -122,6 +122,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -133,6 +142,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada",
       "flags": [],
diff --git a/hadrian/bootstrap/plan-bootstrap-9_2_6.json b/hadrian/bootstrap/plan-bootstrap-9_2_6.json
index efea524d5214..f89c2dccde03 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_2_6.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_2_6.json
@@ -122,6 +122,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -133,6 +142,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada",
       "flags": [],
diff --git a/hadrian/bootstrap/plan-bootstrap-9_2_7.json b/hadrian/bootstrap/plan-bootstrap-9_2_7.json
index abfe16be3909..3ad6dc11037c 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_2_7.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_2_7.json
@@ -122,6 +122,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -133,6 +142,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "2ef1bd3511e82ba56f7f23cd793dd2da84338a1e7c2cbea5b151417afe3baada",
       "flags": [],
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_1.json b/hadrian/bootstrap/plan-bootstrap-9_4_1.json
index 2cb99b8f71c6..34cbc95a5e34 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_4_1.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_1.json
@@ -126,6 +126,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -137,6 +146,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
       "flags": [],
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_2.json b/hadrian/bootstrap/plan-bootstrap-9_4_2.json
index a17b217d1eae..6ce98ec15749 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_4_2.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_2.json
@@ -126,6 +126,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -137,6 +146,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
       "flags": [],
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_3.json b/hadrian/bootstrap/plan-bootstrap-9_4_3.json
index 82c6baa824a1..017c37b1eb5c 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_4_3.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_3.json
@@ -126,6 +126,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -137,6 +146,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
       "flags": [],
diff --git a/hadrian/bootstrap/plan-bootstrap-9_4_4.json b/hadrian/bootstrap/plan-bootstrap-9_4_4.json
index 5420b39c7359..ed9ddbef9c48 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_4_4.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_4_4.json
@@ -126,6 +126,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -137,6 +146,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
       "flags": [],
diff --git a/hadrian/bootstrap/plan-bootstrap-9_6_1.json b/hadrian/bootstrap/plan-bootstrap-9_6_1.json
index eee2bfbc1956..5dedb0dced9c 100644
--- a/hadrian/bootstrap/plan-bootstrap-9_6_1.json
+++ b/hadrian/bootstrap/plan-bootstrap-9_6_1.json
@@ -144,6 +144,15 @@
       "src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
       "version": "2.14.2"
     },
+    {
+      "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+      "flags": [],
+      "package": "base16-bytestring",
+      "revision": 0,
+      "source": "hackage",
+      "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
+      "version": "1.0.2.0"
+    },
     {
       "cabal_sha256": "a692159828c2cd278eaec317b3a7e9fb6d7b787c8a19f086004d15d9fa1fd72c",
       "flags": [
@@ -155,6 +164,18 @@
       "src_sha256": "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1",
       "version": "0.8.3"
     },
+    {
+      "cabal_sha256": "72ce9095872eae653addca5f412ac8070d6282d8e1c8578c2237c33f2cbbf4bc",
+      "flags": [
+        "-exe",
+        "+use-cbits"
+      ],
+      "package": "cryptohash-sha256",
+      "revision": 2,
+      "source": "hackage",
+      "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
+      "version": "0.11.102.1"
+    },
     {
       "cabal_sha256": "3ac58d7341976173d1052e7b2837d119212d9afcf911735667c7f1ab67aec25f",
       "flags": [],
diff --git a/hadrian/hadrian.cabal b/hadrian/hadrian.cabal
index b0c4533b36fc..2311e9601fce 100644
--- a/hadrian/hadrian.cabal
+++ b/hadrian/hadrian.cabal
@@ -55,6 +55,7 @@ executable hadrian
                        , Hadrian.BuildPath
                        , Hadrian.Expression
                        , Hadrian.Haskell.Cabal
+                       , Hadrian.Haskell.Hash
                        , Hadrian.Haskell.Cabal.Type
                        , Hadrian.Haskell.Cabal.Parse
                        , Hadrian.Oracles.ArgsHash
@@ -163,6 +164,8 @@ executable hadrian
                        , transformers         >= 0.4     && < 0.7
                        , unordered-containers >= 0.2.1   && < 0.3
                        , text                 >= 1.2     && < 3
+                       , cryptohash-sha256    >= 0.11    && < 0.12
+                       , base16-bytestring    >= 0.1.1 && < 1.1.0.0
     ghc-options:       -Wall
                        -Wincomplete-record-updates
                        -Wredundant-constraints
diff --git a/hadrian/src/CommandLine.hs b/hadrian/src/CommandLine.hs
index 6fc74af5d3cb..9de13ef89eac 100644
--- a/hadrian/src/CommandLine.hs
+++ b/hadrian/src/CommandLine.hs
@@ -1,7 +1,7 @@
 module CommandLine (
     optDescrs, cmdLineArgsMap, cmdFlavour, lookupFreeze1, lookupFreeze2, lookupSkipDepends,
     cmdBignum, cmdBignumCheck, cmdProgressInfo, cmdCompleteSetting,
-    cmdDocsArgs, lookupBuildRoot, TestArgs(..), TestSpeed(..), defaultTestArgs,
+    cmdDocsArgs, cmdUnitIdHash, lookupBuildRoot, TestArgs(..), TestSpeed(..), defaultTestArgs,
     cmdPrefix, DocArgs(..), defaultDocArgs
     ) where
 
@@ -28,6 +28,7 @@ data CommandLineArgs = CommandLineArgs
     , freeze1        :: Bool
     , freeze2        :: Bool
     , skipDepends    :: Bool
+    , unitIdHash     :: Bool
     , bignum         :: Maybe String
     , bignumCheck    :: Bool
     , progressInfo   :: ProgressInfo
@@ -47,6 +48,7 @@ defaultCommandLineArgs = CommandLineArgs
     , freeze1        = False
     , freeze2        = False
     , skipDepends    = False
+    , unitIdHash     = False
     , bignum         = Nothing
     , bignumCheck    = False
     , progressInfo   = Brief
@@ -136,6 +138,9 @@ readFreeze1 = Right $ \flags -> flags { freeze1 = True }
 readFreeze2 = Right $ \flags -> flags { freeze1 = True, freeze2 = True }
 readSkipDepends = Right $ \flags -> flags { skipDepends = True }
 
+readUnitIdHash :: Either String (CommandLineArgs -> CommandLineArgs)
+readUnitIdHash = Right $ \flags -> flags { unitIdHash = True }
+
 readProgressInfo :: String -> Either String (CommandLineArgs -> CommandLineArgs)
 readProgressInfo ms =
   case lower ms of
@@ -269,6 +274,8 @@ optDescrs =
       "Freeze Stage1 GHC."
     , Option [] ["freeze2"] (NoArg readFreeze2)
       "Freeze Stage2 GHC."
+    , Option [] ["hash-unit-ids"] (NoArg readUnitIdHash)
+      "Include package hashes in unit ids."
     , Option [] ["skip-depends"] (NoArg readSkipDepends)
       "Skip rebuilding dependency information."
     , Option [] ["bignum"] (OptArg readBignum "BACKEND")
@@ -380,6 +387,9 @@ lookupFreeze2 = freeze2 . lookupExtra defaultCommandLineArgs
 lookupSkipDepends :: Map.HashMap TypeRep Dynamic -> Bool
 lookupSkipDepends = skipDepends . lookupExtra defaultCommandLineArgs
 
+cmdUnitIdHash :: Action Bool
+cmdUnitIdHash = unitIdHash <$> cmdLineArgs
+
 cmdBignum :: Action (Maybe String)
 cmdBignum = bignum <$> cmdLineArgs
 
diff --git a/hadrian/src/Context.hs b/hadrian/src/Context.hs
index b8fb5fca2638..d09228b00442 100644
--- a/hadrian/src/Context.hs
+++ b/hadrian/src/Context.hs
@@ -70,15 +70,15 @@ distDir st = do
     hostArch       <- cabalArchString <$> setting arch
     return $ hostArch ++ "-" ++ hostOs ++ "-ghc-" ++ version
 
-pkgFileName :: Package -> String -> String -> Action FilePath
-pkgFileName package prefix suffix = do
-    pid  <- pkgIdentifier package
+pkgFileName :: Context -> Package -> String -> String -> Action FilePath
+pkgFileName context package prefix suffix = do
+    pid  <- pkgUnitId (stage context) package
     return $ prefix ++ pid ++ suffix
 
 pkgFile :: Context -> String -> String -> Action FilePath
 pkgFile context@Context {..} prefix suffix = do
     path <- buildPath context
-    fileName <- pkgFileName package prefix suffix
+    fileName <- pkgFileName context package prefix suffix
     return $ path -/- fileName
 
 -- | Path to inplace package configuration file of a given 'Context'.
@@ -95,9 +95,9 @@ pkgSetupConfigFile context = pkgSetupConfigDir context <&> (-/- "setup-config")
 -- | Path to the haddock file of a given 'Context', e.g.:
 -- @_build/stage1/libraries/array/doc/html/array/array.haddock@.
 pkgHaddockFile :: Context -> Action FilePath
-pkgHaddockFile Context {..} = do
+pkgHaddockFile context@Context {..} = do
     root <- buildRoot
-    version <- pkgIdentifier package
+    version <- pkgUnitId stage package
     return $ root -/- "doc/html/libraries" -/- version -/- pkgName package <.> "haddock"
 
 -- | Path to the registered ghc-pkg library file of a given 'Context', e.g.:
@@ -106,7 +106,7 @@ pkgHaddockFile Context {..} = do
 pkgRegisteredLibraryFile :: Context -> Action FilePath
 pkgRegisteredLibraryFile context@Context {..} = do
     libDir    <- libPath context
-    pkgId     <- pkgIdentifier package
+    pkgId     <- pkgUnitId stage package
     fileName  <- pkgRegisteredLibraryFileName context
     distDir   <- distDir stage
     return $ if Dynamic `wayUnit` way
@@ -115,9 +115,9 @@ pkgRegisteredLibraryFile context@Context {..} = do
 
 -- | Just the final filename portion of pkgRegisteredLibraryFile
 pkgRegisteredLibraryFileName :: Context -> Action FilePath
-pkgRegisteredLibraryFileName Context{..} = do
+pkgRegisteredLibraryFileName context@Context{..} = do
     extension <- libsuf stage way
-    pkgFileName package "libHS" extension
+    pkgFileName context package "libHS" extension
 
 
 -- | Path to the library file of a given 'Context', e.g.:
@@ -136,8 +136,8 @@ pkgGhciLibraryFile context@Context {..} = do
 
 -- | Path to the configuration file of a given 'Context'.
 pkgConfFile :: Context -> Action FilePath
-pkgConfFile Context {..} = do
-    pid  <- pkgIdentifier package
+pkgConfFile context@Context {..} = do
+    pid  <- pkgUnitId stage package
     dbPath <- packageDbPath (PackageDbLoc stage iplace)
     return $ dbPath -/- pid <.> "conf"
 
diff --git a/hadrian/src/Hadrian/BuildPath.hs b/hadrian/src/Hadrian/BuildPath.hs
index 8d2806b58799..342a2ca7eb35 100644
--- a/hadrian/src/Hadrian/BuildPath.hs
+++ b/hadrian/src/Hadrian/BuildPath.hs
@@ -110,17 +110,28 @@ parseWayUnit = Parsec.choice
     , Parsec.char 'l'     *> pure Logging
     ] Parsec.<?> "way unit (thr, debug, dyn, p, l)"
 
--- | Parse a @"pkgname-pkgversion"@ string into the package name and the
+-- | Parse a @"pkgname-pkgversion-pkghash"@ string into the package name and the
 -- integers that make up the package version.
-parsePkgId :: Parsec.Parsec String () (String, [Integer])
-parsePkgId = parsePkgId' "" Parsec.<?> "package identifier (<name>-<version>)"
+--
+-- If no hash was assigned, an empty string is returned in its place.
+parsePkgId :: Parsec.Parsec String () (String, [Integer], String)
+parsePkgId = parsePkgId' "" Parsec.<?> "package identifier (<name>-<version>(-<hash>?))"
   where
     parsePkgId' currName = do
         s <- Parsec.many1 Parsec.alphaNum
         _ <- Parsec.char '-'
         let newName = if null currName then s else currName ++ "-" ++ s
-        Parsec.choice [ (newName,) <$> parsePkgVersion
-                      , parsePkgId' newName ]
+        Parsec.choice
+          [ (,,) newName <$> parsePkgVersion
+                         <*> Parsec.option "" (Parsec.try $ do
+                              _ <- Parsec.char '-'
+                              -- Ensure we're not parsing a libDynName as a hash
+                              _ <- Parsec.notFollowedBy (Parsec.string "ghc" *> parsePkgVersion)
+                              parsePkgHash)
+          , parsePkgId' newName ]
+
+parsePkgHash :: Parsec.Parsec String () String
+parsePkgHash = Parsec.many1 Parsec.alphaNum
 
 -- | Parse "."-separated integers that describe a package's version.
 parsePkgVersion :: Parsec.Parsec String () [Integer]
diff --git a/hadrian/src/Hadrian/Builder/Git.hs b/hadrian/src/Hadrian/Builder/Git.hs
index 6875a48fbd98..0f073ac4634f 100644
--- a/hadrian/src/Hadrian/Builder/Git.hs
+++ b/hadrian/src/Hadrian/Builder/Git.hs
@@ -2,12 +2,13 @@ module Hadrian.Builder.Git (gitArgs) where
 
 import Expression
 
--- | Default command line arguments for invoking the archiving utility @tar@.
+-- | Default command line arguments for invoking the archiving utility @git@.
 gitArgs :: Args
 gitArgs = mconcat
   [ builder (Git ListFiles) ? mconcat
       [ arg "ls-files"
       , arg "--recurse-submodules"
       , arg "-z"
+      , getInputs
       ]
   ]
diff --git a/hadrian/src/Hadrian/Haskell/Cabal.hs b/hadrian/src/Hadrian/Haskell/Cabal.hs
index f5864b6297cb..1220e6bbe426 100644
--- a/hadrian/src/Hadrian/Haskell/Cabal.hs
+++ b/hadrian/src/Hadrian/Haskell/Cabal.hs
@@ -10,8 +10,8 @@
 -- Cabal files.
 -----------------------------------------------------------------------------
 module Hadrian.Haskell.Cabal (
-    pkgVersion, pkgIdentifier, pkgSynopsis, pkgDescription, pkgDependencies,
-    pkgGenericDescription, cabalArchString, cabalOsString,
+    pkgVersion, pkgUnitId, pkgSynopsis, pkgDescription, pkgSimpleIdentifier,
+    pkgDependencies, pkgGenericDescription, cabalArchString, cabalOsString
     ) where
 
 import Development.Shake
@@ -20,15 +20,19 @@ import Distribution.PackageDescription (GenericPackageDescription)
 import Hadrian.Haskell.Cabal.Type
 import Hadrian.Oracles.Cabal
 import Hadrian.Package
+import {-# SOURCE #-} Hadrian.Haskell.Hash (pkgUnitId)
+
 
 -- | Read a Cabal file and return the package version. The Cabal file is tracked.
 pkgVersion :: Package -> Action String
 pkgVersion = fmap version . readPackageData
 
--- | Read a Cabal file and return the package identifier, e.g. @base-4.10.0.0@.
+-- | Read a Cabal file and return the package identifier without a hash, e.g. @base-4.10.0.0@.
 -- The Cabal file is tracked.
-pkgIdentifier :: Package -> Action String
-pkgIdentifier package = do
+--
+-- For an identifier complete with the hash use 'pkgUnitId'
+pkgSimpleIdentifier :: Package -> Action String
+pkgSimpleIdentifier package = do
     cabal <- readPackageData package
     return $ if null (version cabal)
         then name cabal
@@ -72,3 +76,4 @@ cabalOsString "mingw32"  = "windows"
 cabalOsString "darwin"   = "osx"
 cabalOsString "solaris2" = "solaris"
 cabalOsString other      = other
+
diff --git a/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs b/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs
index 74ae8fb16abf..760f4295c93d 100644
--- a/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs
+++ b/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs
@@ -63,7 +63,6 @@ import Hadrian.Target
 import Base
 import Builder
 import Context
-import Flavour
 import Settings
 import Distribution.Simple.LocalBuildInfo
 import qualified Distribution.Simple.Register as C
@@ -344,7 +343,7 @@ registerPackage rs context = do
     pd <- packageDescription <$> readContextData context
     db_path <- packageDbPath (PackageDbLoc (stage context) (iplace context))
     dist_dir <- Context.buildPath context
-    pid <- pkgIdentifier (package context)
+    pid <- pkgUnitId (stage context) (package context)
     -- Note: the @cPath@ is ignored. The path that's used is the 'buildDir' path
     -- from the local build info @lbi@.
     lbi <- liftIO $ C.getPersistBuildConfig cPath
@@ -356,12 +355,12 @@ registerPackage rs context = do
 -- This is copied and simplified from Cabal, because we want to install the package
 -- into a different package database to the one it was configured against.
 register :: FilePath
-         -> FilePath
+         -> String -- ^ Package Identifier
          -> FilePath
          -> C.PackageDescription
          -> LocalBuildInfo
          -> IO ()
-register pkg_db conf_file build_dir pd lbi
+register pkg_db pid build_dir pd lbi
   = withLibLBI pd lbi $ \lib clbi -> do
 
     absPackageDBs    <- C.absolutePackageDBPaths packageDbs
@@ -372,13 +371,13 @@ register pkg_db conf_file build_dir pd lbi
     writeRegistrationFile installedPkgInfo
 
   where
-    regFile             = conf_file
+    regFile   = pkg_db </> pid <.> "conf"
     reloc     = relocatable lbi
     -- Using a specific package db here is why we have to copy the function from Cabal.
     packageDbs = [C.SpecificPackageDB pkg_db]
 
     writeRegistrationFile installedPkgInfo = do
-      writeUTF8File (pkg_db </> regFile <.> "conf") (CP.showInstalledPackageInfo installedPkgInfo)
+      writeUTF8File regFile (CP.showInstalledPackageInfo installedPkgInfo)
 
 
 -- | Build autogenerated files @autogen/cabal_macros.h@ and @autogen/Paths_*.hs@.
diff --git a/hadrian/src/Hadrian/Haskell/Hash.hs b/hadrian/src/Hadrian/Haskell/Hash.hs
new file mode 100644
index 000000000000..ee644168e22c
--- /dev/null
+++ b/hadrian/src/Hadrian/Haskell/Hash.hs
@@ -0,0 +1,257 @@
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeFamilies #-}
+module Hadrian.Haskell.Hash (pkgUnitId, pkgHashOracle) where
+
+import Development.Shake
+
+import Hadrian.Haskell.Cabal.Type
+import Hadrian.Haskell.Cabal
+import Hadrian.Oracles.Cabal
+import Hadrian.Package
+
+import qualified Crypto.Hash.SHA256     as SHA256
+import qualified Data.ByteString.Base16 as Base16
+import qualified Data.ByteString.Char8  as BS
+import Data.ByteString as BS (readFile)
+import Data.Map (Map)
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+import Data.Maybe
+import Data.List
+import Context.Type
+import Oracles.Setting
+import Hadrian.Target
+import Hadrian.Expression
+import Builder
+import Flavour.Type
+import Settings
+import Way
+import Packages
+import Development.Shake.Classes
+import Control.Monad
+import Utilities
+import Base
+import Context
+import System.Directory.Extra (listFilesRecursive)
+import CommandLine
+import Control.Arrow (first)
+
+
+-- | Read a Cabal file and return the package identifier, e.g. @base-4.10.0.0-abcd@.
+-- This needs to be an oracle so it's cached
+pkgUnitId :: Stage -> Package -> Action String
+pkgUnitId stg pkg = do
+  pid   <- pkgSimpleIdentifier pkg
+  use_hash <- cmdUnitIdHash
+  if pkgName pkg == "rts"
+     -- The unit-id will change depending on the way, we need to treat the rts separately
+     then pure pid
+     else do
+        -- Other boot packages still hardcode their unit-id to just <name>, but we
+        -- can have hadrian generate a different unit-id for them just as cabal does
+        -- because the boot packages unit-ids are overriden by setting -this-unit-id
+        -- in the cabal file
+        hash <- if use_hash
+                  then do
+                    phash <- pkgHash stg pkg
+                    return $ truncateHash 4 phash
+                  else
+                    return "inplace"
+        pure $ pid <> "-" <> hash
+
+  where
+    truncateHash :: Int -> String -> String
+    truncateHash = take
+
+data PackageHashInputs = PackageHashInputs {
+       pkgHashPkgId         :: String, -- ^ name-version
+       pkgHashComponent     :: PackageType,
+       pkgHashSourceHash    :: BS.ByteString,
+       -- pkgHashPkgConfigDeps :: Set (PkgconfigName, Maybe PkgconfigVersion),
+       pkgHashDirectDeps    :: Set.Set String,
+       pkgHashOtherConfig   :: PackageHashConfigInputs
+     }
+
+-- | Those parts of the package configuration that contribute to the
+-- package hash computed by hadrian (which is simpler than cabal's).
+--
+-- setting in Oracle.setting, which come from system.config
+data PackageHashConfigInputs = PackageHashConfigInputs {
+       pkgHashCompilerId          :: String,
+       pkgHashPlatform            :: String,
+       pkgHashFlagAssignment      :: [String], -- complete not partial
+       pkgHashVanillaLib          :: Bool,
+       pkgHashSharedLib           :: Bool,
+       pkgHashDynExe              :: Bool,
+       pkgHashGHCiLib             :: Bool,
+       pkgHashProfLib             :: Bool,
+       pkgHashProfExe             :: Bool,
+       pkgHashSplitObjs           :: Bool,
+       pkgHashSplitSections       :: Bool,
+       pkgHashStripLibs           :: Bool,
+       pkgHashStripExes           :: Bool,
+       pkgHashProgramArgs         :: Map String [String]
+       -- pkgHashProgPrefix          :: Maybe PathTemplate,
+       -- pkgHashProgSuffix          :: Maybe PathTemplate,
+       -- pkgHashPackageDbs          :: [Maybe PackageDB]
+       -- Captured by extraArgs
+--       pkgHashDebugInfo           :: DebugInfoLevel,
+--       pkgHashCoverage            :: Bool,
+--       pkgHashFullyStaticExe      :: Bool,
+--       pkgHashProfLibDetail       :: ProfDetailLevel,
+--       pkgHashOptimization        :: Int,
+--       pkgHashProfExeDetail       :: ProfDetailLevel,
+--       pkgHashExtraLibDirs        :: [FilePath],
+--       pkgHashExtraLibDirsStatic  :: [FilePath],
+--       pkgHashExtraFrameworkDirs  :: [FilePath],
+--       pkgHashExtraIncludeDirs    :: [FilePath]
+     }
+  deriving Show
+
+newtype PkgHashKey = PkgHashKey (Stage, Package)
+  deriving (Binary, Eq, Hashable, NFData, Show, Typeable)
+type instance RuleResult PkgHashKey = String
+
+pkgHash :: Stage -> Package -> Action String
+pkgHash stg p = askOracle . PkgHashKey $ (stg, p)
+
+-- Needs to be an oracle to be cached. Called lots of times.
+pkgHashOracle :: Rules ()
+pkgHashOracle = void $ addOracleCache $ \(PkgHashKey (stag, pkg)) -> do
+  let vanilla_ctx = vanillaContext stag pkg
+  pkg_data <- readPackageData pkg
+  name <- pkgSimpleIdentifier pkg
+  stagePkgs <- stagePackages stag
+
+  depsHashes <- sequence [pkgHash stag pkg' | pkg' <- packageDependencies pkg_data, pkg' `elem` stagePkgs]
+
+  flav <- flavour
+  let flavourArgs = extraArgs flav
+
+  targetOs       <- setting TargetOs
+  projectVersion <- setting ProjectVersion
+  let pkgHashCompilerId = "ghc-" ++ projectVersion
+      pkgHashPlatform = targetOs
+
+  libWays <- interpretInContext vanilla_ctx (libraryWays flav)
+  dyn_ghc <- dynamicGhcPrograms flav
+  flags <-  interpret (target vanilla_ctx (Cabal Flags stag) [] []) getArgs
+  let pkgHashFlagAssignment = flags
+      pkgHashVanillaLib = vanilla `Set.member` libWays
+      pkgHashSharedLib = dynamic `Set.member` libWays
+      pkgHashDynExe = dyn_ghc
+      pkgHashGHCiLib = False
+      pkgHashProfLib = profiling `Set.member` libWays
+      pkgHashProfExe = pkg == ghc && ghcProfiled flav stag
+      pkgHashSplitObjs = False -- Deprecated
+      pkgHashSplitSections = ghcSplitSections flav
+      pkgHashStripExes = False
+      pkgHashStripLibs = False
+
+  pkgHashProgramArgs <- Map.unions <$> (forM (Set.toList libWays) $ \lib_way -> do
+    let ctx = vanilla_ctx { way = lib_way }
+    ghcArgs <- interpret (target ctx (Ghc CompileHs stag) [] []) flavourArgs
+    ghcCArgs <- interpret (target ctx (Ghc CompileCWithGhc stag) [] []) flavourArgs
+    linkArgs <- interpret (target ctx (Ghc LinkHs stag) [] []) flavourArgs
+    ccArgs  <- interpret (target ctx (Cc CompileC stag) [] []) flavourArgs
+    hsc2hsArgs <- interpret (target ctx (Hsc2Hs stag) [] []) flavourArgs
+    -- TODO: Other arguments for other things (a user could pass extra options to any
+    -- builder we know about and we need to enumerate them here)
+    return $ Map.fromList (map (first (++ waySuffix lib_way))
+                           [("ghc", ghcArgs)
+                           ,("ghc-c", ghcCArgs)
+                           ,("ghc-link", linkArgs)
+                           ,("hsc2hs", hsc2hsArgs)
+                           ,("cc", ccArgs) ]))
+
+  let other_config = PackageHashConfigInputs{..}
+
+  files <- allFilesInDirectory (pkgPath pkg)
+  need files
+  files_hash <- liftIO (SHA256.finalize <$> hashFiles (SHA256.init) files)
+
+  return $ BS.unpack $ Base16.encode $ SHA256.hash $
+    renderPackageHashInputs $ PackageHashInputs
+    {
+       pkgHashPkgId       = name
+    ,  pkgHashComponent   = pkgType pkg
+    ,  pkgHashSourceHash  = files_hash
+    ,  pkgHashDirectDeps  = Set.fromList depsHashes
+    ,  pkgHashOtherConfig = other_config
+    }
+
+allFilesInDirectory :: FilePath -> Action [FilePath]
+allFilesInDirectory dir = liftIO $ listFilesRecursive dir
+
+-- Either use git ls-tree if we are in a git repo, otherwise just get all the
+-- files in the given directory.
+{- Deb9 toolchain is too old to support git ls-tree properly
+  git_tree <- isInGitTree
+  if git_tree
+    then do
+      let gitFiles = filter fileFilter . split (=='\NUL')
+          fileFilter file = not (null file) && ((dir ++ "/*") ?== file)
+      gitFiles <$> askWithResources [] (target (vanillaContext stage0Boot compiler)  -- This value doesn't matter.
+                                               (Git ListFiles) [dir] [])
+    else
+      liftIO $ listFilesRecursive dir
+
+
+isInGitTree :: Action Bool
+isInGitTree = do
+  git_commit <- setting ProjectGitCommitId
+  -- git_commit is not set if we are in a source dist
+  return $ not ("" == git_commit)
+-}
+
+
+
+hashFiles :: SHA256.Ctx -> [FilePath] -> IO SHA256.Ctx
+hashFiles = foldM hashFile
+
+hashFile :: SHA256.Ctx -> FilePath -> IO SHA256.Ctx
+hashFile !ctx fp = do
+  contents <- BS.readFile fp
+  return $! SHA256.update ctx contents
+
+
+renderPackageHashInputs :: PackageHashInputs -> BS.ByteString
+renderPackageHashInputs PackageHashInputs{
+                          pkgHashPkgId,
+                          pkgHashComponent,
+                          pkgHashSourceHash,
+                          pkgHashDirectDeps,
+                          pkgHashOtherConfig =
+                            PackageHashConfigInputs{..}
+                        } =
+    -- The purpose of this somewhat laboured rendering (e.g. why not just
+    -- use show?) is so that existing package hashes do not change
+    -- unnecessarily when new configuration inputs are added into the hash.
+    BS.pack $ unlines $ catMaybes $
+      [ entry "pkgid"       show pkgHashPkgId
+      , entry "component"  show pkgHashComponent
+      , entry "src"         show pkgHashSourceHash
+      , entry "deps"        (intercalate ", " . map show
+                                              . Set.toList) pkgHashDirectDeps
+        -- and then all the config
+      , entry "compilerid"  show pkgHashCompilerId
+      , entry "platform" show pkgHashPlatform
+      , opt   "flags" mempty show pkgHashFlagAssignment
+      , opt   "vanilla-lib" True  show pkgHashVanillaLib
+      , opt   "shared-lib"  False show pkgHashSharedLib
+      , opt   "dynamic-exe" False show pkgHashDynExe
+      , opt   "ghci-lib"    False show pkgHashGHCiLib
+      , opt   "prof-lib"    False show pkgHashProfLib
+      , opt   "prof-exe"    False show pkgHashProfExe
+      , opt   "split-objs"   False show pkgHashSplitObjs
+      , opt   "split-sections" False show pkgHashSplitSections
+      , opt   "stripped-lib" False show pkgHashStripLibs
+      , opt   "stripped-exe" True  show pkgHashStripExes
+      ] ++ Map.foldrWithKey (\prog args acc -> opt (prog ++ "-options") [] unwords args : acc) [] pkgHashProgramArgs
+  where
+    entry key     format value = Just (key ++ ": " ++ format value)
+    opt   key def format value
+         | value == def = Nothing
+         | otherwise    = entry key format value
diff --git a/hadrian/src/Hadrian/Haskell/Hash.hs-boot b/hadrian/src/Hadrian/Haskell/Hash.hs-boot
new file mode 100644
index 000000000000..b6fc67e36f1c
--- /dev/null
+++ b/hadrian/src/Hadrian/Haskell/Hash.hs-boot
@@ -0,0 +1,8 @@
+module Hadrian.Haskell.Hash where
+
+import Hadrian.Package
+import Stage
+import Development.Shake
+
+pkgUnitId :: Stage -> Package -> Action String
+
diff --git a/hadrian/src/Hadrian/Package.hs b/hadrian/src/Hadrian/Package.hs
index 6bc31d7c58b9..6291edee7408 100644
--- a/hadrian/src/Hadrian/Package.hs
+++ b/hadrian/src/Hadrian/Package.hs
@@ -81,4 +81,4 @@ instance NFData   PackageType
 
 instance Binary   Package
 instance Hashable Package
-instance NFData   Package
\ No newline at end of file
+instance NFData   Package
diff --git a/hadrian/src/Rules.hs b/hadrian/src/Rules.hs
index 7cfeb65e5ac4..55de341f8e00 100644
--- a/hadrian/src/Rules.hs
+++ b/hadrian/src/Rules.hs
@@ -8,6 +8,7 @@ import qualified Hadrian.Oracles.Cabal.Rules
 import qualified Hadrian.Oracles.DirectoryContents
 import qualified Hadrian.Oracles.Path
 import qualified Hadrian.Oracles.TextFile
+import qualified Hadrian.Haskell.Hash
 
 import Expression
 import qualified Oracles.Flavour
@@ -142,6 +143,7 @@ oracleRules :: Rules ()
 oracleRules = do
     Hadrian.Oracles.ArgsHash.argsHashOracle trackArgument getArgs
     Hadrian.Oracles.Cabal.Rules.cabalOracle
+    Hadrian.Haskell.Hash.pkgHashOracle
     Hadrian.Oracles.DirectoryContents.directoryContentsOracle
     Hadrian.Oracles.Path.pathOracle
     Hadrian.Oracles.TextFile.textFileOracle
diff --git a/hadrian/src/Rules/BinaryDist.hs b/hadrian/src/Rules/BinaryDist.hs
index ede1a5c42027..cca28c10f461 100644
--- a/hadrian/src/Rules/BinaryDist.hs
+++ b/hadrian/src/Rules/BinaryDist.hs
@@ -132,7 +132,8 @@ bindistRules = do
         version        <- setting ProjectVersion
         targetPlatform <- setting TargetPlatformFull
         distDir        <- Context.distDir Stage1
-        rtsDir         <- pkgIdentifier rts
+        rtsDir         <- pkgUnitId Stage1 rts
+        -- let rtsDir  = "rts"
 
         let ghcBuildDir      = root -/- stageString Stage1
             bindistFilesDir  = root -/- "bindist" -/- ghcVersionPretty
diff --git a/hadrian/src/Rules/CabalReinstall.hs b/hadrian/src/Rules/CabalReinstall.hs
index 2bfc8f92b07c..57baa79d56eb 100644
--- a/hadrian/src/Rules/CabalReinstall.hs
+++ b/hadrian/src/Rules/CabalReinstall.hs
@@ -10,7 +10,7 @@ import Utilities
 import qualified System.Directory.Extra as IO
 import Data.Either
 import Rules.BinaryDist
-import Hadrian.Haskell.Cabal (pkgIdentifier)
+import Hadrian.Haskell.Cabal (pkgUnitId)
 import Oracles.Setting
 
 {-
@@ -54,7 +54,8 @@ cabalBuildRules = do
         need (lib_targets ++ (map (\(_, p) -> p) (bin_targets ++ iserv_targets)))
 
         distDir        <- Context.distDir Stage1
-        rtsDir         <- pkgIdentifier rts
+        rtsDir         <- pkgUnitId Stage1 rts
+        -- let rtsDir = "rts"
 
         let ghcBuildDir      = root -/- stageString Stage1
             rtsIncludeDir    = ghcBuildDir -/- "lib" -/- distDir -/- rtsDir
diff --git a/hadrian/src/Rules/Documentation.hs b/hadrian/src/Rules/Documentation.hs
index 6e6654278f15..858ce9b773f2 100644
--- a/hadrian/src/Rules/Documentation.hs
+++ b/hadrian/src/Rules/Documentation.hs
@@ -293,7 +293,7 @@ parsePkgDocTarget root = do
   _ <- Parsec.string root *> Parsec.optional (Parsec.char '/')
   _ <- Parsec.string (htmlRoot ++ "/")
   _ <- Parsec.string "libraries/"
-  (pkgname, _) <- parsePkgId <* Parsec.char '/'
+  (pkgname, _, _) <- parsePkgId <* Parsec.char '/'
   Parsec.choice
     [ Parsec.try (Parsec.string "haddock-prologue.txt")
         *> pure (HaddockPrologue pkgname)
diff --git a/hadrian/src/Rules/Generate.hs b/hadrian/src/Rules/Generate.hs
index c38d454617ae..6aa9f19b471c 100644
--- a/hadrian/src/Rules/Generate.hs
+++ b/hadrian/src/Rules/Generate.hs
@@ -14,6 +14,7 @@ import Oracles.Flag
 import Oracles.ModuleFiles
 import Oracles.Setting
 import Hadrian.Haskell.Cabal.Type (PackageData(version))
+import Hadrian.Haskell.Cabal
 import Hadrian.Oracles.Cabal (readPackageData)
 import Packages
 import Rules.Libffi
@@ -483,16 +484,15 @@ generateConfigHs = do
     trackGenerateHs
     cProjectName        <- getSetting ProjectName
     cBooterVersion      <- getSetting GhcVersion
-    cProjectVersionMunged  <- getSetting ProjectVersionMunged
-    -- ROMES:TODO:HASH First we attempt a fixed unit-id with version but without hash.
-    --
-    -- We now use a more informative unit-id for ghc. See Note [GHC's Unit Id]
-    -- in GHC.Unit.Types
+    -- We now give a unit-id with a version and a hash to ghc.
+    -- See Note [GHC's Unit Id] in GHC.Unit.Types
     --
     -- It's crucial that the unit-id matches the unit-key -- ghc is no longer
     -- part of the WiringMap, so we don't to go back and forth between the
-    -- unit-id and the unit-key -- we take care here that they are the same.
-    let cProjectUnitId = "ghc-" ++ cProjectVersionMunged -- ROMES:TODO:HASH
+    -- unit-id and the unit-key -- we take care that they are the same by using
+    -- 'pkgUnitId' on 'compiler' (the ghc-library package) to create the
+    -- unit-id in both situations.
+    cProjectUnitId <- expr . (`pkgUnitId` compiler) =<< getStage
     return $ unlines
         [ "module GHC.Settings.Config"
         , "  ( module GHC.Version"
@@ -589,3 +589,5 @@ generatePlatformHostHs = do
         , "hostPlatformArchOS :: ArchOS"
         , "hostPlatformArchOS = ArchOS hostPlatformArch hostPlatformOS"
         ]
+
+
diff --git a/hadrian/src/Rules/Library.hs b/hadrian/src/Rules/Library.hs
index 2e63f1768fde..d12249073c1a 100644
--- a/hadrian/src/Rules/Library.hs
+++ b/hadrian/src/Rules/Library.hs
@@ -45,7 +45,7 @@ libraryRules = do
 registerStaticLib :: FilePath -> FilePath -> Action ()
 registerStaticLib root archivePath = do
     -- Simply need the ghc-pkg database .conf file.
-    GhcPkgPath _ stage _ (LibA name _ w)
+    GhcPkgPath _ stage _ (LibA name _ _ w)
         <- parsePath (parseGhcPkgLibA root)
                     "<.a library (register) path parser>"
                     archivePath
@@ -56,7 +56,7 @@ registerStaticLib root archivePath = do
 -- the second argument.
 buildStaticLib :: FilePath -> FilePath -> Action ()
 buildStaticLib root archivePath = do
-    l@(BuildPath _ stage _ (LibA pkgname _ way))
+    l@(BuildPath _ stage _ (LibA pkgname _ _ way))
         <- parsePath (parseBuildLibA root)
                      "<.a library (build) path parser>"
                      archivePath
@@ -75,7 +75,7 @@ buildStaticLib root archivePath = do
 registerDynamicLib :: FilePath -> String -> FilePath -> Action ()
 registerDynamicLib root suffix dynlibpath = do
     -- Simply need the ghc-pkg database .conf file.
-    (GhcPkgPath _ stage _ (LibDyn name _ w _))
+    (GhcPkgPath _ stage _ (LibDyn name _ _ w _))
         <- parsePath (parseGhcPkgLibDyn root suffix)
                             "<dyn register lib parser>"
                             dynlibpath
@@ -99,7 +99,7 @@ buildDynamicLib root suffix dynlibpath = do
 -- See Note [Merging object files for GHCi] in GHC.Driver.Pipeline.
 buildGhciLibO :: FilePath -> FilePath -> Action ()
 buildGhciLibO root ghcilibPath = do
-    l@(BuildPath _ stage _ (LibGhci _ _ _))
+    l@(BuildPath _ stage _ (LibGhci _ _ _ _))
         <- parsePath (parseBuildLibGhci root)
                      "<.o ghci lib (build) path parser>"
                      ghcilibPath
@@ -134,7 +134,7 @@ files etc.
 
 buildPackage :: FilePath -> FilePath -> Action ()
 buildPackage root fp = do
-  l@(BuildPath _ _ _ (PkgStamp _ _ way)) <- parsePath (parseStampPath root) "<.stamp parser>" fp
+  l@(BuildPath _ _ _ (PkgStamp _ _ _ way)) <- parsePath (parseStampPath root) "<.stamp parser>" fp
   let ctx = stampContext l
   srcs <- hsSources ctx
   gens <- interpretInContext ctx generatedDependencies
@@ -226,47 +226,47 @@ needLibrary cs = need =<< concatMapM (libraryTargets True) cs
 
 -- * Library paths types and parsers
 
--- | > libHS<pkg name>-<pkg version>[_<way suffix>].a
-data LibA = LibA String [Integer] Way deriving (Eq, Show)
+-- | > libHS<pkg name>-<pkg version>-<pkg hash>[_<way suffix>].a
+data LibA = LibA String [Integer] String Way deriving (Eq, Show)
 
 -- | > <so or dylib>
 data DynLibExt = So | Dylib deriving (Eq, Show)
 
--- | > libHS<pkg name>-<pkg version>[_<way suffix>]-ghc<ghc version>.<so|dylib>
-data LibDyn = LibDyn String [Integer] Way DynLibExt deriving (Eq, Show)
+-- | > libHS<pkg name>-<pkg version>-<pkg hash>[_<way suffix>]-ghc<ghc version>.<so|dylib>
+data LibDyn = LibDyn String [Integer] String Way DynLibExt deriving (Eq, Show)
 
--- | > HS<pkg name>-<pkg version>[_<way suffix>].o
-data LibGhci = LibGhci String [Integer] Way deriving (Eq, Show)
+-- | > HS<pkg name>-<pkg version>-<pkg hash>[_<way suffix>].o
+data LibGhci = LibGhci String [Integer] String Way deriving (Eq, Show)
 
 -- | Get the 'Context' corresponding to the build path for a given static library.
 libAContext :: BuildPath LibA -> Context
-libAContext (BuildPath _ stage pkgpath (LibA pkgname _ way)) =
+libAContext (BuildPath _ stage pkgpath (LibA pkgname _ _ way)) =
     Context stage pkg way Final
   where
     pkg = library pkgname pkgpath
 
 -- | Get the 'Context' corresponding to the build path for a given GHCi library.
 libGhciContext :: BuildPath LibGhci -> Context
-libGhciContext (BuildPath _ stage pkgpath (LibGhci pkgname _ way)) =
+libGhciContext (BuildPath _ stage pkgpath (LibGhci pkgname _ _ way)) =
     Context stage pkg way Final
   where
     pkg = library pkgname pkgpath
 
 -- | Get the 'Context' corresponding to the build path for a given dynamic library.
 libDynContext :: BuildPath LibDyn -> Context
-libDynContext (BuildPath _ stage pkgpath (LibDyn pkgname _ way _)) =
+libDynContext (BuildPath _ stage pkgpath (LibDyn pkgname _ _ way _)) =
     Context stage pkg way Final
   where
     pkg = library pkgname pkgpath
 
 -- | Get the 'Context' corresponding to the build path for a given static library.
 stampContext :: BuildPath PkgStamp -> Context
-stampContext (BuildPath _ stage _ (PkgStamp pkgname _ way)) =
+stampContext (BuildPath _ stage _ (PkgStamp pkgname _ _ way)) =
     Context stage pkg way Final
   where
     pkg = unsafeFindPackageByName pkgname
 
-data PkgStamp = PkgStamp String [Integer] Way deriving (Eq, Show)
+data PkgStamp = PkgStamp String [Integer] String Way deriving (Eq, Show)
 
 
 -- | Parse a path to a ghci library to be built, making sure the path starts
@@ -313,34 +313,34 @@ parseGhcPkgLibDyn root ext = parseGhcPkgPath root (parseLibDynFilename ext)
 parseLibAFilename :: Parsec.Parsec String () LibA
 parseLibAFilename = do
     _ <- Parsec.string "libHS"
-    (pkgname, pkgver) <- parsePkgId
+    (pkgname, pkgver, pkghash) <- parsePkgId
     way <- parseWaySuffix vanilla
     _ <- Parsec.string ".a"
-    return (LibA pkgname pkgver way)
+    return (LibA pkgname pkgver pkghash way)
 
 -- | Parse the filename of a ghci library to be built into a 'LibGhci' value.
 parseLibGhciFilename :: Parsec.Parsec String () LibGhci
 parseLibGhciFilename = do
     _ <- Parsec.string "HS"
-    (pkgname, pkgver) <- parsePkgId
+    (pkgname, pkgver, pkghash) <- parsePkgId
     _ <- Parsec.string "."
     way <- parseWayPrefix vanilla
     _ <- Parsec.string "o"
-    return (LibGhci pkgname pkgver way)
+    return (LibGhci pkgname pkgver pkghash way)
 
 -- | Parse the filename of a dynamic library to be built into a 'LibDyn' value.
 parseLibDynFilename :: String -> Parsec.Parsec String () LibDyn
 parseLibDynFilename ext = do
     _ <- Parsec.string "libHS"
-    (pkgname, pkgver) <- parsePkgId
+    (pkgname, pkgver, pkghash) <- parsePkgId
     way <- addWayUnit Dynamic <$> parseWaySuffix dynamic
     _ <- optional $ Parsec.string "-ghc" *> parsePkgVersion
     _ <- Parsec.string ("." ++ ext)
-    return (LibDyn pkgname pkgver way $ if ext == "so" then So else Dylib)
+    return (LibDyn pkgname pkgver pkghash way $ if ext == "so" then So else Dylib)
 
 parseStamp :: Parsec.Parsec String () PkgStamp
 parseStamp = do
     _ <- Parsec.string "stamp-"
-    (pkgname, pkgver) <- parsePkgId
+    (pkgname, pkgver, pkghash) <- parsePkgId
     way <- parseWaySuffix vanilla
-    return (PkgStamp pkgname pkgver way)
+    return (PkgStamp pkgname pkgver pkghash way)
diff --git a/hadrian/src/Rules/Register.hs b/hadrian/src/Rules/Register.hs
index 8543576215cf..967f4039263a 100644
--- a/hadrian/src/Rules/Register.hs
+++ b/hadrian/src/Rules/Register.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE TypeApplications #-}
 module Rules.Register (
     configurePackageRules, registerPackageRules, registerPackages,
     libraryTargets
@@ -20,11 +21,16 @@ import Utilities
 import Hadrian.Haskell.Cabal.Type
 import qualified Text.Parsec      as Parsec
 import qualified Data.Set         as Set
+import qualified Data.Char        as Char
+import Data.Bifunctor (bimap)
 
 import Distribution.Version (Version)
-import qualified Distribution.Parsec as Cabal
-import qualified Distribution.Types.PackageName as Cabal
 import qualified Distribution.Types.PackageId as Cabal
+import qualified Distribution.Types.PackageName as Cabal
+import qualified Distribution.Parsec as Cabal
+import qualified Distribution.Compat.Parsing as Cabal
+import qualified Distribution.Parsec.FieldLineStream as Cabal
+import qualified Distribution.Compat.CharParsing as CabalCharParsing
 
 import qualified Hadrian.Haskell.Cabal.Parse as Cabal
 import qualified System.Directory            as IO
@@ -183,7 +189,7 @@ buildConfFinal rs context@Context {..} _conf = do
     -- so that if any change ends up modifying a library (but not its .conf
     -- file), we still rebuild things that depend on it.
     dir <- (-/-) <$> libPath context <*> distDir stage
-    pkgid <- pkgIdentifier package
+    pkgid <- pkgUnitId stage package
     files <- liftIO $
       (++) <$> getDirectoryFilesIO "." [dir -/- "*libHS"++pkgid++"*"]
            <*> getDirectoryFilesIO "." [dir -/- pkgid -/- "**"]
@@ -251,11 +257,33 @@ getPackageNameFromConfFile conf
                             takeBaseName conf ++ ": " ++ err
         Right (name, _) -> return name
 
+-- | Parse a cabal-like name
 parseCabalName :: String -> Either String (String, Version)
-parseCabalName = fmap f . Cabal.eitherParsec
+-- Try to parse a name with a hash, but otherwise parse a name without one.
+parseCabalName s = bimap show id (Cabal.runParsecParser parser "<parseCabalName>" $ Cabal.fieldLineStreamFromString s)
   where
-    f :: Cabal.PackageId -> (String, Version)
-    f pkg_id = (Cabal.unPackageName $ Cabal.pkgName pkg_id, Cabal.pkgVersion pkg_id)
+    parser = Cabal.try nameWithHashParser <|> (extractVersion <$> Cabal.parsec)
+
+    extractVersion :: Cabal.PackageId -> (String, Version)
+    extractVersion pkg_id = (Cabal.unPackageName $ Cabal.pkgName pkg_id, Cabal.pkgVersion pkg_id)
+    -- Definition similar to 'Parsec PackageIdentifier' from Cabal but extended
+    -- with logic for parsing the hash (despite not returning it)
+    nameWithHashParser :: Cabal.ParsecParser (String, Version)
+    nameWithHashParser = Cabal.PP $ \_ -> do
+      xs' <- Parsec.sepBy component (Parsec.char '-')
+      case reverse xs' of
+        _hash:version_str:xs ->
+          case Cabal.simpleParsec @Version version_str of
+            Nothing -> fail ("failed to parse a version from " <> version_str)
+            Just v  ->
+              if not (null xs) && all (\c ->  all (/= '.') c && not (all Char.isDigit c)) xs
+              then return $ (intercalate "-" (reverse xs), v)
+              else fail "all digits or a dot in a portion of package name"
+        _ -> fail "couldn't parse a hash, a version and a name"
+      where
+        component = CabalCharParsing.munch1 (\c ->  Char.isAlphaNum c || c == '.')
+
+
 
 -- | Return extra library targets.
 extraTargets :: Context -> Action [FilePath]
diff --git a/hadrian/src/Settings/Builders/Cabal.hs b/hadrian/src/Settings/Builders/Cabal.hs
index 2e421857e507..75eb78ccd8b7 100644
--- a/hadrian/src/Settings/Builders/Cabal.hs
+++ b/hadrian/src/Settings/Builders/Cabal.hs
@@ -85,7 +85,7 @@ commonCabalArgs :: Stage -> Args
 commonCabalArgs stage = do
   verbosity <- expr getVerbosity
   pkg       <- getPackage
-  package_id <- expr $ pkgIdentifier pkg
+  package_id <- expr $ pkgUnitId stage pkg
   let prefix = "${pkgroot}" ++ (if windowsHost then "" else "/..")
   mconcat [ -- Don't strip libraries when cross compiling.
             -- TODO: We need to set @--with-strip=(stripCmdPath :: Action FilePath)@,
@@ -101,7 +101,7 @@ commonCabalArgs stage = do
             , arg "--cabal-file"
             , arg $ pkgCabalFile pkg
             , arg "--ipid"
-            , arg "$pkg-$version"
+            , arg package_id
             , arg "--prefix"
             , arg prefix
 
diff --git a/hadrian/src/Settings/Builders/Ghc.hs b/hadrian/src/Settings/Builders/Ghc.hs
index b211657b9e4b..2e5a15cee53d 100644
--- a/hadrian/src/Settings/Builders/Ghc.hs
+++ b/hadrian/src/Settings/Builders/Ghc.hs
@@ -246,21 +246,24 @@ wayGhcArgs = do
             , (way == debug || way == debugDynamic) ?
               pure ["-ticky", "-DTICKY_TICKY"] ]
 
+-- | Args related to correct handling of packages, such as setting
+-- -this-unit-id and passing -package-id for dependencies
 packageGhcArgs :: Args
 packageGhcArgs = do
     package <- getPackage
+    stage <- getStage
     ghc_ver <- readVersion <$> (expr . ghcVersionStage =<< getStage)
     -- ROMES: Until the boot compiler no longer needs ghc's
     -- unit-id to be "ghc", the stage0 compiler must be built
     -- with `-this-unit-id ghc`, while the wired-in unit-id of
     -- ghc is correctly set to the unit-id we'll generate for
-    -- stage1 (set in generateVersionHs in Rules.Generate).
+    -- stage1 (set in generateConfigHs in Rules.Generate).
     --
     -- However, we don't need to set the unit-id of "ghc" to "ghc" when
     -- building stage0 because we have a flag in compiler/ghc.cabal.in that is
     -- sets `-this-unit-id ghc` when hadrian is building stage0, which will
     -- overwrite this one.
-    pkgId   <- expr $ pkgIdentifier package
+    pkgId   <- expr $ pkgUnitId stage package
     mconcat [ arg "-hide-all-packages"
             , arg "-no-user-package-db"
             , arg "-package-env -"
diff --git a/hadrian/src/Settings/Builders/Haddock.hs b/hadrian/src/Settings/Builders/Haddock.hs
index 3d1fb28fc516..902b2f85e250 100644
--- a/hadrian/src/Settings/Builders/Haddock.hs
+++ b/hadrian/src/Settings/Builders/Haddock.hs
@@ -38,11 +38,13 @@ haddockBuilderArgs = mconcat
         output   <- getOutput
         pkg      <- getPackage
         root     <- getBuildRoot
+        stage    <- getStage
         context  <- getContext
         version  <- expr $ pkgVersion  pkg
         synopsis <- expr $ pkgSynopsis pkg
         haddocks <- expr $ haddockDependencies context
-        haddocks_with_versions <- expr $ sequence $ [(,h) <$> pkgIdentifier p | (p, h) <- haddocks]
+        haddocks_with_versions <- expr $ sequence $ [(,h) <$> pkgUnitId stage p | (p, h) <- haddocks]
+
         hVersion <- expr $ pkgVersion haddock
         statsDir <- expr $ haddockStatsFilesDir
         baseUrlTemplate <- expr (docsBaseUrl <$> userSetting defaultDocArgs)
diff --git a/hadrian/src/Settings/Default.hs b/hadrian/src/Settings/Default.hs
index 378fc27a949c..f725c2cc9e45 100644
--- a/hadrian/src/Settings/Default.hs
+++ b/hadrian/src/Settings/Default.hs
@@ -17,7 +17,6 @@ import qualified Data.Set as Set
 
 import qualified Hadrian.Builder.Sphinx
 import qualified Hadrian.Builder.Tar
-import Hadrian.Haskell.Cabal.Type
 
 import CommandLine
 import Expression
diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py
index 9cb3a924aba4..09ab06d469cf 100644
--- a/testsuite/driver/testlib.py
+++ b/testsuite/driver/testlib.py
@@ -969,8 +969,9 @@ def normalise_win32_io_errors(name, opts):
 
 def normalise_version_( *pkgs ):
     def normalise_version__( str ):
-        return re.sub('(' + '|'.join(map(re.escape,pkgs)) + ')-[0-9.]+(-[0-9a-f]+)?',
-                      '\\1-<VERSION>', str)
+        # (name)(-version)(-hash)(-components)
+        return re.sub('(' + '|'.join(map(re.escape,pkgs)) + ')-[0-9.]+(-[0-9a-zA-Z]+)?(-[0-9a-zA-Z]+)?',
+                      '\\1-<VERSION>-<HASH>', str)
     return normalise_version__
 
 def normalise_version( *pkgs ):
diff --git a/testsuite/tests/backpack/cabal/bkpcabal02/all.T b/testsuite/tests/backpack/cabal/bkpcabal02/all.T
index 995f94508021..ccedfce04619 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal02/all.T
+++ b/testsuite/tests/backpack/cabal/bkpcabal02/all.T
@@ -5,6 +5,6 @@ else:
 
 test('bkpcabal02',
      [extra_files(['p', 'q', 'bkpcabal02.cabal', 'Setup.hs']),
-      js_broken(22351)],
+      js_broken(22351), normalise_version('bkpcabal01')],
      run_command,
      ['$MAKE -s --no-print-directory bkpcabal02 ' + cleanup])
diff --git a/testsuite/tests/cabal/t18567/all.T b/testsuite/tests/cabal/t18567/all.T
index bbe84cda999f..a01cd396ea03 100644
--- a/testsuite/tests/cabal/t18567/all.T
+++ b/testsuite/tests/cabal/t18567/all.T
@@ -6,6 +6,7 @@ else:
 test('T18567',
      [ extra_files(['Setup.hs', 'sublib/', 'sublib-unused', 'src/', 'internal-lib.cabal'])
      , js_broken(22356)
+     , normalise_version('internal-lib')
      ],
      run_command,
      ['$MAKE -s --no-print-directory T18567 ' + cleanup])
diff --git a/testsuite/tests/driver/T16318/Makefile b/testsuite/tests/driver/T16318/Makefile
index b6566cf1459c..9a6585745cd5 100644
--- a/testsuite/tests/driver/T16318/Makefile
+++ b/testsuite/tests/driver/T16318/Makefile
@@ -5,7 +5,7 @@ include $(TOP)/mk/test.mk
 test_pe = test-package-environment
 
 T16318:
-	"$(GHC_PKG)" latest base >  $(test_pe)
+	"$(GHC_PKG)" field base id --simple-output >  $(test_pe)
 	"$(TEST_HC)" $(TEST_HC_OPTS) -v1 -ignore-dot-ghci -package-env $(test_pe) -e "putStrLn \"Hello\"" > out 2>&1
 	C=`cat out | grep "Loaded package environment" -c` ; \
 	if [ $$C != "1" ]; then false; fi
diff --git a/testsuite/tests/driver/T18125/Makefile b/testsuite/tests/driver/T18125/Makefile
index d54e05a8eeaa..fa4a3917e48d 100644
--- a/testsuite/tests/driver/T18125/Makefile
+++ b/testsuite/tests/driver/T18125/Makefile
@@ -6,8 +6,8 @@ test_pe = test-package-environment
 test_lib = containers
 
 T18125:
-	"$(GHC_PKG)" latest base >  $(test_pe)
-	"$(GHC_PKG)" latest $(test_lib) >> $(test_pe)
+	"$(GHC_PKG)" field base id --simple-output >  $(test_pe)
+	"$(GHC_PKG)" field $(test_lib) id --simple-outpu >> $(test_pe)
 	"$(TEST_HC)" $(TEST_HC_OPTS) -Wunused-packages -package-env $(test_pe) T18125.hs > out 2>&1
 	C=`cat out | grep "$(test_lib)" -c` ; \
 	if [ $$C != "1" ]; then false; fi
diff --git a/testsuite/tests/ghci/scripts/Makefile b/testsuite/tests/ghci/scripts/Makefile
index a76b8c090cc2..39c6c74dde56 100644
--- a/testsuite/tests/ghci/scripts/Makefile
+++ b/testsuite/tests/ghci/scripts/Makefile
@@ -69,4 +69,4 @@ T12023:
 
 .PHONY: T19650_setup
 T19650_setup:
-	'$(GHC_PKG)' latest base > my_package_env
+	'$(GHC_PKG)' field base id --simple-output > my_package_env
diff --git a/testsuite/tests/package/all.T b/testsuite/tests/package/all.T
index e5d7151b6724..89b2ba7a56b9 100644
--- a/testsuite/tests/package/all.T
+++ b/testsuite/tests/package/all.T
@@ -19,4 +19,4 @@ test('package09e', normal, compile_fail, ['-package "containers (Data.Map as M,
 test('package10',  normal, compile,      ['-hide-all-packages -package "ghc (GHC.Types.Unique.FM as Prelude)" '])
 
 test('T4806', normalise_version('containers'), compile_fail, ['-ignore-package containers'])
-test('T4806a', normalise_version('deepseq', 'containers'), compile_fail, ['-ignore-package deepseq'])
+test('T4806a', normalise_version('deepseq', 'containers', 'template-haskell'), compile_fail, ['-ignore-package deepseq'])
diff --git a/utils/ghc-pkg/Main.hs b/utils/ghc-pkg/Main.hs
index 8746b0296ef4..0bfc2d159a2d 100644
--- a/utils/ghc-pkg/Main.hs
+++ b/utils/ghc-pkg/Main.hs
@@ -23,6 +23,7 @@
 
 module Main (main) where
 
+import Debug.Trace
 import qualified GHC.Unit.Database as GhcPkg
 import GHC.Unit.Database hiding (mkMungePathUrl)
 import GHC.HandleEncoding
@@ -1600,7 +1601,7 @@ listPackages verbosity my_flags mPackageName mModuleName = do
 simplePackageList :: [Flag] -> [InstalledPackageInfo] -> IO ()
 simplePackageList my_flags pkgs = do
    let showPkg :: InstalledPackageInfo -> String
-       showPkg | FlagShowUnitIds `elem` my_flags = display . installedUnitId
+       showPkg | FlagShowUnitIds `elem` my_flags = traceId . display . installedUnitId
                | FlagNamesOnly `elem` my_flags   = display . mungedName . mungedId
                | otherwise                       = display . mungedId
        strs = map showPkg pkgs
-- 
GitLab