(define impc:ir:get-function-type-from-str
(lambda (string-type)
(let* ((sk (regex:match-all string-type impc:ir:regex-structs-or-atoms))
(ss (string-append "(" (car sk) " " (string-join (cdddr sk) " ")))
(s2 (cl:remove-if (lambda (x) (string=? x ""))
(regex:match-all ss impc:ir:regex-structs-or-atoms)))
(s3 (map (lambda (x)
(impc:ir:get-type-from-str x))
s2)))
s3)))