As per the charter, we need a module system proposal which allows sharing of code between implementations.
This is one issue where we can't default to the R5RS, since it has no module system. If we can't come to consensus, we will have to take the R6RS module system as-is.
Note the r6rs-- option is just the R6RS module system without versioning or phasing.
Rationale: R6RS-- is our best compromise and the most useful for WG1, but modules should be syntactic entities.
Student programs often want a small amount of randomness, not necessarily of very high quality. Shall we provide a simple interface to a random variables in WG1 Scheme?
Rationale: Randomness without seeds is not useful. We should have a complete, functional, but simple interface rather than one that is over done.
R6RS provided a detailed exception system with support for raising and catching exceptions, using a hierarchy of exception types.
Do we use this, or parts of it, or a new exception system?
Rationale: R6RS does mostly the right thing here with exceptions. The condition system could use more work, but we should leave that to someone else for now.
SRFI-38 standardizes the #0=(1 . #0#) shared structure notation for read/write. In the case of write, this can be expensive to compute, but otherwise the common case of the repl printing a cyclic structure results in an infinite loop.
Do we want to add support for this, as an option or separate set of procedures?
srfi-38 for separate procedures or native to require read and write to handle cyclic notation.
Rationale: This is a common extension that should be supported, as it makes the programs more reliable. It should be built in, not tacked on, so native is the way to go.
As an alternative to #7, SRFI-46 proposed allowing an optional ellipse specified as an identifier before the literals list in syntax-rules:
(syntax-rules ::: () <ellipse now represented as ::: instead of ...>)
Do we allow this?
Rationale: So long as this doesn't break backwards compatibility, it is useful, but I question how useful.
SRFI-46 and R6RS both allow a fixed number of tail patterns following an ellipsis in a syntax-rules pattern:
(P1 ... Pk Pe <ellipsis> Pm+1 ... Pn)
R6RS further allows dotted tail patterns
(P1 ... Pk Pe <ellipsis> Pm+1 ... Pn . Px)
where Px only matches a dotted list.
Do we allow either or both of these extensions?
Rationale: These are very useful.
R6RS introduced the concept of mantissa widths as an alternative to the R5RS #s in numbers. Do we want either or both of these?
Does the reader fold case by default, and if so how?
Yes to fold-case (R5RS) no to preserve case (R6RS), additional votes to come later from specific proposals.
Rationale: Case sensitivity is more popular, let's go with it. Otherwise, let implementations determine it.
R6RS provides support for #; nested sexp comments, and #| ... |# nested block comments. Do we include either or both of these?
Rationale: These are very useful.
R6RS provides procedures to explicitly convert strings back and forth between the four Unicode normalization forms.
The previous phrasing of this option was overly vague, referring to "any form of normalization." I've had to treat yes votes as undecided for lack of a better default. If you voted yes before please choose one of the following options or write in your own proposal.
Note UnicodeCowan currently provides specific normalization procedures.
Rationale: Keep the complexity of unicode down.