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