It's not as complex as it sounds.
The type identifier for the function is always declared between the function name and the parenthesis ().
Examples:
The type identifier for the function is always declared between the function name and the parenthesis ().
Examples:
funcname() ;returns an integer (lack of an identifier defaults to integer) funcname%() ;returns an integer funcname$() ;returns a string funcname#() ;returns a float funcname.mytype() ;returns a mytype type funcname.bullet_type() ;returns a bullet_type type funcname.anytype() ;returns an anytype type