anchor.diff:      if ((_bitmap & mask) != 0) {
         int index = _popcount(_bitmap & (mask - 1));
         _Node<K, V> m = _array[index];
  -      return m._intersectWith(owner, keyValues, kvLength, combine, hash, depth + 1);
  +      return m._intersectWith(owner, pairs, pairsLength, combine, hash, depth + 1);
       } else {
         return new _EmptyMap(owner);
       }
  
positive.code:       // TODO: find out if there's a "copy array" native function somewhere
        for (int i = 0; i < index; i++) { newarray[i] = _array[i]; }
        for (int i = index; i < newlength - 1; i++) { newarray[i+1] = _array[i]; }
        newarray[index] = new _Leaf<K, V>.abc(owner, hash, keyValues, kvLength);
        return new _SubMap<K, V>.ensureOwner(this, owner, _bitmap | mask, newarray, length + kvLength);
      }
    }
  
    _Node<K, V> _intersectWith(_Owner owner, LinkedList<Pair<K, V>> keyValues, int kvLength,
        V combine(V x, V y), int hash, int depth) {
      assert(kvLength == keyValues.length);
  
      int branch = (hash >> (depth * 5)) & 0x1f;
      int mask = 1 << branch;
  
negative.code:     return new _Leaf.abc(owner, hash, pairs, length);
    }
  
    _Node<K, V> _insertWith(_Owner owner, LinkedList<Pair<K, V>> pairs, int pairsLength,
        V combine(V x, V y), int hash, int depth) {
      assert(pairsLength == pairs.length);
      // newsize is incremented as a side effect of insertPair
      int newsize = length;
  
  