static O pcallF(O f, O... args) { ret pcallFunction(f, args); } ifclass F0 static A pcallF(F0 f) { pcall { ret f?!; } null; } endif ifclass F1 static B pcallF(F1 f, A a) { pcall { ret f?.get(a); } null; } endif ifclass VF1 static void pcallF(VF1 f, A a) { pcall { f?.get(a); } } endif sO pcallF(Runnable r) { pcall { r?.run(); } null; } static A pcallF(IF0 f) { pcall { ret f?!; } null; } static B pcallF(IF1 f, A a) { pcall { ret f?.get(a); } null; }