Architecture §3.1 listed base, containers, text, aeson, vector. The
cabal file also depends on bytestring, filepath and directory (the
engine reads L1 from disk and speaks JSON lines over a port), and on
hspec for the test suite. Construction §1.3 already named all of them;
the architecture list had simply not kept up.
The list now matches shoresh-engine.cabal, says what each package is
for, and says where the versions are pinned. One entry is marked as it
is: `vector` is declared and no module imports it.
Doorpost @expected_hash f653ef05… → 5094e48e…, in this commit, with the
witnessed file that moved it (architecture).
Read before committing: Elixir 474/0 on seeds 0 and 42; the built
pipeline image reports specification_identity verified 5094e48e….
Seen while checking, not changed: Construction §1.3's "exact" Haskell
versions disagree with the committed cabal.project.freeze for six of
nine packages (aeson 2.2.1.0 vs 2.2.3.0, vector 0.13.1.0 vs 0.13.2.0,
bytestring 0.12.1.0 vs 0.12.2.0, filepath 1.4.200.1 vs 1.4.301.0,
directory 1.3.8.4 vs 1.3.10.1, hspec 2.11.7 vs 2.11.16). The freeze is
what every image has been built from.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>