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.



Reply via email to