#lang plait
(define return-k
(make-parameter
(lambda (v) (error 'return "outside with-return"))))
(define (return v) ((parameter-ref return-k) v))
(define-syntax-rule (with-return exprs ...)
(let/cc calling-context
(parameterize ([return-k calling-context])
(begin exprs ...))))
(with-return
(return 42) (/ 1 0))