docs: function reduce(parent$, fn, startValue) {
    let aggregate = startValue;
    let newStream = stream();
    function reduceValue(value) {
      aggregate = fn(aggregate, parent$.value);
      newStream(aggregate);
    }
    if (parent$.value !== undefined) {
      reduceValue(parent$.value);
    }
    parent$.listeners.push(reduceValue);
    return newStream;
  }