(define impc:ir:get-array-type-from-str
(lambda (string-type)
(let* ((s1 (regex:replace string-type "\\[(.*)\\].*" "$1"))
(t1 (cl:remove-if (lambda (x) (string=? x ""))
(regex:match-all s1 impc:ir:regex-structs-or-atoms)))
(t2 (list (string->number (car t1)) (impc:ir:get-type-from-str (caddr t1)))))
t2)))