class IDEA101168 { public void foo(Stream> stream, Collector collector) { stream.map(Object ::toString).collect(collector); } interface OfPrimitive { } interface Collector { interface OfInt extends Collector { } } interface Stream extends BaseStream { Stream map(Function mapper); IntStream map(ToIntFunction mapper); R collect(Collector collector); } interface Function { public R apply(T t); } interface ToIntFunction { public int applyAsInt(T t); } interface IntStream extends BaseStream { R collect(Collector.OfInt collector); } interface BaseStream {} }