function stream(filter, apply, receive) {
    return new EventStream(filter, apply, receive);
  }
Creates a new event stream instance with the provided
(optional) filter, apply and receive functions.
@param {function(Object, number): boolean} [filter] - Filter predicate.
  Events pass through when truthy, events are suppressed when falsy.
@param {function(Object): *} [apply] - Applied to input events to produce
  new event values.
@see EventStream