anchor.diff:    R visitMethodElement(MethodElement node);
   }
   
  -abstract class RecursiveElementVisitor<A> implements ElementVisitior<A> {
  +class RecursiveElementVisitor<A> implements ElementVisitior<A> {
     A visitElementAnalysis(ElementAnalysis node) {
       A res = null;
       node.libraries.values.forEach((SourceElement source) => res = this.visitSourceElement(source));
  
positive.code: import 'package:analyzer/src/generated/ast.dart';
  import 'engine.dart';
  
  import 'printer.dart';
  
  class ElementAnalysis {
    Map<Source, SourceElement> sources = <Source, SourceElement>{};
    Map<LibraryIdentifier, SourceElement> libraries = <LibraryIdentifier, SourceElement>{};
    
    bool containsSource(Source source) => sources.containsKey(source);
  
negative.code: }
  
  
  /**
   * Instances of the class `SourceElement` represents a source file and contains all the the information reguarding its content
   **/
  class SourceElement extends Block {
    Source source;
    CompilationUnit ast;
    
    //If library is `null` it means that the library is implicit named. This means the library name is: ''.
    LibraryIdentifier library = null;
    
    List<Source> partOf = <Source>[];
  