import java.util.List; class Test { interface A { T m(T t); } interface B { List l(K k); } F foo(A a) {return null;} Bar bar(B b) { return null;} { Integer i = foo(a -> bar(b -> asList(1, b))); Integer i1 = foo(a -> bar(b -> asList(1, 1))); } List asList(L l, L l1) { return null; } }