(define impc:ti:null?-check
(lambda (ast vars kts request?)
(let ((a (impc:ti:type-check (cadr ast) vars kts request?)))
(if (or (null? a) ;; couldn't resolve yet!
(and (pair? a)
(null? (car a))))
(list *impc:ir:i1*)
(if (if (not (impc:ir:type? a))
(impc:ir:pointer? (car a))
(impc:ir:pointer? a))
(list *impc:ir:i1*)
(impc:compiler:print-compiler-error "null must take a pointer type" ast))))))