[R6RS] syntax-case semantics
Anton van Straaten
anton at appsolutions.com
Mon Mar 20 04:26:35 EST 2006
Michael Sperber wrote:
> Anton van Straaten <anton at appsolutions.com> writes:
>>Presumably *any* notion of hygiene is only going to involve
>>identifiers, not other kinds of literal values, so from that
>>perspective, it seems unnecessary to wrap such literals,
>>i.e. leaving them unwrapped is not ad-hoc.
> Agreed, but macros aren't only about hygiene.
> I'm not sure I buy this argument that opacity is primarily an
> implementation concern. How is the non-symbolness of identifiers not
> primarily driven by implementation? I know this is again naive, but
> the recent discussions on c.l.s. have shown (again) it's a view some
> people would like to hold---they don't understand why they can't just
> use symbols.
I don't think it's naive: there's a perfectly reasonable desire to use a
particular interface for syntax, i.e. the usual interface for lists,
symbols, etc. without worrying about the underlying representation. But
we'd need some kind of polymorphism in order to be able to do that here.
Using lists to represent syntax, even if they contain opaque syntax
objects, goes partway towards being able to maintain the desired
interface. Leaving non-identifier literals unwrapped goes even further.
Going that route is about minimizing the impact of the implementation
requirements on the interface, without resorting to complex polymorphic
So I suppose there's a certain ad-hocness about it, but it's supposed to
be in a good cause.
More information about the R6RS