Be aware that `expand-all-judgment-form-expanders` does what it says on the 
tin: if the `(define-judgment-form …)` contains something that should in 
principle shadow the expander, e.g. something equivalent to `(let ([where/not 
(λ (x) 42)]) (where/not 'blah))`, then the `expand-all-judgment-form-expanders` 
will still blindly expand the inner `where`.

In other words, it does a substitution on the whole syntax tree, and does not 
recognise any sort of binding form in any special way.

A better implementation of the "new" `define-judgment-form` I wrote in my 
previous e-mail would selectively expand judgment form expanders in the 
appropriate places, and detect shadowing instead of uniformly substituting all 
occurrences within the whole syntax tree.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to