[R6RS] libraries

dyb at cs.indiana.edu dyb
Wed Dec 7 11:56:13 EST 2005

I don't like conflating namespace management and mutability control;
each is useful independently of the other.  That is, I would have
the library system control visibility of identifiers and introduce a
define-immutable form or allow people to define their own as a macro.
It seems, however, that the sentiment of a majority of this group runs
in the other direction.

Assuming we decide on immutability, then, is that for (a) all bindings,
(b) all exported bindings (indirect as well as direct) only, or (c) all
directly exported bindings only?  Are (i) both exporting and importing
modules enjoined from mutating an export or (ii) just the importing
modules? (I assume we're talking about variable bindings only, in
any case.)

My preference on the first question is (b): there's no reason to
restrict local bindings, but from a program-analysis standpoint (by user
or tool) there's no difference between direct and indirect exports.
My preference, not as strong, on the second question is (i): I think
(ii) will lead to confusion and may hinder program analysis (by user,
at least) in the importing module.


More information about the R6RS mailing list