On Wednesday, 14 December 2016 at 09:01:30 UTC, Joseph Rushton Wakeling wrote:
On Wednesday, 14 December 2016 at 07:17:57 UTC, Jacob Carlborg wrote:
On 2016-12-14 03:23, Andrei Alexandrescu wrote:
On 12/13/16 9:22 PM, Hatem Oraby wrote:

with(import std.range)
bool equal(R1, R2) if (isInputRange!R1 && isInputRange!R2)
{ ... }

I considered this, then figured with is superfluous. -- Andrei

It could allow to have a better control of the scope which the import affects, i.e.:

with(import std.range)
{
  void foo(T) if (isInputRange!T)
  void bar(T) if (isInputRange!T)
}

Trouble is, there's no real difference between doing that, vs. creating a standalone module containing `foo` and `bar` with `import std.range;` as a top-level import.


That was my impression when reading this DIP. I'm very glad to see that decoupling made its way up in the growing list of things to do, my only concern is that this syntax sounds like a workaround for giant modules.

Phobos is cited as a motivation for this enhancement. Dare I say that we have a problem of modules in phobos being too monolithic, and they should be split into more packages, like std.range and std.algorithms did ?

Reply via email to