Why is it too strong to say that functional point update operations on strings are not provided, when you seem to confirm that the supported way to manipulate strings functionally is to convert them to lists first?
I did think about cache-friendliness and made them as much so as I reasonably could, mostly by trying to minimize levels of indirection; but pointers are inescapably involved, and there are limits to how cache-friendly such data structures can be.
For instance, each CHAMP node is a single CL vector; the header occupies the first few slots rather than being a separate allocated ooject.
Not OP but it looks great! Your humility is much appreciated. I am excited for the Lisp community, and will follow this approach to CL as I do with Jank's approach to Clojure.
Actually, formal verification could help massively with four of those problems — all but the first (UI/UX) and fifth (requirements will always be hard).
A change in the API of a dependency should be detected immediately and handled silently.
Reliance on unspecified behavior shouldn't happen in the first place; the client's verification would fail.
Detecting breakage caused by library changes should be where verification really shines; when you get the update, you try to re-run your verification, and if that fails, it tells you what the problem is.
As for interconnected systems, again, that's pretty much the whole point. Obviously, achieving this dream will require formalizing pretty much everything, which is well beyond our capabilities now. But eventually, with advances in AI, I think it will be possible. It will take something fundamentally better than today's LLMs, though.
The thing to understand about the LVT is that we are pretty much all already paying it; not to the city in which we live, but to the previous owners of the land we live on. When we buy a house, we have to pay the previous owner a certain amount for the land. That amount is the present value of the expected income stream that could, hypothetically, be realized by renting out the land. Divide by the number of months in our mortgage term and multiply by the interest rate, and the result is our effective monthly LVT.
All George is saying is that that money should be going to the city (or other controlling locality) instead of the previous owner, because it's the city that created the value in the first place.