The previous implementation was just fundamentally incorrect. The new
version is somewhat better organized (though fairly similar
superficially) and documented, and actually (I think) correct.
Changes include:
* DELAY-RECOMPUTING-DEPS has been renamed to WITH-DEPS-FROZEN. The
new version is semantically slightly different: it's the only point
which actually triggers recomputation. It has also grown the
ability to defer its body until after the current recomputation
phase is complete.
* It is now a (diagnosed) error to attempt to modify a dep during
recomputation; modifications can be deferred explicitly, though
doing this sort of thing automatically seems a bad idea.