On Wed 25 Jan 2012 01:26, Mark H Weaver <m...@netris.org> writes:

> Andy Wingo <wi...@pobox.com> writes:
>
>>   (define-syntax-rule (define-const x val)
>>     (begin
>>       (define t val)
>>       (define-syntax x (identifier-syntax t))))
>>
>> Here, `t' will have a fresh mark.
>>
>> Now, if in one compilation unit, I do:
>>
>>   (define-const x 10)
>>
>> And in another, I do:
>>
>>   (let ((t 20))
>>     x) => ?
>>
>> You would expect the result to be 20.  But I think it could be 20, if
>> the marks on the two "t"s happened to collide.

FWIW I think this example wasn't quite right; you'd need to have the
case where both "t"s that are visible have marks.  Like in compilation
unit B:

  (let ()
    (define-const y 20)
    x) => ?

Cheers,

Andy
-- 
http://wingolog.org/

Reply via email to