anchor.diff:  
     String get name => docName(mirror);
   
  -  /// Returns a [ClassGroup] containing error, typedef and regular classes.
  -  ClassGroup _createClasses(Map<String, ClassMirror> mirrorMap) {
  -    var group = new ClassGroup();
  +  /// Set our classes field with error, typedef and regular classes.
  +  void _createClasses(Map<String, ClassMirror> mirrorMap) {
  +    this.classes = new ClassGroup();
       mirrorMap.forEach((String mirrorName, ClassMirror mirror) {
  -        group.addClass(mirror);
  +      this.classes.addClass(mirror, this);
       });
  -    return group;
     }
   
     /// For the given library determine what items (if any) are exported.
  
positive.code:       }
      } else {
        var clazz = new Class(classMirror);
  
        if (clazz.isError()) {
          errors[classMirror.simpleName] = clazz;
  
negative.code:   }
  }
  
  class ExportedMethod extends Method implements Exported {
    Library _exportingLibrary;
  
    ExportedMethod(MethodMirror originalMethod, Library this._exportingLibrary) :
        super(originalMethod);
  
    String get fileName => '${_exportingLibrary.packageName}/' +
        super.fileName.substring(packagePrefix.length);
  
    void updateExports(Map<String, Indexable> libraryExports) {
      // TODO(efortuna): if this class points to another exported class or type
      // of some sort, then that reference needs to be updated here.
      /* these need to be updated:
      'qualifiedName': qualifiedName,
      'comment': comment,
      'commentFrom': commentInheritedFrom,
      'return': new List.filled(1, returnType.toMap()),
      'parameters': recurseMap(parameters),
      'annotations': annotations.map((a) => a.toMap()).toList()
      */
    }
  }
  
  
  
  /// A container to categorize methods into the following groups: setters,
  /// getters, constructors, operators, regular methods.
  class MethodGroup {
  