Sometimes I have a function that just needs an iterable (sometimes and opApply-based iterable is OK too, but this is enhahcement request is just for ranges): void foo(Range)(Range data) if (isForwardRange!Range && is(Unqual!(ForeachType!Range) == int)) {} So perhaos it's a good idea to add a simple "isRangeOf" template to Phobos: void foo(Range)(Range data) if (isRangeOf!(Range, int)) {}
Marking this as won't fix because of the discussion here: https://github.com/D-Programming-Language/phobos/pull/3786