static L getList(Map map, O key) { ret map == null ? null : (L) map.get(key); } static L getList(L l, int idx) { ret (L) get(l, idx); } static L getList(O o, O key) { if (o instanceof Map) ret getList((Map) o, key); if (key instanceof S) ret (L) getOpt(o, (S) key); throw fail("Not a string key: " + getClassName(key)); } static L mapMethodLike getList(S name, O o) { ret getList(o, name); }