(define-macro (xtm-closure-doc name)
`(let ((docstring (impc:ti:get-closure-docstring ,name))
(types (impc:ti:get-closure-type ,name))
(form (impc:ti:get-closure-body ,name)))
(if docstring
(list (cdr docstring) (cdr types) (cdr form))
(if types
(list '() (cdr types) (cdr form))
(if form
(list '() '() (cdr form))
#f)))))