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

  public MapStream<K, V> filterValues(Predicate<? super V> predicate) {
    return wrap(underlying.filter(e -> predicate.test(e.getValue())));
  }

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

}