While reviewing the Guile manual this morning, trying to figure out how to shoehorn the VM into it, I ran across the section on `with-throw-handler', which is like `catch' but does modify the dynamic context from which the throw occured.
In short: arrrrgh! I've wanted this for years and I didn't know it existed! I've had to put up with crap backtraces for a long time, just because some intermediate code did a catch and rethrow, losing the initial context and thus the backtrace -- argh. Hopefully everyone already knew about this, but I write in case someone did not. Happy hacking, Andy -- http://wingolog.org/
