I've come to the conclusion that I'd like to withdraw SRFI 177.
Its mailing list archive continues to serve as a comprehensive index of
design work in this space. The SRFI in its current form presents a
working solution, and due to its unconventional syntax (relying on list
structure instead of keyword objects or magic identifiers to separate
keyword arguments from positional arguments) it can serve as a useful
starting point when exploring hygienic keyword arguments in the future.
However, the unconventional syntax (and the requirement to put `call/kw`
in front of every call) is unsatisfactory for practical use and I'd
prefer that Scheme implementations carry some other syntax.
We should try attacking the problem again from different angles in new
SRFIs, of which there should be more than one. If I now submit a new
draft of 177 that ditches the current syntax and takes it into one of
those new directions, the value of the current SRFI as a historical
document will be obscured. And the new 177 will still be insufficient to
cover all the use cases of keyword arguments in Scheme, which means
we'll have to submit new keyword SRFIs under new SRFI numbers anyway.
Not to mention that the 177 deadline is way past. To respect the SRFI
process, we should be less ambitious and more focused in new SRFIs, at
least the early ones.
I'll submit a final draft of 177 that:
- adds Chibi-Scheme's let-keywords to the rationale
- adds more detailed acknowledgements, in particular of Marc's heroic
contributions on the mailing list
- explains why the SRFI is being withdrawn and what to expect from
future ones
- does not change anything substantial in the specification.