I had understood that you liked me (not too serious) idea of using colon names for non-hygienic keywords and colon-free names for hygienic keywords.
> Yes, I agree that keywords should be non-hygienic. The problem with using
> :key in lambda/kw is that it looks like a keyword itself. This only
> matters if the identifiers are going to look like (or be) keywords
> themselves.
The names of keyword arguments in the lambda list are ordinary symbols
in all current Schemes with native keywords. They are also ordinary
symbols in Common Lisp and in Clojure
(https://clojure.org/guides/destructuring#_keyword_arguments).
In Racket the keyword argument appears as both a symbol and a keyword in
the lambda list, so that's a half-exception to the rule. SRFI 89 uses
keyword objects; that's the only full exception I've found.
IMHO the above sets a strong precedent to use ordinary symbols.
If argument names themselves looked like keywords, I agree that &key
would be better.