Стандартная библиотека предоставляет функцию printf
, которая управляется как varadic. Тем не менее, это не проверка времени компиляции того, соответствуют ли типы аргументов строке формата. Для этого потребуются зависимые типы, и похоже, что было бы очень сложно реализовать тоже! (Вам придется разбирать всю строку формата, используя сигнатуры типов... yuck!)
Но по размышлению, теперь мне интересно... Можем ли мы сделать это с помощью шаблона Haskell? На самом деле, кто-нибудь написал библиотеку для этого уже?
(Похоже, вы могли бы довольно легко написать квазициклер, который читает спецификацию формата printf и генерирует необходимую функцию N-arg...)