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 514: New module syntax is ugly and unnecessary

2013-07-07 03:20:44
WG1 - Core
2013-05-13 08:37:34

Aaron Hsu writes:

While I understand and support to some degree the change of module syntax to favor a more extensible syntax, the way in which this was extended bothers me to some degree. This would include the include-{ci,library-declarations} forms, which feel ugly and unnecessary. Indeed, they are necessary largely because of the limitations on the way that we have treated modules, and I would have preferred to make modules extensible in the Scheme way, rather than the way that we have, but what we have is a compromise.

The case for include variants is that they promote modularity, specifically modularity between code bodies and library declarations, the former often being more portable than the latter. They could have been subsumed by a low-level macro facility, it's true.

Static library systems like those of R6RS and the draft are intentionally weak in the interest of making them easy to implement and use, thus promoting interchange. The draft's variant of R6RS lacks only library versioning (see #491) and explicit phasing information (which has a strange status in R6RS: it is not portable to omit it, but implementations are free to ignore it). I agree that what we have is a compromise, and compromises by nature tend to satisfy nobody; the best hope is that all can live with them.


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