static int callAnswerMethod_version; static S callAnswerMethod(S s) { if (callAnswerMethod_version == 0) if (hasMethod(mc(), "answer", "", new L)) callAnswerMethod_version = 1; else if (hasMethod(mc(), "answer", "")) callAnswerMethod_version = 2; else callAnswerMethod_version = -1; if (callAnswerMethod_version == 1) ret (S) callMC("answer", s, emptyList()); else if (callAnswerMethod_version == 2) ret (S) callMC("answer", s); null; } static S callAnswerMethod(O responder, S s) { ret callAnswerMethod(responder, s, litlist(s)); } static S callAnswerMethod(O responder, S s, L history) { S answer = (S) callOpt(responder, "answer", s, history); if (answer == null) answer = (S) callOpt(responder, "answer", s); return emptyToNull(answer); }