[r6rs-discuss] (rnrs) composition seems wrong
Currently (rnrs) is not really a composite library, but perhaps it should be
one.
IMO it is misleading to say, as the report current does, that (rnrs) is a
composite of other libraries, including for example (rnrs base). In fact,
(rnrs) is /not/ defined by composing libraries in the following way:
(library (rnrs)
(export let-syntax syntax-rules -----------------)
(import (for (rnrs base) run expand)
------))
An (rnrs) so defined would indeed export let-syntax at levels 0 and 1,
but it would export syntax-rules at levels 1 and 2, in conflict with the
current requirement. So (rnrs base) is not currently really being composed with
other things to make (rnrs).
But maybe this is how the composite library should in fact be defined. For
example, it makes little sense to export both let-syntax and syntax-rules
at level 0 (as currently specified), since the level-0 instance of syntax-rules
can never be used if we only do (import (rnrs)).
Even worse for the stated convenience rationale for the existence of (rnrs)
is the fact that LET-SYNTAX is available at level 1, yet the usefulness of the
level 1 LET-SYNTAX is severely curtailed by the unavailability of SYNTAX-RULES
at level 2.
So perhaps the above composition, that exports SYNTAX-RULES, ..., _, at levels
1 and 2, is in fact the natural and convenient thing to do.
Andre
Received on Fri Jun 15 2007 - 18:13:11 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC