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