On 20 Feb 2017, at 15:40, Matt Wette <matt.we...@gmail.com> wrote: > This code looks wrong to me: 3rd arg to catch is not a procedure. Am I > missing something? It starts at line 113 in system/repl/error-handling.scm, > guile-2.0.13: > > (catch #t > (lambda () > (with-default-trap-handler le-trap-handler > (lambda () (%start-stack #t thunk)))) > > (case post-error > ((report) > (lambda (key . args) > (if (memq key pass-keys) > (apply throw key args) > (begin > (with-saved-ports > (lambda () > (run-hook before-error-hook) > (print-exception err #f key args) > (run-hook after-error-hook) > (force-output err))) > (if #f #f))))) > . . .
each of the branches of the case returns a lambda (or throws an error). ‘catch’ is a normal procedure, so this looks ok to me.