code: private HamtPMap<K, V> vacateRoot() {
      int bucket = bucket(this.hash);
      int bucketMask = 1 << bucket;
      int index = index(bucketMask);
      if ((mask & bucketMask) != 0) {
        HamtPMap<K, V> newChild = children[index].plus(this.key, shift(this.hash), this.value);
        return new HamtPMap<>(null, 0, null, mask, replaceChild(children, index, newChild));
      }
      HamtPMap<K, V> newChild =
          new HamtPMap<>(this.key, shift(this.hash), this.value, 0, emptyChildren());
      return new HamtPMap<>(null, 0, null, mask | bucketMask, insertChild(children, index, newChild));
    }
docs: Moves the root into the appropriate child.