> No point in forcing the user to allocate "yet again", if he needed a mutable (but unique) buffer

I thought perhaps they would use plain `byLine` for that and `[i]dup` when ready, but you're right that `byLineCopy` would be more useful if it supported mutable copies.

> you could have byLineCopy take Char = immutable(char) as a parameter by default

Another option would be to take `Front = string`, which might be nicer to allow passing `[dw]string` instead of `(immutable [dw]char)` as a template argument for multi-byte characters. Mutable copies would pass `(char[])`. Not a big difference, but makes the immutable case's syntax a bit nicer.

> This would need an extra overload to byLineCopy to work

Do you mean because `byLine`'s first template argument is `Terminator`, not `Char` (and `byLineCopy` is consistent with that order), or am I misunderstanding you?