function tap (f, stream) {
  return new Stream(new Tap(f, stream.source))
}
Perform a side effect for each item in the stream
@param {function(x:*):*} f side effect to execute for each item. The
 return value will be discarded.
@param {Stream} stream stream to tap
@returns {Stream} new stream containing the same items as this stream