anchor.diff:        reportVariables(diff, 'inheritedVariables', io, erase);
     }
   
  +  void _reportImmediateChanges() {
  +    if (!diff.hasChanged)
  +      return;
  +
  +    diff.forEachChanged((String key, List oldNew) {
  +      io.writeln("$name's `${key}` changed:\n");
  +      io.writeWasNow(oldNew[0], oldNew[1],
  +          blockquote: key == 'comment', link: ['superclass'].contains(key));
  +      io.writeHr();
  +    });
  +    diff.changed.clear();
  +  }
  +
  +  void _reportImplements() {
  +    if (!diff.containsKey('implements'))
  +      return;
  +
  +    DiffNode implements = diff['implements'];
  +    if (implements.hasAdded) {
  +      String added = implements.added.values.map(mdLinkToDartlang).join(', ');
  +      io.writeln("$name now implements ${added}.");
  +      erase(implements.added);
  +    }
  +    if (implements.hasRemoved) {
  +      String removed =
  +          implements.removed.values.map(mdLinkToDartlang).join(', ');
  +      io.writeln("$name no longer implements ${removed}.");
  +      erase(implements.removed);
  +    }
  +    io.writeHr();
  +  }
  +
     void _reportEachMethodCategory(String methodCategory, DiffNode diff) =>
         new MethodsReporter(methodCategory, diff, io, erase).report();
   
  -  void _reportList(String owner, String key, DiffNode diff,
  -                   {Function formatter: null}) {
  +  void _reportList(String key, {Function formatter: null}) {
       if (formatter == null)
         formatter = identityFormatter;
   
       if (diff[key].hasAdded) {
  -      io.writeln('$owner has new ${pluralize(key)}:\n');
  +      io.writeln('$name has new ${pluralize(key)}:\n');
         diff[key].forEachAdded((String idx, Object el) {
           el = formatter(el, link: true);
           io.writeln('* $el');
  
positive.code:     }
  
      if (diff[key].hasRemoved) {
        io.writeln('$owner no longer has these ${pluralize(key)}:\n');
        diff[key].forEachRemoved((String idx, Object el) {
          el = formatter(el, link: false);
          io.writeln('* $el');
  
negative.code:     }
  
      if (diff[key].hasChanged) {
        io.writeln('$name has changed ${pluralize(key)}:\n');
        diff[key].forEachChanged((String idx, List oldNew) {
          var theOld = oldNew[0];
          var theNew = oldNew[1];
  