it happened a couple of times already that a “substitute*” expression
silently failed and I only found out about it when investigating the
remains of a failing build (“guix build -K”). This can easily happen
when a package is updated and substitutions “anchors” no longer exist in
the updated source code.
Would it be desirable to change “substitute*” (or replace it) such that
it throws an error or returns a value if substitution failed? This
might be helpful for the more complex packages with many substitutions.
If we make it return a value (#f for error) it would also make our build
phases a little prettier, I think. (Now we forcefully return #t in any
case and that seems wrong.)