(define impc:ti:printf-check
(lambda (ast vars kts request?)
(let ((a (impc:ti:type-check (cadr ast) vars kts (list (+ *impc:ir:si8* *impc:ir:pointer*)))))
;; run through everything else for completeness but don't care about the results
(for-each (lambda (x) (impc:ti:type-check x vars kts #f)) (cddr ast))
;; printf returns i32
(list *impc:ir:si32*))))