[plt-scheme] Non-hygenic Macro Revelation

From: dherman at ccs.neu.edu (dherman at ccs.neu.edu)
Date: Thu Mar 25 18:12:32 EDT 2010

I disagree; I meant there's no right solution without a documented specification. If you specify what implicit bindings it defines (and with syntax-case, you need to specify what marks it uses) then there *is* a right solution.


----- Original Message -----
From: "Joe Marshall" <jmarshall at alum.mit.edu>
To: "David Herman" <dherman at ccs.neu.edu>
Cc: "Jay McCarthy" <jay.mccarthy at gmail.com>, "PLT-Scheme List" <plt-scheme at list.cs.brown.edu>
Sent: Thursday, March 25, 2010 2:58:24 PM GMT -08:00 US/Canada Pacific
Subject: Re: [plt-scheme] Non-hygenic Macro Revelation

Trimming down David's arguments:

On Thu, Mar 25, 2010 at 12:47 PM, David Herman <dherman at ccs.neu.edu> wrote:
> Sometimes you want it to work one way, sometimes another. Here's my standard example.
> Imagine that you implement `while' to implicitly bind `break'.
> Now imagine you want to implement `for' on top of this:
> In this case, you want part of the public interface of `for' to be that it binds `break'.

> But now imagine you want to use `while' internally as part of an implementation:
> Then you might *not* want the binding of `break' to be exposed.

> So there's no "right" behavior;

Therefore, you should never, ever use implicit bindings:  all
behaviors are wrong.


Posted on the users mailing list.