These are functions used internally (so, only in the JS, they are not defined in elm) to support partial function application.
List.map String.toUpper and that is a value (a function that needs one other argument). In contrast, JS functions always need to either be not applied, or are evaluated when at least one argument is given. So elm functions cannot directly be translated to JS functions, because maybe the elm function is partially applied.
So elm introduces wrappers.
F2 is a two-argument function,
F3 is a 3-argument function, etc.
These functions return a wrapper around a JS function, that stores the arity (number of arguments that it needs to be fully applied). Then
A3 etc functions are used to partially apply arguments.
A3 is called with a wrapped function, and three arguments. When the wrapped function needs 3 more arguments to be fully applied, then those arguments are applied to the wrapped function, and the function is evaluated.
Otherwise, the function is re-wrapped, and the wrapper additionally stores the 3 (now partially applied) additional arguments.