: each-morsel ( handler: ( data -- ) reader: ( -- data ) -- ) [ dup ] compose swap [ drop ] while ; inline : stream-copy ( in out -- ) [ [ ] ] curry with-input-stream ;