static A mapMethodLike optPar_func(S name, O[] opt, IF0 defaultValue) {
int n = l(opt);
if (n == 1 && opt[0] instanceof Map) {
Map map = cast opt[0];
ret map.containsKey(name) ? (A) map.get(name) : callF(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];
ret callF(defaultValue);
}