The following code doesn’t look like it should be possible:
(define break 'undefined)
(let ((i 0))
(loop (set! i (+ i 1))
(display i)
(when (>= i 5)
(break #f))))
> 12345#f
Loop is a regular syntax-rules macro, which means it’s required to be “hygienic” and “referentially transparent”—writing (break #f) should expand and evaluate to ('undefined #f), and cause an error!
What’s happened is that loop takes advantage of a very clever trick described by Al Petrofsky and Oleg Kiselyov, where it uses an auxiliary macro to search for occurrences of an identifier (e.g., break), for which it provides an arbitrary binding (e.g., to an escape continuation).