gen が関数への参照型も取れるように修正