static IF1 mainFunctionToIF1Opt(O f) { if (f cast S) ret (IF1) a -> callMC(f, a); ret toIF1(f); }