import java.util.Arrays; import java.util.List; import java.util.function.Function; class Base { interface Seq extends Iterable { static Seq of(Iterable source) { return null; } Seq map(Function mapper); } } class Test3 extends Base { static void test3(Seq many) { Seq> mapped = many.map(Arrays::asList).map(Seq::of); Seq> mappedL = many.map(Arrays::asList).map(list -> Seq.of(list)); } public static List asList(T[] a) { return null; } }