anchor.diff:     * data or error, and then close with a done-event.
      */
     factory Stream.fromFuture(Future<T> future) {
  +    // Use the controller's buffering to fill in the value even before
  +    // the stream has a listener. For a single value, it's not worth it
  +    // to wait for a listener before doing the `then` on the future.
       StreamController<T> controller = new StreamController<T>(sync: true);
       future.then((value) {
           controller.add(value);
  
positive.code:    * into the error channel of the returned stream.
     *
     * The returned stream is a broadcast stream if this stream is.
     */
    Stream timeout(Duration timeLimit, {void onTimeout(EventSink sink)}) {
      StreamController controller;
  
negative.code: 
    /**
     * Binds this stream as the input of the provided [StreamConsumer].
     *
     * The `streamConsumer` is closed when the stream has been added to it.
     *
     * Returns a future which completes when the stream has been consumed
     * and the consumer has been closed.
     */
    Future pipe(StreamConsumer<T> streamConsumer) {
      return streamConsumer.addStream(this).then((_) => streamConsumer.close());
  