On Mon, Jul 22, 2019 at 7:13 PM Lassi Kortela <xxxxxx@lassi.io> wrote:

are there other differences
between interned and uninterned symbols than comparing inequal even if
they have the same name?

That's about it, since a Scheme symbol has no properties except its name.  You can more or less simulate uninterned symbols with ordinary symbols whose names are UUIDs <https://en.wikipedia.org/wiki/Universally_unique_identifier>.  The chance of reusing a UUID accidentally is close enough to zero, since there are 2^128 of them available.
 
Would uninterned symbols have other uses
besides gensyms in Scheme?

Not really.  I worked out how CL-style packages and fancy symbols (with plists and all) could be done in Scheme, but only at runtime, and CL people told me that essentially nobody uses packages as runtime objects.  It turns out that there's a mapping between Scheme libraries and the compile-time use of CL packages:  see the final section of <https://bitbucket.org/cowan/r7rs-wg1-infra/src/default/CL-R.md>, a dialect of CL that I came up with.

This is true - every now and then, someone says they dislike the #:foo
syntax on aesthetic grounds. I also prefer :foo for the same reasons as
you. Slowly getting used to #:foo.

People *always* dislike lexical syntax they haven't seen before.
 
Finally, perhaps the strongest argument for :foo keywords is that the
major Lisp dialects except Scheme have that syntax.

As I mentioned before, the foo: syntax comes from DSSSL.  There's a list of differences between DSSSL and R4RS at <https://bitbucket.org/cowan/r7rs-wg1-infra/src/default/DSSSLVsScheme.md>.


John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
Even the best of friends cannot attend each others' funeral.
        --Kehlog Albran, The Profit