Invalid function definition.

#2005   Compile-time error

Invalid function definition.

Additional Information

Unparenthesized functions may not use commas to separate arguments (for function "X").
    or
A name separator is required before the current argument (for function "X").
    or
A comma or name separator is required before the current argument (for function "X").
    or
The argument list of function 'X' doesn't start with a parenthesis, so it can't end with one.
    or
The argument list of function 'X' starts with a parenthesis, but it doesn't end with one.
    or
Internal functions may not have return type 'X' (for function "Y").
    or
Argument #X for function Y originally had an initial R value of S, but is now T",
    where R is one of "numeric", "string", or "boolean", S is the original value, and T the current one.
    or
Argument X (Y) for function Z is of class remainder, so it cannot be optional as well.
    or
The first argument (X) of function Y can't be optional, because it has no leading herald.
    or
Function 'X' was previously defined as an unparenthesized function, but this time it has an open-parenthesis.
    or
Function 'X' was previously defined as an unparenthesized function, but this time it has a close-parenthesis.
    or
Function 'X' was previously defined as a parenthesized function, but this time it has no parentheses.
    or
Function 'X' was previously defined as a parenthesized function, but this time it has no close parenthesis.
    or
Argument #X for function Y originally had an initial value, but doesn't in a subsequent declaration.
    or
Argument #X for function Y originally had no initial value, but does in a subsequent declaration.
    or
Previous declaration of function 'X' had Y args, current has Z.
    or
Function 'X' has been defined as returning type 'Y', and therefore can't also be defined as an OUTPUT function.
    or
Function 'X' has been defined as an action function, and therefore can't also be defined as an OUTPUT function.
    or
Function 'X' cannot be defined as both an OUTPUT and a non-OUTPUT function.
    or
Function 'X' has been defined as an action function, and therefore can't also be defined as a 'Y' function.
    or
Function 'X' has been defined as returning type 'Y', and therefore can't also be defined as a 'Z' function.
    or
The first argument of a dynamic function must be of a record type.
    or
The first argument of a dynamic function cannot be of a built-in type.

Explanation

Names must be used to separate function arguments in unparenthesized functions.

Functions that are multiply defined must agree with respect to whether they are parenthesized or not, the numbers, types, and names of their arguments, and the types and names of their arguments' heralds.