public static Function Y(Function, Function> f) { return new Function() { public B apply(A x) { return f.apply(this).apply(x); } }; }