[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Initial comments



Alan Watson wrote:
> > Systematic use of
> > the "rtd-" prefix in SRFI 99 prevents clashes with the
> > names defined by the corresponding layers of the R6RS,
> 
> This is not C. We have a module system that allows arbitrary renaming  
> and prefixing. Or maybe this is C, and you intend this SRFI to be used  
> in module-less R5RS systems. Ugh. Please wait while I find a peg for  
> my nose.

I do indeed intend for SRFI 99 to be useful in module-less
R5RS systems.  I also intend for it to be useful in R5RS
systems that have been extended with module systems, even
though those module systems vary in the convenience of
renaming, prefixing, and excluding.

Indeed, the record system of SRFI 99 has already proved
its worth in Larceny, where records and record type
descriptors are first class objects that are routinely
passed between R5RS, ERR5RS, and R6RS code without the
inconvenience of marshalling, renaming, or coercions.
That objective convenience should not be sacrificed for
subjective aesthetics.

The grumbling about clashes between SRFI 1 and the R6RS
libraries (rnrs base), (rnrs lists), and (rnrs) shows
that the inconvenience of excluding, renaming, and
prefixing is not universally regarded as a trivial
matter.

> Can you at least rename "rtd-all-field-names" to "rtd-field-names"?

I think that would be confusing, because the R6RS defines
a record-type-field-names procedure whose result does not
include all field names.  The "all" therefore serves to
remind programmers that rtd-all-field-names is different
from record-type-field-names in that important respect.

Will