My experience with check-syntax is that several conditions have to be met: * The identifiers must have the correct source locations (actually, you can make arrows point to weird places by faking the source locations) * The properties must be present high enough in the AST. For example, if you put a 'sub-range-binders property on the "name" in "(define name value)", it won't work, instead the property should be present on the "(define name value)" syntax object itself, not on one of its subparts * The planets must align.
At a first glance, I think in your case the problem is with the second condition, so you should "lift" all those properties out onto the topmost syntax object (they probably can be present at a lower point, but why bother?). There's a with-disappeared-uses + record-disappeared-uses utility , and I wrote my own with-sub-range-binders + record-sub-range-binders! . I also threw in a with-arrows form which combine both with-xxx forms. Unfortunately, there is nothing for disappeared-bindings (yet). You can copy-paste and adjust my sub-range-binders code  and adjust it (permission granted to use whatever licence your project uses). Georges  http://docs.racket-lang.org/reference/syntax-util.html#%28form._%28%28lib._racket%2Fsyntax..rkt%29._with-disappeared-uses%29%29  http://docs.racket-lang.org/phc-toolkit/phc-toolkit-format-id-record.html#%28form._%28%28lib._phc-toolkit%2Funtyped-only%2Fformat-id-record..rkt%29._with-sub-range-binders%29%29  https://github.com/jsmaniac/phc-toolkit/blob/master/untyped-only/format-id-record.rkt -- 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.