Represents a function in the AST.
@:optionaloptionalret:Null<ComplexType>
The return type-hint of the function, if available.
@:optionaloptionalparams:Null<Array<TypeParamDecl>>
An optional list of function parameter type declarations.
@:optionaloptionalexpr:Null<Expr>
The expression of the function body, if available.
args:Array<FunctionArg>
A list of function arguments.