code: private HamtPMap<K, V> withChildren(int mask, HamtPMap<K, V>[] children) {
      return mask == this.mask && children == this.children
          ? this
          : new HamtPMap<>(key, hash, value, mask, children);
    }
docs: Returns a copy of this node with a different array of children.