static S evalWithTimeout_text(double timeoutSeconds, IF0 f) {
ret evalWithTimeout_text(timeoutSeconds, (O) f);
}
sS evalWithTimeout_text(double timeoutSeconds, fO f) {
ret evalWithTimeout_text(toMS_int(timeoutSeconds), f);
}
// f : func -> O
static S evalWithTimeout_text(final int timeoutMS, fO f) {
ret pcallOrExceptionText_strOrNull(func {
evalWithTimeoutOrException(timeoutMS, func { strOrNull(callF(f)) })
});
}