added codegen:gen_function_alt/3