The R7RS standard libraries are described by the R7RS (small) standard approved in 2013. The Predefined libraries section of this manual lists the names of those libraries.
Larceny provides all of the R7RS standard libraries, supports the full numeric tower, and can represent all Unicode characters.
Binary releases of Larceny also support Unicode strings. (When built from source code, Larceny can be configured to use Latin-1 strings instead of Unicode.)
When Larceny is invoked with the -r7r6
option on its
command line, all of the standard R7RS and R6RS libraries
are imported at startup. When invoked with the -r7rs
option, only (scheme base)
is imported at startup.
Larceny v0.99 does not implement these features of the R7RS standard:
include
and include-ci
at expression level
include
and include-ci
are fully supported
at the top-level declaration and definition levels of R7RS
libraries.
Larceny v0.99 does not allow libraries to define the names
primitives
or program
.
(Larceny reserves primitives as a
keyword for importing identifiers from the R5RS global
environment, and reserves program
for no good reason.)
Larceny does allow top-level programs to define those names.
To simplify interoperability with R6RS libraries and
programs, the integer?
, rational?
, and real?
procedures exported by (scheme base)
have R6RS semantics.
It is not clear whether that is fully compatible with the
R7RS (small) standard, because the R7RS specification of
those procedures appears to contradict itself.
If any other R7RS feature is missing or incompatible with the R7RS (small) standard, it's a bug.