[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 
machinery.

So I suppose there's a certain ad-hocness about it, but it's supposed to 
be in a good cause.

Anton




More information about the R6RS mailing list