class Main { void bar(Fun collector) { } Fun foo(D d) { return null; } public void test() { bar(foo("")); } interface Fun { R f(T t); } }