static B mapGetOrCreate(Map map, A key, Class c) { ret getOrCreate(map, key, c); } // f : func -> B static B mapGetOrCreate(Map map, A key, O f) { ret getOrCreate(map, key, f); } static B mapGetOrCreate(Map map, A key, IF0 f) { ret getOrCreate(map, key, (O) f); } static B nuLike mapGetOrCreate(Class c, Map map, A key) { ret getOrCreate(c, map, key); }