[racket-dev] syntax property duplication
On Tue, Sep 6, 2011 at 8:05 PM, John Clements <clements at brinckerhoff.org> wrote:
>
> On Aug 18, 2011, at 5:32 AM, Sam Tobin-Hochstadt wrote:
>
>>
>> Yes, I understand why this happens. As I see it, there are a few possibilities:
>>
>> 1. The expander should check for duplicates, in some fashion.
>> 2. This idiom is problematic, in the case where `stx' is both the
>> input and used for the syntax properties of the output.
>> 3. Macros may freely duplicate syntax properties.
>>
>> All of these have drawbacks, but (3), which you are suggesting, means
>> either that syntax properties can only be used to specify idempotent
>> information or that the non-idempotent ones need to have some
>> *explicit* means by which equal elements can be distinguished, which
>> must be part of the API of that syntax property.
>>
>> If we think this is how syntax properties ought to work, then we
>> should add something to the documentation making this clear, and we
>> should recognize that it's a limitation.
>
> Would syntax-property guards solve this problem?
I don't really see how. What are you thinking of?
--
sam th
samth at ccs.neu.edu