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 xxxxxx@ccil.org
of you half as well as you deserve. http://www.ccil.org/~cowan
--Bilbo