[plt-scheme] (require... ) expanded from a macro
At Sun, 22 Oct 2006 13:01:38 +0200, Jens Axel Søgaard wrote:
> However in the special case where syntax-local-introduce
> is applied to a syntax-object constructed by the transformer
> containing no parts of the original syntax, I think of it
> as "introduce this syntax-object into context of the macro
> application".
>
> [...]
>
> The main appeal for me, I think, is that "the context of the macro
> application" is implicit.
I started to ask: In the case of a macro-generated macro application,
do you mean the context of the immediate macro application or the
original one?
But I think my question doesn't make sense. "Lexical context" and
"macro-application context" are not the same kind of thing. They
overlap in their implementation via marks, which is why
`syntax-local-introduce' works to a large degree for non-hygienic
introductions, but it seems difficult to connect "macro-application
context" and "lexical context" more precisely.
> Another use is preventing additional marking, when a macro embeds return
> values of syntax-local-get-shadower in its output.
>
> But syntax-local-get-shadower is rare:
>
> <http://www.scheme.dk/search-plt/search.ss?query=syntax-local-get-shadower>
Ah, from obscure to more obscure... :)
In this case, though, I think I know what the core macro system is
missing. Excluding the broken `package' use,
`syntax-local-get-shadower' is used to implement syntax parameters,
and syntax parameters are the right core feature.
Matthew