;; this just here for adding back together broken
;; pretty complex types
(define impc:ir:get-type-joiner
(lambda (lst)
(let loop ((tmp "")
(nlst lst)
(dlst '()))
(if (null? nlst)
(reverse dlst)
(if (regex:match? (car nlst) ":$")
(loop (car nlst) (cdr nlst) dlst)
(if (string=? tmp "")
(loop "" (cdr nlst) (cons (car nlst) dlst))
(loop "" (cdr nlst) (cons (string-append tmp (car nlst)) dlst))))))))