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