Ok. Enough for now...but Is there a way to avoid this array special handling:static if (isArray!R) _range = (D[]).init; else _range = R(); // return empty rangethrough some initializer expression for _range that covers both R() and (D[]).init ?
The answer was right in front of me... _range = R.init
