anchor.diff:    /**
      * Finds the last element in this stream matching [test].
      *
  -   * As [firstWhere], except that the last matching element is found.
  -   * That means that the result cannot be provided before this stream
  +   * If this stream emits an error, the returned future is completed with that
  +   * error, and processing stops.
  +   *
  +   * Otherwise as [firstWhere], except that the last matching element is found
  +   * instead of the first.
  +   * That means that a non-error result cannot be provided before this stream
      * is done.
      */
     Future<dynamic> lastWhere(bool test(T element), {Object defaultValue()}) {
  
positive.code:       {Function onError, void onDone(), bool cancelOnError});
  
    /**
     * Creates a new stream from this stream that discards some data events.
     *
     * The new stream sends the same error and done events as this stream,
     * but it only sends the data events that satisfy the [test].
     *
     * The returned stream is a broadcast stream if this stream is.
     * If a broadcast stream is listened to more than once, each subscription
  
negative.code:   }
  
    /**
     * Executes [action] on each element of the stream.
     *
     * Completes the returned [Future] when all elements of the stream
     * have been processed.
     *
     * If the stream contains an error, or if the call to [action] throws,
     * the returne future completes with that error, and processing stops.
     */
    Future forEach(void action(T element)) {
      _Future future = new _Future();
  