[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
When is mark applied?
I think there may be an inaccuracy in the specification, which states that
marks are applied to introduced identifiers in the output of the transformer
(as opposed to the output of a SYNTAX expression). If this were accurate, I
believe the following should print #t. Instead, it prints #f.
(let-syntax ((foo (lambda (s)
(syntax-case s ()
It would print #t because (syntax id) has not yet been output by the inner
transformer (and indeed will never be), and therefore it has not yet been
If I use the antimark prescription to follow what happens, and compare
identifiers using both marks and antimarks, I indeed get the correct result #f.
However, the text of the SRFI does not describe antimarks as essential to the
semantics, but rather as an implementation strategy.