Sometimes I have a function that needs an iterable: void foo(Range)(Range data) if (isForwardRange!Range && is(Unqual!(ForeachType!Range) == int)) {} So is it a good idea to add a "isRangeOf" template to Phobos? void foo(Range)(Range data) if (isRangeOf!(Range, int)) {} Bye, bearophile