(define impc:ti:register-new-xtmacro
(lambda (macro-name docstring)
;; check arg types
(if (and (or (string? macro-name) (begin (println 'bad 'macro-name: macro-name) #f))
(or (string? docstring) (begin (println 'bad 'docstring: docstring) #f)))
(begin
(set! *impc:ti:xtmacro-cache*
(cons (cons macro-name (vector docstring))
*impc:ti:xtmacro-cache*))
(car *impc:ti:xtmacro-cache*)))))