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

  public static <K, V> MapStream<K, V> concat(
      MapStream<? extends K, ? extends V> a,
      MapStream<? extends K, ? extends V> b) {

    @SuppressWarnings("unchecked")
    MapStream<K, V> kvMapStream = new MapStream<>(Streams.concat(
        (Stream<? extends Map.Entry<K, V>>) a,
        (Stream<? extends Map.Entry<K, V>>) b));
    return kvMapStream;
  }

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

}