[R6RS] Re: Library contents (exports)

Anton van Straaten anton at appsolutions.com
Tue Jun 13 04:31:15 EDT 2006

Last week, I wrote:
> I've checked a couple of files into svn under draft/corelib: 
> library-contents.html and library-contents.scm.  The latter is just 
> Scheme data.  These files simply list all the exports from (most of) the 
> libraries identified so far.

I've checked in much more complete versions of these files, listing 21 
libraries, with 774 identifiers (including, for completeness, some 
#\characters and other lexical tokens).  See the html file for a quick 

This level of detail naturally raises factoring issues, many of which 
are yet to be addressed.  Some issues in the current verion:

* The list library contains the proposed SRFI-1 subset, but there's not 
much reason for those to be separate from procedures currently in the 
core, such as map and for-each.

* I was originally in favor of putting syntax such as 'when' and 
'unless' in a library, but unless an additional library is created for 
them ("misc-syntax"?), the core is the only natural place for them in 
the current design.

* There's an argument for putting all of the R6RS type predicates in the 
core, but currently numeric predicates like exact?, inexact?, flonum? 
and fixnum? are scattered amongst the various arithmetic libraries, 
following the structure of the SRFI.  Related to this, generic 
arithmetic is currently listed outside of the core, mainly for 
simplicity while working on it, rather than any decision about its 
proper place.

* Integration of the I/O proposal will require some decisions.  E.g. 
SRFI 81 (Port I/O) deprecates the notion of "current" i/o ports. 
Provisionally, affected procedures (including READ and WRITE) have 
either been listed in the r5rs-compatibility library, or in one of two 
non-library classifications, "unallocated" and "obsolete".

* The r6rs-small, r6rs, and r6rs-big libraries are not yet listed in the 
library-contents files.  They're simply compositions of the other 
libraries, though, as specified in core-library.txt.


More information about the R6RS mailing list