This is a frozen version of the Red Edition ballot, with hyperlinks. It serves as a definition of the Red Edition, since a single document is not yet ready.
By unanimous consent, the libraries of R7RS-small are all required in implementations of the Red Edition. The following additional libraries are required:
SRFI 133 is a minor variant of SRFI 43 to make it compatible with R7RS-small by renaming a few procedures. It also includes a few additional procedures not present in SRFI 43.
SRFI 13 is an index-based string library. SRFI 130 provides support for string cursors as well, but does not provide string mutation procedures. SRFI 135 is an immutable text library, but accepts strings as well; if you vote for it, you may want to vote "None" here.
No final result: this will be reballoted.
SRFI 132 is an edited version of the withdrawn SRFI 32, with the algorithm-specific procedures removed and a few additional procedures; it provides sortedness testing, stable and unstable sorting, merging, duplicate removal, median, and selection. R6RS provides only stable sorting and merging.
SRFI 113 provides linear-update sets and bags, which can be mutable or immutable according to the implementer's preference. Since the interface of SRFI 113 depends on SRFI 114, which has been replaced by SRFI 128, voting for SRFI 113 will cause your vote on comparator libraries to be automatically changed to SRFI 128.
SRFI 14 provides linear-update sets and bags, which can be mutable or immutable according to the implementer's preference. The contents are limited to characters.
SRFI 69 is a basic hash table library. SRFI 125 is an upward compatible extension of it. Likewise, R6RS provides a basic hash table library, of which SRFI 126 is an upward compatible extension. Since the interface of SRFI 125 depends on SRFI 128, voting for SRFI 125 will cause your vote on comparator libraries to be automatically changed to SRFI 128.
SRFI 116 is a variant of SRFI 1 for immutable pairs, which are a separate data type from ordinary Scheme pairs. Only a few functional update procedures are provided. Procedure names are prefixed with "i".
SRFI 101 is a library for purely functional pairs and lists with O(log n) access time. To avoid conflicts, procedure names will be modified for R7RS-large purposes as follows:
SRFI 134 is a library for immutable double-ended queues, with O(1) addition and removal time at both ends.
SRFI 135 is a library for immutable character sequences with O(1) access time. Its procedures accept strings as well as texts, so that a separate string library may not be as useful.
Laziness
SRFI 121 is a collection of routines for manipulating generators, which are nullary procedures that are invoked repeatedly to generate a sequence of values. They provide lightweight laziness.
SRFI 127 is a variant of SRFI 1 for lazy sequences, which are either proper lists or lists with a generator in the tail. They provide medium-weight laziness.
SRFI 41 provides classical streams based on delay/force. They provide heavyweight laziness. It specifies two libraries, but will be treated as just one for R7RS purposes.
SRFI 111 is a trivial library for boxes (single-slot records).
SRFI 117 provides mutable half-deques with O(1) addition at both ends and O(1) deletion from the front. They are based directly on ordinary Scheme lists, and are known in other Lisps as "tconc structures".
SRFI 124 provides ephemerons compatible with MIT Scheme except that they are immutable. A dummy implementation for systems without GC support is also provided.
SRFI 129 is a modified version of R6RS titlecase support with full Unicode compatibility. It is less useful with SRFI 135, which provides titlecase support already.
SRFI 128 is a comparator library whose interface is used by SRFI 113 and SRFI 125. It was not formally balloted but was voted in based on the votes for those libraries, as (scheme comparator).