static B getOrCreate_f1(Map map, A key, F1 create) {
B b = map.get(key);
if (b == null)
mapPut(map, key, b = callF(create, key));
ret b;
}
static B getOrCreate_f1(Map map, A key, IF1 create) {
B b = map.get(key);
if (b == null)
mapPut(map, key, b = callF(create, key));
ret b;
}