This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Ticket 420: Formal Comment: scope of #!fold-case and #!no-fold-case

2012-06-28 11:53:39
WG1 - Core
2012-06-28 11:34:14

Submitter's name: Richard Kelsey

Submitter's email: kelsey at

Relevant draft: r7rs draft 6

Type: clarification

Priority: minor

Relevant section of draft: Lexical conventions

Summary: scope of #!fold-case and #!no-fold-case

The description of #!fold-case and #!no-fold-case says that they change the behavior of the read procedure. I assume that this doesn't mean that I can write things like:

(define (case-folding-read) #!fold-case (read))

but it would be nice if the report made this clear. Also, does load pay attention to these?

I suggest that you drop the reference to 'read' and instead say something like:

These directives may appear anywhere comments are permitted (see section 2.2) and are treated as comments, except that they affect the reading of subsequent data from the same port. The #!fold-case directive causes subsequent identifers and character names to be case-folded (as if by string-foldcase; see section 6.7). (It has no effect on character literals.) The #!no-fold-case directive causes a return to the default, non-folding behavior.


Editorial change made, formal response sent.