Re: Initial comments & questions Andre van Tonder 22 Mar 2004 18:00 UTC

On Sun, 21 Mar 2004, Ken Dickey wrote:

>  Andre van Tonder wrote:>
> > First, in the monadic prior art, *bind* is already used for something more
> > akin to the current internal *syntax-bind*, so using bind for do could
> > cause confusion.
> But in Scheme prior art [T, Slade, 1987] BIND is used for (dynamic) binding
> forms.  We speak of lexical BINDings.

I agree.  syntax-bind would be more Schemely, and I like it.

> So SYNTAX-LET* would make sense for that usage!  [Freeing up SYNTAX-BIND for
> the syntax-do which does not DO].

I like this proposal also.  The one possible source of confusion, which
could also happen with syntax-bind, is that the types of the LHS and RHS
are different, e.g.,

  (syntax-let* ((x (syntax-return (1 2 3)))
                (y (syntax-return x))

i.e., the variables on the LHS refer to syntax, and the RHSs have to be

By the way, I wish I could come up with a briefer name for
*syntax-return*.  Just SYNTAX would have been nice, but that's already
taken :(

> > Second, in e.g. Haskell,
> Hey, not to belabor this too much, but *this is Scheme*.
> ...
> Your proposed forms should accord with Scheme forms in common use.  Anything
> else is confusing by design.
> Designing for clarity is designing for the context of your (desired) users.

Point taken :)

> > 2) Perhaps in future have syntax-begin for imperative
> >    things like syntax-debug-message.  The above syntax-do example becomes
> I think you are making the argument for a declarative debug form here.  I
> support the notion.

Could you perhaps suggest an example of what such a thing could look like?

> Did you like SYNTAX-QUOTE ?

I'm thinking af changing the specification of syntax-inspect to invoke an
inspector if there is one...