class MapStream implements Stream<Map.Entry<K, V>> {

  public Optional<Map.Entry<K, V>> minValues(Comparator<? super V> comparator) {
    return underlying.min((e1, e2) -> comparator.compare(e1.getValue(), e2.getValue()));
  }

  private  MapStream(Stream<Map.Entry<K, V>> underlying);

}