This function accepts arbitrarily many arguments after format.
The procedure internal-error is for critical errors; since it is not possible to guarantee that the object in question is in the Zodiac hierarchy (indeed, that may sometimes be the error), zodiac:object is flexible enough to accept any kind of Scheme object.
The argument format is used the format string to printf, and the remaining arguments are meant to satisfy parameters in the format string.