I'm trying to learn how to restrict where expressions appear. Those expressions might be procedure applications, or macros before expansion.
[1] shows a library I use to help me implement a collection pass for a module language. To save you some reading, it uses syntax-parse with a lengthy #:datum-literals. That's the only way I know how to restrict what expressions appear in module context. One element of the #:datum-literals happens to share an identifier with a bound procedure, so I expand the calls as-is in a module-level expression [2][3]. I want that procedure to be applied ONLY in the module context, but nothing in the language enforces that. I don't know what I don't know. Could I please get a link to a part of the documentation that teaches me what I need to understand? I'm tied between querying syntax properties for a fully expanded module, and writing a second set of macros that somehow know where they should be. Not sure which is best. [1]: https://github.com/zyrolasting/xiden/blob/master/pkgdef/expand.rkt [2]: https://github.com/zyrolasting/xiden/blob/master/pkgdef/expand.rkt#L111 [3]: https://github.com/zyrolasting/xiden/blob/master/pkgdef/expand.rkt#L156 ~slg -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/bVbaZ_0mwFcWTIaeuwqMUr7TVY6Rhr5dusG9LkbT0gqW7gWIYAb8IOEUYnKQPIVR2ZrDGm9QMGnW-2YvYqw81oUJVCSCuwhuX_Wx2OGVG-w%3D%40sagegerard.com.