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 535: Libraries should have at most one begin

2013-07-07 03:20:44
WG1 - Core
2013-05-20 00:00:29

Michael Montague writes:

I believe that a library should have at most one begin and it should have the semantics of a body (though no expressions are required). This would make the semantics of library bodies clear and make R7RS libraries much closer to R6RS libraries, with little loss in expressiveness.

The question is, what gain is to counterbalance that loss? It's easy for users who agree with this to make sure their libraries have at most one begin, and likewise to reformat existing libraries if they feel strongly about it. The benefit, then, must be to implementers -- but what benefit is that? The define-library form must be read as a whole, and the first step will normally be to concatenate the begin declarations.

In addition, the restriction in the draft that imported identifiers cannot appear in a library textually before the import declaration that introduces them (see #353) means that it's possible to construct a library incrementally, adding new import and begin declarations as you go. This is a convenience for programs that create libraries.

Without a definite improvement visible from the restriction to a single begin declaration, this proposal would indeed be one of those "weaknesses and restrictions" that the Scheme standards denounce.


The WG decided by unanimous consent to take no action on this ticket.