anchor.diff:    }
     
     void _subsetConstraint(TypeIdentifier a, TypeIdentifier b) {
  +    
       if (a != b)
         foreach(a).update((AbstractType type) => types.put(b, type));
     }
  
positive.code:   }
    
    bool remove(void func(AbstractType)){
      //_filters.remove(func);
      return _event_listeners.remove(func);
    }
    
  
negative.code:   List<AbstractType> get types => new List.from(_types); 
    
    Function onChange(NotifyFunc func) {
      
      /*
       *  TODO 
       *  This condition is never met, because dart basicly uses pointer comparison for function equality,
       *  so two calls with the syntacticly same lambda wont be considered equals.
       *
       * if (_event_listeners.contains(func)) {
       *   return (() => this.remove(func));
       * }
       */
      
      _event_listeners.add(func);
      
  