[plt-scheme] 204.7

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed Jul 2 08:20:15 EDT 2003

At Tue, 1 Jul 2003 19:14:47 -0500, Robby Findler wrote:
> At Tue, 1 Jul 2003 18:03:17 -0600, Matthew Flatt wrote:
> >  * Changed top-level `define-syntaxes' to treat zero results
> >    from the right-hand side as a kind of abort, so that
> >    
> >      (define-syntax (id ...) (values))

Though there seems to be no confusion, that was supposed to be
`define-syntaxes'.

> >    declares the ids without binding them. This is useful for macros
> >    that expand to mutuaully recursive definitions of private variables
> >    (like, of course, `package').
> 
> Is there any reason not to add some kind of new construct for this
> rather than overloading the meaning of multiple values 

It certainly is a hack. Adding a whole new form (which all
program-processing tools must handle) seemed too much to cover an
obscure corner case in the ever-awkward top level, especially in the
short term.

Hacking `define-syntaxes' is particularly expedient, because
program-processing tools must already handle `define-syntaxes' in the
way needed to cover the corner case.

Matthew



Posted on the users mailing list.