(srfi :41) is just an abbreviation for the compound library (srfi :41
streams).  That's all, and that's fine.

Should sublibraries have similar abbreviations or not?

SRFIs designed for R7RS haven't used the SRFI 97 convention.  The SRFI
97 convention also uses the pluralized names of R6RS, which R7RS
doesn't.

We should unify R6RS and R7RS here.

Making the :123 hack equivalent to 123 is something that should be
solved on an ad hoc basis in the library loader. Hacks shouldn't go into
RnRS.

It's no hack; it would be a convention.  You can't solve it externally
in the library loader alone as I tried to explain above because you
need to fabricate lexical context for some syntactic extensions.

"somehow map a number like 227 internally to :227"

Source code transformations.

The library loader can solve everything. It has access to the library source code, so it can do arbitrary transforms. E.g. map :123 to |123|.

The transform which maps the number 123 to the symbol |123| makes aesthetic sense (or at least I can't see any problems there). 123 is already standardized in R7RS because it is useful and looks sensible.

The transform which maps :123 to |123| makes no aesthetic sense. The ":" is there only as a workaround. Add to that all the other problems it causes. This should remain a convention outside RnRS.

More generally, Scheme implementations should have a loader that is fully customizable by the user. There are too many arbitrary and evolving conventions for a clean standard to address all use cases.

Reply via email to