I was not suggesting that C2 adopt the exact system proposed by Apple. I thought it was an interesting read (as much as you can read slides) to see the issues that they wanted to tackle.
C2 would not have any need for the backward-compatibility aspects of the Apple proposal.
Eiffel has some interesting ways of importing other modules too. I will have to look back over the discussion to see if that was already referenced.
It is easy to fall into the trap of doing so much that the common case is painfully verbose (hello, Ada!).
There are some very interesting things happening in the Javascript world. Since Javascript has no module/package system of its own, all these methods rely on convention. Some are quite interesting. One thing I like is the use of namespaces being passed in to functions that create the module.
Imagine something like this (please excuse the pathetic syntax):
namespace libs {
with mylogging from awesomelogging;
with yourlogging from waycoollogging;
}
Then I can use libs.mylogging.XYZ. I have created a package namespace local to my code on the fly.
I am not sure this is useful or makes any sense. I need to think about it a bit more. This kind of thing is used in Javascript. C2 is static, not dynamic here, but I think much of the same thing could be done, if it was useful.
Best,
Kyle