static A optParam(ThreadLocal tl, A defaultValue) { ret optPar(tl, defaultValue); } static A optParam(ThreadLocal tl) { ret optPar(tl); } static A optParam(O[] opt, S name, A defaultValue) { if (!even(l(opt))) fail("Odd parameter length"); for (int i = 0; i < l(opt); i += 2) if (eq(opt[i], name)) ret (A) opt[i+1]; null; } static A optParam(O[] opt, S name) { ret optParam(opt, name, null); }