SRFI 10 John Cowan 24 Nov 2012 07:34 UTC

On rereading SRFI 10, I see that it only prescribes the syntax #,(<tag>
<datum>*).  It explicitly says that the define-reader-ctor procedure is
merely a suggestion and not part of the SRFI.  However, your qualifier
"when all the expressions are literal" in the "Readtable literals"
section is always true in SRFI 10 syntax.

Therefore, I would consider subsuming SRFI 10 into SRFI 108 by desugaring
#,(foo a b "10" 32) as #&foo[&{'a 'b "10" 32}].  Note that symbols and
lists must be quoted as well as strings in order to force them to be
interpreted as datums.  Since this makes define-reader-ctor unnecessary,
and it is unscoped and has phasing problems, I would leave it out.

To resolve the conflict between SRFI 10's use of #, and its use by
syntax-rules, #. could be provided as an alternative to #,.  Originally,
CL #. meant read-time evaluation and #, meant load-time, but #, was
removed in ANSI CL because it was confusing and often badly implemented.
Though it is true that SRFI 10 #, is more restrictive than CL #., the
difference is not really that large.

I don't know half of you half as well           John Cowan
as I should like, and I like less than half
of you half as well as you deserve.