[racket-dev] syntax property duplication
On Sep 7, 2011, at 10:40 AM, Carl Eastlund wrote:
> On Wed, Sep 7, 2011 at 1:37 PM, John Clements <clements at brinckerhoff.org> wrote:
>>
>> On Sep 6, 2011, at 8:12 PM, Sam Tobin-Hochstadt wrote:
>>
>>> 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?
>>
>> A guard could keep track of duplicates. Keep in mind that syntax-property guards are purely a > figment of my imagination.
>
> What, in your imagination, is a syntax-property guard?
I imagine that when the key involved in the property is a special guarded-syntax-property value, then an associated procedure gets to decide (approve/reject, substitute an alternate value?) whether a value should be used.
If I understand the problem, the obvious danger in an idea such as this is opening a "back door" into expansion time.
Apologies if I've misunderstood the issue.
John
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4624 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20110907/79cc6f26/attachment.p7s>