gen.types.IFunction[T] added