There are two different questions:
- expressiveness
- efficiency
Real efficiency of transfer (without any intermediate copy) is only guaranteed in very rare cases
(if the target collection of write stream is same species as source collection of read stream, and there are no transform in any of the intermediate wrapper streams, then a direct bulk transfer of the form�� targetCollection replaceFrom:to:with: sourceCollection startingAt: is possible)
I'm not at all convinced that we should focus too much on such optimization.
The fact that we have at least two choices, let the readStream drive the operation, or let the writeStream do it, is a smell.
It sounds like we could provide the two:
������ aReadStream writeContentsTo: aWriteStream.