[...] I believe someone has created a byRef struct that wraps a range and iterates it byRef (maybe dsimcha?)
Nope, me. :)
https://github.com/kyllingstad/ltk/blob/master/ltk/range.d#L12It only supports the input range primitives, because that was all I needed when I wrote it. I offered to contribute it to Phobos (with support for the remaining range types, of course), but the interest for it seemed rather low.
-Lars
