Comment 2 for bug 260143

leppie (leppie) wrote :

Hi Aziz

Thanks for the explanation.

This leads me to believe one should 'never' use auxiliary keywords. For example, in my case, a single macro might have several (about 10) auxiliary keywords (some of whom are 'let' and '='). The way I see it, I have 2 options:

1. Leave as is, and pray no one redefines an auxiliary keyword (does the original described behaviour only occur when redefined after a library has been imported?).
2. Export all auxiliary keywords, but then I have the problem that it will clash with existing keywords, eg 'let' & '=', when imported.

Ideally I would like it to be like (1), but without the ability to redefine the keywords. Maybe there is a way to achieve this, by creating the keywords via datum->syntax? Eg:

(with-syntax ((let (datum->syntax #'k 'let))) ...