This document describes rationales for some of the design decisions behind the Revised6 Report on the Algorithmic Language Scheme. The focus is on changes made since the last revision on the report. Moreover, numerous fundamental design decisions of Scheme are explained. This report also contains some historical notes. The formal comments submitted for drafts of the report and their responses, as archived on http://www.r6rs.org/, provides additional background information on many decisions that are reflected in the report.
This document is not intended to be an exhaustive justification for every decision and design aspect of the report. Instead, it provides information about some of the issues considered by the editors’ committee when decisions were made, as background information and as guidelines for future decision makers. As such, the rationales given here may not be convincing to every reader, but they convinced the editors at the time the respective decisions were made.
This document frequently refers back to the Revised6 Report on the Algorithmic Language Scheme , the Revised6 Report on the Algorithmic Language Scheme — Libraries — , and the Revised6 Report on the Algorithmic Language Scheme — Non-Normative Appendices — ; specific references to the report are identified by designations such as “report section” or “report chapter”, references to the library report are identified by designations such as “library section” or “library chapter”, and references to the appendices are identified by designations such as “appendix” or “appendix section”. This document frequently refers to the whole Revised6 Report on the Algorithmic Language Scheme as “R6RS”, and to the Revised5 Report on the Algorithmic Language Scheme as “R5RS”.
We intend this report to belong to the entire Scheme community, and so we grant permission to copy it in whole or in part without fee. In particular, we encourage implementors of Scheme to use this report as a starting point for manuals and other documentation, modifying it as necessary.