static Map mapLike mapToMap(O f, Iterable l) { new Map map; fOr (O o : l) { Pair p = cast callF(f, o); map.put(p.a, p.b); } ret map; } static Map mapLike mapToMap(IF1> f, Iterable l) { new Map map; fOr (A o : l) { Pair p = callF(f, o); map.put(p.a, p.b); } ret map; } static Map mapToMap(Iterable l, IF1> f) { ret mapToMap(f, l); }