When defining an output parameter with the name "errorCode" and the type "_int32", compilation fails because an getErrorCode() method with the return type String already exists in the FunctionResult class. I think that native methods should be shielded with unique names (e.g. underscore-prefixed, disallowing this for input/output parameter definitions), so they cannot be overridden, and the user is free to apply any name in the function specifications.