static L keysWithValueThat(IPred pred, Map map) {
if (map == null) null;
new L l;
for (Map.Entry e : map.entrySet())
if (pred.get(e.getValue()))
l.add(e.getKey());
ret l;
}
static L keysWithValueThat(Map map, IPred pred) {
ret keysWithValueThat(pred, map);
}