Hi,
In (cuirass base) there is this definition:
--8<---------------cut here---------------start------------->8---
(define (exception-reporter . results)
"Return an exception handler that reports the exception on the error port
and returns the values RESULTS."
(lambda (key . args)
(false-if-exception
(let* ((stack (make-stack #t))
(depth (stack-length stack))
(frame (or (and (> depth 1) (stack-ref stack 1))
(and (> depth 0)) (stack-ref stack 0))))
(print-exception (current-error-port) frame key args)
(apply values results)))))
--8<---------------cut here---------------end--------------->8---
The parentheses for the binding of “frame” look wrong to me:
(frame (or (and (> depth 1) (stack-ref stack 1))
(and (> depth 0))
(stack-ref stack 0)))
--
Ricardo