function filter (p, stream) {
  return new Stream(Filter.create(p, stream.source))
}
Retain only items matching a predicate
@param {function(x:*):boolean} p filtering predicate called for each item
@param {Stream} stream stream to filter
@returns {Stream} stream containing only items for which predicate returns truthy