I'm ready to wrap up this SRFI as soon as we decide on what to do.
I think it's important to note that this is your SRFI and you have both the right and the duty to make decisions. The members of the mailing list have the right to be consulted, the right to encourage, and the right to warn, but we don't decide individually or collectively.
### Performance, aka should define/kw make lambdas or macros?
That strategy makes me a bit uneasy since making keyword lambdas subtly
different from other lambdas makes it a more complicated abstraction,
with potentially more edge cases that cause trouble to some users.
The difference is not subtle at all: macros resemble procedures only in the general appearance of an invocation. Lambda defines a procedure, and even though there is no kw-apply, you can still retrofit keywords to procedures and apply those procedures to regular positional arguments without breaking them.
I urge you, therefore, to decide in favor of procedures once and for all. Another SRFI can be written to generate macros.
### R7RS-large and hygienic keywords
I urge you to declare hygienic keywords out of scope for this SRFI.
* However, no RnRS report has keyword objects yet so standard Scheme
reads :e as an ordinary identifier. It would be nice to preserve this
simplicity in the standard, and add an alternative syntax for keyword
objects. Kawa, Guile and Racket already have #:e.
From an R7RS-large perspective it is not possible to make :e not an identifier, as compatibility with R7RS-small must be preserved.
It is possible to add #:e as a new lexical syntax, but I am not going to add anything to R7RS-large that *depends* on the existence of a new lexical syntax. At the end of the process, we will consider convenience lexical syntaxes, like #2a((1 2 3) (4 5 6) (7 8 9)) for arrays (there are alternatives).
* Since SRFI 177's main goal is compatibility with existing Scheme
keyword systems, it will use the syntax (call/kw foo 1 2 :d 3 :e 4).
Good. CL uses leading colons, they are lexically valid everywhere (as keywords or symbols), and I urge you to choose this format.
### More complex keyword specifications
SRFI 177 is meant to be the simplest thing that could work.
Good. You can always make hair shorter by cutting it. You can't make it longer except by waiting.
It would probably be wise for R7RS-large as well, but I'll leave that decision to others.'
People will either vote SRFI 177 in or they won't. I'll schedule it for the Amber Docket (the first docket of syntax forms, which contains the ones that are already SRFIs.)
John Cowan http://vrici.lojban.org/~cowan xxxxxx@ccil.org
And it was said that ever after, if any man looked in that Stone,
unless he had a great strength of will to turn it to other purpose,
he saw only two aged hands withering in flame. --"The Pyre of Denethor"