static A callF_gen(F0 f) { ret callF(f); } static B callF_gen(F1 f, A a) { ret callF(f, a); } static A callF_gen(IF0 f) { ret callF(f); } static B callF_gen(IF1 f, A a) { ret callF(f, a); } static B callF_gen(A a, IF1 f) { ret callF(a, f); } static C callF_gen(F2 f, A a, B b) { ret callF(f, a, b); } static C callF_gen(IF2 f, A a, B b) { ret callF(f, a, b); } static void callF_gen(VF1 f, A a) { callF(f, a); } static void callF_gen(A a, IVF1 f) { callF(a, f); } static void callF_gen(IVF1 f, A a) { callF(f, a); } sO callF_gen(Runnable r) { ret callF(r); } sO callF_gen(O f, O... args) { ret callF(f, args); }