On Thu, Aug 13, 2020 at 12:08 PM Adam Nelson <xxxxxx@nels.onl> wrote:

`(scheme aux)` is a clever idea. I don't think define-syntax is enough to guarantee keyword hygiene, though.

If you `(define-syntax <>)`, it's still possible to write `(let ((<> 1)) <>)` without errors. That makes it possible for something inside the `let` scope to unhygenically insert a `<>` into a macro that uses `cut` or `chain` internally. An identifier macro would prevent this.

Identifier macros would not prevent this, and that's a good thing.
There are not now and never should be "reserved words" in Scheme.

--
Alex