[racket-dev] syntax property duplication
The following idiom duplicates the syntax properties on `stx':
(define-syntax (m stx) (datum->syntax #'here 'id stx stx))
This is a problem for me because I use syntax properties to indicate
polymorphic type instantiation. If an expression that's actually a
macro using this idiom is instatiated, then Typed Racket tries to do
the type instantiation twice, resulting in an error. See the below
program, which fails.
Should I expect that duplicate syntax properties are a natural result
of expansion, and find some way to handle them? Or is there something
else that should happen?
#lang typed/racket
(: id : (All (A) (A -> A)))
(define (id x) x)
(define-syntax (m stx) (datum->syntax #'here 'id stx stx))
(inst m Integer)
--
sam th
samth at ccs.neu.edu