(define-macro (llvm:ir name . type)
(let ((t (if (null? type) #f (car type))))
`(let* ((n1 ,(if t
`(impc:ti:get-mono-name ,name ,t)
`(impc:ti:get-mono-name ,name)))
(n2 (llvm:get-closure-work-name n1)))
;; (println 'n1 n1 'n2 n2)
(llvm:print-closure n2))))