Making the named parameter optional was needed since there was no way to specify a function taking an unspecified number of arguments in C23 after the removal of K&R style function definitions. Since C++ was already using this syntax for the same purpose, this change was also a way to increase compatibility between the languages. (en)
Either this should be rephrased in a simpler way, or better explained. It is not immediately understandable, especially for readers not knowing Haskell, which is most readers, even for this article. (en)