With the varargs approach that was used before, it was very easy to add a list item of the wrong type, which would (hopefully) result in an assertion violation, because va_arg() then read some senseless data.