On 4/27/14, Walter Bright via Digitalmars-d <digitalmars-d@puremagic.com> wrote: > When you find yourself doing things like that, seriously consider creating a > new > module to do it, called "clock".
That's not reliable, because static imports are not enforced. It means anyone importing a module "clock" will automatically have all symbols in "clock" imported into the current module, meaning this will work: ----- import clock; void main() { auto time = currTime(); // note the lack of full qualification } ----- std.datetime rightly tries to discourage symbol pollution by default (it has a lot of symbols to begin with). So you're forced to write: ----- import std.datetime; void main() { auto time = Clock.currTime(); } ----- > Using smaller modules under packages is a much better way. Sorry, but this is currently impossible. Programmers will always use the feature that actually works over a feature that might work some day. Modules have too many open bugs right now, such as leaking selective imports, private visibility, non-propagating package access, etc etc. If you ever try to build a larger library you'll immediately become aware of these issues.