Am Sa., 26. Sept. 2020 um 23:11 Uhr schrieb Jim Rees <[email protected]>:
>>
>> #,> (define x 1)
>> #,> (import (srfi 211 syntax-case))
>> #,> (free-identifier=? #'x (datum->syntax #'public 'x))
>>
>> This last example shows that the syntactic environment of the
>> *imported* identifier public is the one of the importing
>> library/module.
>
>
> I don't see that.
>
> Provided neither x nor public are bound as pattern variables, that last line 
> is always true regardless of what has or hasn't been imported or defined.

Neglecting the case that any of the identifiers is unbound,
free-identifier=? compares the labels of the identifiers that are
resolved by applying all the substitutions. My point is that if the
identifier #'public *were* the same (including its set of
substitutions) as the top-level identifier with the same name inside
the test library, (datum->syntax #'public x) would carry the
substitutions of the top-level environment of the library and not of
interactive environment of the REPL.

(Or is it already too late for me and have I just produced another brain fart?)

Reply via email to