std.array.array will never work with ranges with a transient
front unless it
somehow knew when it was and wasn't appropriate to dup, which
it's not going
to know purely by looking at the type of front. The creator of
the range would
have to tell them somehow. And even then, it wouldn't work
beyond the built-in
types, because there's no generic way to dup stuff.
Daniel was actually talking about std.byLine.map!"a.dup", which
is not a transient range, but would be considered transient if we
did what Andrei suggests.