Here is an interesting test case that shows that fi we define (define-syntax-rule (letec-m f) (let/ec c (f c))) (define (letec-f f) (let/ec c (f c))) we can get two different behaviors with letec-m compiles wrongly. Obviously a bug! This is important in casy you would like to make a loop macro effectively with a continue directive.