anchor.diff:  
     void _initCell(ColorPaletteCellElement cell) {
       cell.onSelectedChange.listen((event) {
  -      var target = event.element;
  +      final target = event.element;
         if (!target.selected) return;
   
         // find and de-select the old selected cell
  
positive.code:   }
  
    void _onAddCells(List<MutationRecord> recs, _) {
      var addedNodes = recs
        .expand((r) => r.addedNodes)
        .where((n) => n is Element)
        .toList(growable: false);
  
negative.code: 
        notifyPropertyChange(#selectedCell, oldSelectedCell, target);
      });
  
      notifyPropertyChange(#selectedCell, null, selectedCell);
    }
  
    void _initEvents() {
      changes
        .expand((r) => r)
        .where((r) => (r is PropertyChangeRecord) && (r.name == #selectedCell))
        .forEach((PropertyChangeRecord r) {
          String oldColor = (r.oldValue == null) ? null : r.oldValue.color;
          String newColor = (r.newValue == null) ? null : r.newValue.color;
          notifyPropertyChange(#color, oldColor, newColor);
          _colorChangeController.add(new ColorChangeEvent(r.oldValue, r.newValue));
        });
    }
  }
  
  class ColorChangeEvent {
    final ColorPaletteCellElement oldCell;
    final ColorPaletteCellElement newCell;
    String get oldColor => (oldCell == null) ? null : oldCell.color;
    String get newColor => (newCell == null) ? null : newCell.color;
    ColorChangeEvent(this.oldCell, this.newCell);
  