anchor.diff:      Node<K, V> newRoot =
           (_root == null ? new BitmapIndexedNode<K, V>.empty() : _root)
               .add(0, key.hashCode, key, value, addedLeaf);
  -    if (newRoot == _root) return this;
  +    if (identical(newRoot, _root)) return this;
       return new HamtImmutableMap._internal(
           addedLeaf.value == null ? length : length + 1,
           newRoot,
  
positive.code:     if (keyOrNull == null) {
        Node<K, V> n = (valueOrNode as Node<K, V>)
            .removeM(shift + 5, hash, key, removedLeaf);
        if (n == valueOrNode) return this;
        if (n != null) return _editAndSet(2 * idx + 1, n);
        if (bitmap == bit) return null;
        return _editAndRemovePair(bit, idx);
  
negative.code:   @override
    ImmutableMap<K, V> add(K key, V value) {
      if (key == null) {
        if (_hasNull && identical(value, _nullValue)) return this;
        return new HamtImmutableMap._internal(
            _hasNull ? length : length + 1, _root, true, value);
      }
  