anchor.diff:     * as [test] returns [:true:] for the event data. The stream is done
      * when either this stream is done, or when this stream first provides
      * a value that [test] doesn't accept.
  +   * 
  +   * Stops listening to the stream after the accepted elements.
  +   *
  +   * Internally the method cancels its subscription after these elements. This
  +   * means that single-subscription (non-broadcast) streams are closed and
  +   * cannot be reused after a call to this method.
      */
     Stream<T> takeWhile(bool test(T element)) {
       return new _TakeWhileStream(this, test);
  
positive.code:     return future;
    }
  
    /** Reports whether this stream contains any elements. */
    Future<bool> get isEmpty {
      _Future<bool> future = new _Future<bool>();
      StreamSubscription subscription;
  
negative.code:   /**
     * Returns the value of the [index]th data event of this stream.
     *
     * Stops listening to the stream after the [index]th data event has been
     * received.
     *
     * Internally the method cancels its subscription after these elements. This
     * means that single-subscription (non-broadcast) streams are closed and
     * cannot be reused after a call to this method.
     *
     * If an error event occurs before the value is found, the future completes
     * with this error.
  