It appears that when a stream operation is cancelled the resulting copy-result could be either completed or cancelled. Given that the caller "knows" it has cancelled the stream is there any semantic difference between these two results? If not, could the cancelled code be removed?