Subject: Improved workaround

From: Josep Portella Florit <[email-masked]>
Date: Wed, 01 Jul 2015 08:49:04 +0200

The workaround in my other message discards the return value of
`with-dynamic-state'.  I've improved it:

(let ((w-d-s with-dynamic-state))
  (set! with-dynamic-state
        (lambda (s p)
          (let* ((e #f)
                 (r (w-d-s s (lambda ()
                               (catch #t p
                                 (lambda x
                                   (set! e x)))))))
            (if e
                (apply throw e)
                r)))))