at any point in any scheme if the user write such a thing:
(let ((list 3)) (list 4))
there will be a serious problem

On Mon, May 6, 2024 at 11:41 AM Jean Abou Samra <j...@abou-samra.fr> wrote:

> > (with-syntax ((parsed-evaluated-args
> >                (datum->syntax #f (cons 'list
> (optimizer-parse-square-brackets-arguments-lister
> >                                               (syntax->datum
> #'args-brackets))))))
>
> That should work, but it's also non-hygienic. For example, it will
> be affected if the user does
>
> (let ((list ...))
>   (call-your-macro ...))
>
> and since you use #f in the datum->syntax call, it will also strip away
> all hygiene annotations from the args-brackets, causing problems inside
> that as well.
>
> I'd advise you refactor your
> optimizer-parse-square-brackets-arguments-lister
> function so that it takes #'args-brackets instead of (syntax->datum
> #'args-brackets)
> and works with it in a hygienic way.
>

Reply via email to