(define impc:ir:array?
(lambda (type)
(if (list? type)
(if (< (length type) 2) #f
(if (impc:ir:array? (car type)) #t #f))
(let ((t (impc:ir:str-list-check type)))
(if (string? t) #f
(if (= (modulo t *impc:ir:pointer*) *impc:ir:array*)
#t #f))))))