see std.range.inputRangeObject and the associated interfaces
http://dlang.org/phobos/std_range.html#InputRange it is templated on only the element type
see std.range.inputRangeObject and the associated interfaces
http://dlang.org/phobos/std_range.html#InputRange it is templated on only the element type