Instead of "[...] contains only the bindings [...]" in null-environment
and scheme-report-environment descriptions (page 51, section 6.1)
I propose "contains bindings", without "only". In the description
of environment I propose using "implementation-specific (possibly
empty)" instead of "empty".
Thank you. This helps, but it's still not clear enough. I've filed
Ticket #350 to make sure that we improve this language.
Right. I know I'm being too pedantic here, but I still want to point
out that I can't name my library (lib 802000) and expect the name
to work everywhere: the report allows, but does not guarantee that
it's a valid library name.
Alex has filed a ticket that mandates a minimum range for exact integers. We'll probably have to vote on that, i.e. on what specific range will be required.
The top level of a program may also include import declarations.
In a library declaration, it is an error to import the same
identifier more than once with different bindings, or to redefine
or mutate an imported binding with define, define-syntax or set!.
However, a REPL should permit these actions.
So, overlapping imports, redefinitions, etc. are not allowed in
library declarations, allowed in the REPL, but what about the top
level? The paragraph above should say something about top level.
Not every terminal is vt100-compatible (although that sequence is
rather portable), not every scheme outputs to a terminal, not every
scheme can output to a terminal (e.g. DrRacket), and not all operating
systems even have such a concept (e.g. Windows). What if I'll want
to run the example?
The comment explaining what that line does will be clear to everyone. If you're not using a VT100-compatible terminal, change the code to invoke your implementation's clear-screen operation. That isn't asking a lot. Or just remove it.