anchor.diff:   */
   abstract class Description {
     /** Change the value of the description. */
  -  Description replace(String text);
  +  abstract Description replace(String text);
   
     /** This is used to add arbitrary text to the description. */
  -  Description add(String text);
  +  abstract Description add(String text);
   
     /** This is used to add a meaningful description of a value. */
  -  Description addDescriptionOf(value);
  +  abstract Description addDescriptionOf(value);
   
     /**
      * This is used to add a description of an [Iterable] [list],
      * with appropriate [start] and [end] markers and inter-element [separator].
      */
  -  Description addAll(String start, String separator, String end,
  +  abstract Description addAll(String start, String separator, String end,
                        Iterable list);
   }
   
  
positive.code:    * information that is not typically included but can be of help in
     * diagnosing failures, such as stack traces.
     */
    Description describeMismatch(item, Description mismatchDescription,
        MatchState matchState, bool verbose);
  }
  
  
negative.code:    * these to create a detailed error message (typically by calling
     * an [ErrorFormatter]) and then call [fail] with this message.
     */
    abstract void failMatch(actual, Matcher matcher, String reason,
                   MatchState matchState, bool verbose);
  }
  
  