With my OO programming goggles on, I can't help but notice that if Phobos had made File a class--or an interface--
oo doesn't own polymorphism you could do 99% of the value with
```d
struct dummyfile{
auto byLineCopy()=>//string.spiltter('\n')....
}
auto myfunc(F)(F file){
foreach(s;file.byLineCopy){
...
}
}
unittest{ assert(
dummyfile(q{
...
}).myfunc
== ...);
}
```
