anchor.diff:    visitPartDirective(PartDirective node){
       Source part_source = engine.resolveDirective(source, node);
       ElementGenerator generator = new ElementGenerator(engine, part_source, analysis);
  -    generator.element.addPartOf(source);
  -    element.addPart(part_source);
  +    generator.element.partOf = element;
  +    element.addPart(part_source, generator.element);
       super.visitPartDirective(node);
     }
     
  
positive.code:   visitFunctionDeclaration(FunctionDeclaration node) {
      FunctionElement oldFunctionElement = _currentFunctionElement;
      _currentFunctionElement = new FunctionElement(node, element);
      element.addFunction(_currentFunctionElement);
      
      Block oldBlock = _currentBlock;
      _currentBlock = _currentFunctionElement;
      
      super.visitFunctionDeclaration(node);
      
  
negative.code:       element = new SourceElement(source, unit);
        analysis.addSource(source, element);
        
        //PrintAstVisitor printer = new PrintAstVisitor();
        //printer.visitCompilationUnit(unit);
        
        Block oldBlock = _currentBlock; 
        _currentBlock = element;
        _currentBlock.parent_block = oldBlock;
        
        this.visitCompilationUnit(unit);
        
  