code: @Override
    public boolean equivalent(PMap<K, V> that, BiPredicate<V, V> equivalence) {
      return equivalent(
          !this.isEmpty() ? this : null, !that.isEmpty() ? (HamtPMap<K, V>) that : null, equivalence);
    }
docs: Checks equality recursively based on the given equivalence. Short-circuits as soon as a 'false'
  result is found.