>  The underlying array may point to data that will be overwritten by a subsequent call to Scan    That sounds scary - are we sure this data is not being overwritten? - i.e. we call `Bytes`, put it on the channel again, and call `Scan` before picking the bytes off the channel.