class ExplicitLambdaNoParams { interface I { T a(); } I foo(I iff) { return null;} { foo(() -> foo(() -> 1)).a(); I a1 = foo(() -> foo(() -> 1)).a(); } } class LambdaWithFormalParameterTypes { interface I { T a(int p); } I foo(I iff) { return null;} { foo((int a) -> foo((int b) -> 1)).a(0); I a1 = foo((int a) -> foo((int b) -> 1)).a(0); } }