static L keysWithValueContainingSubstring(Map map, S s) { new L l; for (A key : keys(map)) if (contains(map.get(key), s)) l.add(key); ret l; } static L keysWithValueContainingSubstring(S s, Map map) { ret keysWithValueContainingSubstring(map, s); }