anchor.diff:  
   
   _openNewScope(scope, k) {
  +
  +
     Map curr = {};
     curr.addAll(scope);
  +
     var ret = k(scope);
  +
     scope.clear();
     scope.addAll(curr);
     return ret;
  -}
  -
  -_addToScope(scope, bindings, k) {
  -  return _openNewScope(scope, (scope) {
  -    scope.addAll(bindings);
  -    k(scope);
  -  });
   }
   
   //TODO (jln): factories should be handled here. in ConstructorName there should be resolved what is a prefix of another library, and what is a factory call.
   
   class IdentifierResolver extends Our.RecursiveElementVisitor {
   
  -  Map<Our.Name, Our.NamedElement> declaredElements = {};
  +  Map<AstNode, Our.NamedElement> declaredElements = {};
     Our.LibraryElement currentLibrary;
     var engine;
   
  
positive.code:     
      visitBlock(element);
      
      Map<String, Our.NamedElement> scope = {};
      ScopeVisitor visitor = new ScopeVisitor(this.engine, 
                                              scope, 
                                              this.declaredElements,
                                              element.resolvedIdentifiers);
  
      _openNewScope(scope, (scope) => element.ast.accept(visitor));
    }
    
    void visitBlockList(List<Our.Block> blocks) {
  
negative.code:   }
    
    void visitSourceElement(Our.SourceElement element) {
  
      if (element.source != this.engine.entrySource) return;
      
      declaredElements.clear();
  