anchor.diff:  class SourceElement extends Block {
     Source source;
     CompilationUnit ast;
  -  
     LibraryIdentifier library = null;
  -  
     List<Source> partOf = <Source>[];
  -
     List<Source> imports = <Source>[];
     List<Source> parts = <Source>[];
     List<Source> exports = <Source>[];
  
positive.code:   bool get isStatic => ast.isStatic;
    bool get isSynthetic => ast.isSynthetic;
      
    MethodElement(MethodDeclaration this.ast, ClassElement classDecl): super(classDecl);
  }
  
  
negative.code:   SourceElement(Source this.source, CompilationUnit this.ast);
    
    void addImport(Source source) => imports.add(source);
    void addExport(Source source) => exports.add(source);
    void addPart(Source source) => parts.add(source);
    void addPartOf(Source source) => partOf.add(source);
    void addClass(ClassElement classDecl) => classes.add(classDecl);
    void addFunction(FunctionElement func) => functions.add(func);
    dynamic accept(ElementVisitor visitor) => visitor.visitSourceElement(this);
  }
  
  class ClassElement implements Element{
  