anchor.diff:    }
   
     @override
  -  visitClass(Class node) {
  -    var level = node.level;
  -    node.level = ClassLevel.Hierarchy;
  -    super.visitClass(node);
  -    node.level = level;
  -  }
  -
  -  @override
  -  visitField(Field node) {
  -    if (data.isFieldInitializerUsed(node)) {
  -      super.visitField(node);
  -    } else {
  -      var initializer = node.initializer;
  -      node.initializer = null;
  -      super.visitField(node);
  -      node.initializer = initializer;
  -    }
  -  }
  -
  -  @override
  -  visitFunctionNode(FunctionNode node) {
  -    var body = node.body;
  -    node.body = null;
  -    super.visitFunctionNode(node);
  -    node.body = body;
  +  void writeProgramIndex(Program program, List<Library> libraries) {
  +    super.writeProgramIndex(program, librariesToWrite);
     }
   
     @override
  
positive.code:     }
    }
  
    TreeNode defaultTreeNode(TreeNode node) => node;
  
    static void _clearParameterInitializers(FunctionNode function) {
      for (var parameter in function.positionalParameters) {
        parameter.initializer = null;
  
negative.code: /// but those will be marked as external. There should be no method bodies for
  /// any members of those libraries.
  void trimProgram(Program program, bool isIncluded(Uri uri)) {
    var data = new _RetainedDataBuilder();
    data._markRequired(program);
  
    data.markMember(program.mainMethod);
    for (var library in program.libraries) {
      if (isIncluded(library.importUri)) {
        library.accept(data);
      }
    }
  
    new _KernelOutlineShaker(isIncluded, data).transform(program);
  }
  
  /// Transformer that trims everything in the excluded libraries that is not
  /// marked as preserved by the given [_RetainedData]. For every member in these
  /// excluded libraries, this transformer also removes function bodies and
  /// initializers.
  class _KernelOutlineShaker extends Transformer {
    final bool Function(Uri uri) isIncluded;
    final _RetainedData data;
  
    _KernelOutlineShaker(this.isIncluded, this.data);
  
    @override
    Member defaultMember(Member node) {
      if (!data.isMemberUsed(node)) {
        node.canonicalName?.unbind();
  