anchor.diff:    bool doesReference(SimpleIdentifier ident) => references.contains(ident);
   }
   
  -
  +/**
  + * Instances of a class `ClassMember` is a our abstract representation of class members
  + **/
   class ClassMember {
     ClassElement classDecl;
     ClassMember (ClassElement this.classDecl);
   }
   
  +
  +/**
  + * Instances of a class`FieldElement` is a our abstract representation of fields
  + **/
   class FieldElement extends ClassMember {
     
     List<Identifier> references = <Identifier>[];
  
positive.code:   }
    
    A visitSourceElement(SourceElement node) {
      A res = null;
      node.variables.values.forEach((VariableElement varDecl) => res = this.visitVariableElement(varDecl));
      node.functions.forEach((FunctionElement func) => res = this.visitFunctionElement(func));
      node.classes.forEach((ClassElement classDecl) => res = this.visitClassElement(classDecl));
      return res;
    }
    
    A visitClassElement(ClassElement node) {
      A res = null;
      node.fields.forEach((FieldElement field) => res = this.visitFieldElement(field));
      node.methods.forEach((MethodElement method) => res = this.visitMethodElement(method));
      return res;
    }
    
    A visitFunctionElement(FunctionElement node) {
      A res = null;
      node.variables.values.forEach((VariableElement varDecl) => res = this.visitVariableElement(varDecl));
      return res;
    }
    
    A visitMethodElement(MethodElement node) {
      A res = null;
      node.variables.values.forEach((VariableElement varDecl) => res = this.visitVariableElement(varDecl));
      return res;
    }
  }
  
  
negative.code: }
  
  
  /**
   * Instances of a class`FunctionElement` is a our abstract representation of functions
   **/
  class FunctionElement extends Block implements Element {
    SourceElement source;
    FunctionDeclaration ast;
  