public HashPMap<K, V> plusAll(Map<? extends K, ? extends V> map) {
        HashPMap<K, V> result = this;
        for (Entry<? extends K, ? extends V> entry : map.entrySet()) {
            result = result.plus(entry.getKey(), entry.getValue());
        }
        return result;
    }