> This is a minor point, but rather than all, we'd use * instead, to mirror > import M.* or M.{*} or import * from M; whatever it ends up being.
Agreed. As for the meaning: from my experience with PLT Scheme it works well for "export *;" to export everything that's defined in the module, but not re-export any imports. For that you'd have to explicitly re-export them. I think either semantics (import "all defined here" vs. "all in scope here") works fine, but the common case of importing is for private use, and re-exporting is the less common case. On a related note, I forgot to stipulate in the proposal what happens with diamond imports. For example: module Shared { export var x = ... } module Lib1 { import Shared.x; export x; } module Lib2 { import Shared.x; export x; } module Client { import Lib1.*; import Lib2.*; ... x ... // error or no error? } Because module bindings are static, it's straightforward to determine that both Lib1.x and Lib2.x point to the same binding (Shared.x). So I claim that we should loosen the error condition to the following: It is a static error to import the same name from two different modules *unless both bindings are the same*. Dave _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss