anchor.diff:    bool get isConst => varDecl.isConst;
     bool get isFinal => varDecl.isFinal;
     
  +  dynamic accept(ElementVisitor visitor) => visitor.visitFieldElement(this);
  +
     FieldElement(FieldDeclaration this.ast,VariableDeclaration this.varDecl, ClassElement classDecl): super(classDecl); 
   }
   
  
positive.code:   bool containsLibrary(LibraryIdentifier lib) => libraries.containsKey(lib);
    SourceElement addLibrary(LibraryIdentifier lib, SourceElement element) => libraries[lib] = element;
    SourceElement getLibrary(LibraryIdentifier lib) => libraries[lib];
  }
  
  
  class Element {}
  class Block {
    Map<SimpleIdentifier, VariableElement> variables = <SimpleIdentifier, VariableElement>{};
    
    VariableElement addVariable(SimpleIdentifier ident, VariableElement variable) => variables[ident] = variable; 
    
    VariableElement lookupVariableElement(SimpleIdentifier ident) => variables[ident];
  }
  
  
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{
  