code: @Override
    public HamtPMap<K, V> plus(K key, V value) {
      return !isEmpty()
          ? plus(key, hash(key), checkNotNull(value))
          : new HamtPMap<>(key, hash(key), value, 0, emptyChildren());
    }
docs: Returns a new map with the given key-value pair added. If the value is already present, then
  this same map will be returned.