anchor.diff:      return new Duration(microseconds: _duration ~/ quotient);
     }
   
  +  /**
  +   * Returns `true` if the value of this Duration
  +   * is less than the value of [other].
  +   */
     bool operator <(Duration other) => this._duration < other._duration;
   
  +  /**
  +   * Returns `true` if the value of this Duration
  +   * is greater than the value of [other].
  +   */
     bool operator >(Duration other) => this._duration > other._duration;
   
  +  /**
  +   * Returns `true` if the value of this Duration
  +   * is less than or equal to the value of [other].
  +   */
     bool operator <=(Duration other) => this._duration <= other._duration;
   
  +  /**
  +   * Returns `true` if the value of this Duration
  +   * is greater than or equal to the value of [other].
  +   */
     bool operator >=(Duration other) => this._duration >= other._duration;
   
     /**
  -   * This [Duration] in days. Incomplete days are discarded
  +   * Returns the number of whole days spanned by this Duration.
      */
     int get inDays => _duration ~/ Duration.MICROSECONDS_PER_DAY;
   
     /**
  -   * This [Duration] in hours. Incomplete hours are discarded.
  +   * Returns the number of whole hours spanned by this Duration.
      *
      * The returned value can be greater than 23.
      */
     int get inHours => _duration ~/ Duration.MICROSECONDS_PER_HOUR;
   
     /**
  -   * This [Duration] in minutes. Incomplete minutes are discarded.
  +   * Returns the number of whole minutes spanned by this Duration.
      *
      * The returned value can be greater than 59.
      */
     int get inMinutes => _duration ~/ Duration.MICROSECONDS_PER_MINUTE;
   
     /**
  -   * This [Duration] in seconds. Incomplete seconds are discarded.
  +   * Returns the number of whole seconds spanned by this Duration.
      *
      * The returned value can be greater than 59.
      */
     int get inSeconds => _duration ~/ Duration.MICROSECONDS_PER_SECOND;
   
     /**
  -   * This [Duration] in milliseconds. Incomplete milliseconds are discarded.
  +   * Returns number of whole milliseconds spanned by this Duration.
      *
      * The returned value can be greater than 999.
      */
     int get inMilliseconds => _duration ~/ Duration.MICROSECONDS_PER_MILLISECOND;
   
     /**
  -   * This [Duration] in microseconds.
  +   * Returns number of whole microseconds spanned by this Duration.
      */
     int get inMicroseconds => _duration;
   
  +  /**
  +   * Returns `true` if this Duration is the same object as [other].
  +   */
     bool operator ==(other) {
       if (other is !Duration) return false;
       return _duration == other._duration;
  
positive.code:                     microseconds;
  
    /**
     * Returns the sum of this [Duration] and [other]  as a new [Duration].
     */
    Duration operator +(Duration other) {
      return new Duration(microseconds: _duration + other._duration);
    }
  
    /**
     * Returns the difference of this [Duration] and [other] as a new
     * [Duration].
     */
    Duration operator -(Duration other) {
      return new Duration(microseconds: _duration - other._duration);
    }
  
    /**
     * Multiplies this [Duration] by the given [factor] and returns the result
     * as a new [Duration].
     *
     * Note that when [factor] is a double, and the duration is greater than
     * 53 bits, precision is lost because of double-precision arithmetic.
  
negative.code: 
    static const Duration ZERO = const Duration(seconds: 0);
  
    /*
     * The value of this Duration object in microseconds.
     */
    final int _duration;
  
    /**
     * Creates a new Duration object whose value
     * is the sum of all individual parts.
     *
     * Individual parts can be larger than the next-bigger unit.
     * For example, [hours] can be greater than 23.
     *
     * All individual parts are allowed to be negative.
     * All arguments are 0 by default.
     */
    const Duration({int days: 0,
                    int hours: 0,
  