Hello Marc
Thank you for your code, it's really interesting for me. (Especially since I'm planning to write an error procedure which can skip continuation frames (like Perl's croak, which skips stack frames in the current module or parent classes).)
Some notes: - (cond-apply sin '(1 2) (lambda (x) 'foo)) will enter an endless loop because the call of the non-thunk procedure will re-enter |wrong-number-of-arguments|. - but it seems ##raise-wrong-number-of-arguments-exception is not being called by the apply call (?, I haven't checked the sources); commenting out this function definition gets rid of the above loop.
Some questions: - what does ##first-argument do? (- is the environment-map directive automatically activated by the |debug| compiler flag? Or will adding this directive improve variable display in the debugger?)
I'll experiment with ##raise-unknown-keyword-exception etc. to make it more complete.
Christian.