anchor.diff:  part of dart.async;
   
   /**
  - * A [Future] represents a delayed computation. It is used to obtain a not-yet
  + * An object representing a delayed computation.
  + *
  + * A [Future] is used to obtain a not yet
    * available value, or error, sometime in the future.  Receivers of a
    * [Future] can register callbacks that handle the value or error once it is
    * available. For example:
  
positive.code: }
  
  /**
   * A [Completer] is used to produce [Future]s and to complete those futures
   * with a value or error at a later time.
   *
   * A class that wants to return [Future]s can use a [Completer] as follows:
   *
   *     Class myAsyncOperation {
   *       Completer _completer = new Completer();
   *
   *       Future<T> myOp() {
   *         _startOperation();
   *         // send future object back to client...
   *         return _completer.future;
   *       }
   *
   *       // Something calls this when the value is ready.
   *       _finishOperation(T result) {
   *         _completer.complete(value);
   *       }
   *
   *       // If something goes wrong, call this.
  
negative.code:  *         _completer.completeError(error);
   *       }
   *     }
   */
  abstract class Completer<T> {
  
  