static A androidEvalInUIThread(final F0 f) { final new Var v; final new Var error; final new Flag done; androidUI(r { try { v.set(callF(f)); } catch e { error.set(e); } finally { done.raise(); } }); done.waitUntilUp(); if (error.has()) throw rethrow(error!); else ret v!; }