anchor.diff:    // TODO(koda): Ask gbracha why I cannot have fields _equals/_hashCode.
     int _hashCode(e) => _hasher(e);
     bool _equals(e1, e2) => _equality(e1, e2);
  -      
  +
     bool containsKey(Object o) => _validKey(o) ? super.containsKey(o) : false;
     V operator[](Object o) => _validKey(o) ? super[o] : null;
     V remove(Object o) => _validKey(o) ? super.remove(o) : null;
  
positive.code:       _init(_index.length << 1, _hashMask >> 1, _data, _usedData);
      }
    }
    
    void clear() {
      if (!isEmpty) {
        _init(_index.length, _hashMask);
  
negative.code:     _index = new Uint32List(_HashBase._INITIAL_INDEX_SIZE);
      _data = new List(_HashBase._INITIAL_INDEX_SIZE);
    }
  
    int get length => (_usedData >> 1) - _deletedKeys;
    bool get isEmpty => length == 0;
    bool get isNotEmpty => !isEmpty;
  
    void _rehash() {
      if ((_deletedKeys << 2) > _usedData) {
        // TODO(koda): Consider shrinking.
        // TODO(koda): Consider in-place compaction and more costly CME check.
        _init(_index.length, _hashMask, _data, _usedData);
  