[racket-dev] paren-shape question

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sun Mar 25 21:22:01 EDT 2012

At Sun, 25 Mar 2012 19:58:29 -0500, Robby Findler wrote:
> On Sun, Mar 25, 2012 at 7:18 PM, Danny Yoo <dyoo at cs.wpi.edu> wrote:
> > I'm still somewhat confused, because of the following:  Compare:
> >
> >     (syntax/loc #'foo [app op ...])
> >
> > vs:
> >
> >     (syntax [app op ...])
> >
> > The first does not have paren-shape defined, while the second does.
> > Is this intentional?
> I'm not sure if it is intentional, but it looks like syntax/loc's
> implementation is not copying properties over
> (racket/private/stxloc.rkt) when it creates the new syntax object with
> the adjusted location. I guess it probably should (and it would not be
> a difficult change), but probably best to get some consensus that this
> is a good change first.

That sounds right to me.

It's puzzling that `syntax/loc' explicitly uses `#f' for the property
argument when calling `datum->syntax', instead of relying on the
default #f; that suggests that I gave the argument some thought. But I
think the explicit `#f' reflects a decision that the first form in
`syntax/loc' shouldn't be used for properties (which would interfere
with `syntax-original?', for example). Using the second form seems
right, and it would produce the result that Danny wants.

I'll try that change and push if it seems to work.

Posted on the dev mailing list.