On Mon, Jul 22, 2019 at 2:52 PM Peter Bex <xxxxxx@more-magic.net> wrote:

Could you elaborate on it not being rnrs conforming, please? 

That is, it is not conformant to treat foo: or :foo as anything but an ordinary identifier,
since : is an ordinary character in identifiers.  However, since #:foo has no meaning
in any RnRS, an implementaion can define it however it likes (except in the strict mode
of R6RS, where anything not explicitly permitted is forbidden).

In CHICKEN,

Thanks for the details.

The more I think about it, the more I think that the best syntax to standardize is #:foo.  It's supported by Kawa, Racket, Gauche, and Chicken. It would be trivial to support in Gauche, Gambit, Bigloo, and STklos, because they already support one or both of the other two keyword syntaxes.  With that resolved, there would then be two questions

As a data type, are keywords a subtype of symbols or disjoint from them?  I think they are generally a subtype, but they are disjoint in Chicken.  Presumably they are disjoint in Racket and Kawa as well.

Do we want the self-quoting semantics or the Racket/Kawa semantics?
 


John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
The peculiar excellence of comedy is its excellent fooling, and Aristophanes's
claim to immortality is based upon one title only: he was a master maker
of comedy, he could fool excellently.  Here Gilbert stands side by side
with him.  He, too, could write the most admirable nonsense.  There has
never been better fooling than his, and a comparison with him carries
nothing derogatory to the great Athenian. --Edith Hamilton, The Greek Way