// Note: these first 3 syntaxes seem to be wrong // (not failing on timeout) static O evalWithTimeoutOrFail(fO f, int timeoutMS) { ret evalWithTimeoutOrException(f, timeoutMS); } static O evalWithTimeoutOrFail(int timeoutMS, fO f) { ret evalWithTimeoutOrException(timeoutMS, f); } static O evalWithTimeoutOrFail(double timeoutSeconds, fO f) { ret evalWithTimeoutOrException(timeoutSeconds, f); } // the following 4 syntaxes are ok static A evalWithTimeoutOrFail(int timeoutMS, F0 f) { ret evalWithTimeoutOrException(timeoutMS, f); } static A evalWithTimeoutOrFail(double timeoutSeconds, F0 f) { ret evalWithTimeoutOrException(timeoutSeconds, f); } static A evalWithTimeoutOrFail(int timeoutMS, IF0 f) { ret evalWithTimeoutOrException(timeoutMS, f); } static A evalWithTimeoutOrFail(double timeoutSeconds, IF0 f) { ret evalWithTimeoutOrException(timeoutSeconds, f); }