anchor.diff:      ));
     }
   
  -  EventStream flatMapLatest(Stream convert(T event)) {
  -    return new _ReactableAsStream(new _FlatMapLatestReactable(this, convert));
  -  }
  +  EventStream flatMapLatest(Stream convert(T event)) => new EventStream(
  +      new _ReactableAsStream(new _FlatMapLatestReactable(this, convert)));
   
     /// Returns a new stream that contains events from this stream until the [future]
     /// completes.
     Reactable<T> takeUntil(Future future) => new _TakeUntilReactable(this, future);
   
  -  Reactable<T> takeWhile(bool test(T element)) => new _ReactableAsStream(this).takeWhile(test);
  +  Reactable<T> takeWhile(bool test(T element)) => new EventStream(new _ReactableAsStream(this).takeWhile(test));
   
     /// Returns a new reactable that forwards events when the last value for [toggle] is
     /// `true`.
  
positive.code:   /// Errors will always be forwarded regardless of the value of [toggle].
    Reactable<T> when(Reactable<bool> toggle) => new _WhenReactable(this, toggle);
  
    Reactable<T> where(bool test(T event)) => new _ReactableAsStream(this).where(test);
  }
negative.code:   /// Delays the delivery of each non-error event from this stream by the given [duration].
    Reactable<T> delay(Duration duration) => new _DelayReactable(this, duration);
  
    Reactable<T> distinct([bool equals(T previous, T next)]) => new EventStream(
        new _ReactableAsStream(this).distinct(equals));
  
    Future drain([futureValue]) => new _ReactableAsStream(this).drain(futureValue);
  
    Future<bool> every(bool test(T element)) => new _ReactableAsStream(this).every(test);
  
    Reactable expand(Iterable convert(T value)) => new EventStream(new _ReactableAsStream(this).expand(convert));
  
    Future<dynamic> firstWhere(bool test(T element), {Object defaultValue()}) =>
        new _ReactableAsStream(this).firstWhere(test, defaultValue: defaultValue);
  