anchor.diff:    bool hasBeenCheckedForPackage = false;
     String packageIntro;
   
  +  Map<String, Exported> _exportedMembers;
  +
     Library(LibraryMirror libraryMirror) : super(libraryMirror) {
       var exported = _calcExportedItems(libraryMirror);
  -    this.classes = _createClasses(
  -        exported['classes']..addAll(libraryMirror.classes));
  +    _createClasses(exported['classes']..addAll(libraryMirror.classes));
       this.functions = _createMethods(
           exported['methods']..addAll(libraryMirror.functions));
       this.variables = _createVariables(
           exported['variables']..addAll(libraryMirror.variables));
  +
  +    var exportedVariables = {};
  +    variables.forEach((key, value) {
  +      if (value is ExportedVariable) {
  +        exportedVariables[key] = value;
  +      }
  +    });
  +    _exportedMembers = new Map.from(this.classes.exported)
  +        ..addAll(this.functions.exported)
  +        ..addAll(exportedVariables);
     }
   
     String get packagePrefix => packageName == null || packageName.isEmpty ?
  
positive.code:       owningClass.ensureComments();
      }
      return super.comment;
    }
  }
  
  
negative.code:   if (!dir.existsSync()) {
      dir.createSync();
    }
    if (path.split(filename).length > 1) {
      var splitList = path.split(filename);
      for (int i = 0; i < splitList.length; i++) {
        var level = splitList[i];
      }
      for (var level in path.split(filename)) {
        var subdir = new Directory(path.join(_outputDirectory,
                                             path.dirname(filename)));
        if (!subdir.existsSync()) {
          subdir.createSync();
        }
      }
    }
    File file = new File(path.join(_outputDirectory, filename));
  