Printf works like C printf, but is type checked. The error message looks like this: the needed type is vararg, the actual type is ... . Not perfectly informative, but vararg helps pointing out it's an error involving the format string.

There is a difference between '(x1, x2, ..., xn) and @(x1, x2, ..., xn) tuples.