Notes
This section enumerates the changes that have been made to Scheme since
the ``Revised4 report'' [6] was published.
- The report is now a superset of the IEEE standard for Scheme
[13]: implementations that conform to the report will
also conform to the standard.  This required the following changes:
 
- The empty list is now required to count as true.
 
- The classification of features as essential or inessential has been
removed.  There are now three classes of built-in procedures: primitive,
library, and optional.  The optional procedures are load,
with-input-from-file, with-output-to-file,
transcript-on, transcript-off, and
interaction-environment,
and - and / with more than two arguments.
None of these are in the IEEE standard.
 
- Programs are allowed to redefine built-in procedures.  Doing so
will not change the behavior of other built-in procedures.
 
 
- Port has been added to the list of disjoint types.
 
- The macro appendix has been removed.  High-level macros are now part
of the main body of the report.  The rewrite rules for derived expressions
have been replaced with macro definitions.  There are no reserved identifiers.
 
- Syntax-rules now allows vector patterns.
 
- Multiple-value returns, eval, and dynamic-wind have
been added.
 
- The calls that are required to be implemented in a properly tail-recursive
fashion are defined explicitly.
 
- `@' can be used within identifiers. `|' is reserved
for possible future extensions.