anchor.diff:    TimeoutException(this.message, [this.duration]);
   
     String toString() {
  -    if (message != null) {
  -      if (duration != null) return "TimeoutException after $duration: $message";
  -      return "TimeoutException: $message";
  -    }
  -    if (duration != null) return "TimeoutException after $duration";
  -    return "TimeoutException";
  +    String result = "TimeoutException";
  +    if (duration != null) result = "TimeoutException after $duration";
  +    if (message != null) result = "$result: $message";
  +    return result;
     }
   }
   
  
positive.code:   factory Completer.sync() => new _SyncCompleter<T>();
  
    /** The future that will contain the result provided to this completer. */
    Future get future;
  
    /**
     * Completes [future] with the supplied values.
     *
     * If the value is itself a future, the completer will wait for that future
     * to complete, and complete with the same result, whether it is a success
  
negative.code:   Future<T> whenComplete(action());
  
    /**
     * Creates a [Stream] containing the result of this future.
     *
     * The stream will produce single data or error event containing the
     * completion result of this future, and then it will close with a
     * done event.
     *
     * If the future never completes, the stream will not produce any events.
     */
    Stream<T> asStream();
  
  