;; expects t1 (i.e. original untransformed code)
(define impc:ti:get-closure-arg-symbols
(lambda (closure-sym ast)
;(print 'ast: ast)
(cond ((null? ast) '())
((atom? ast) '())
((vector? ast) '())
((and (pair? ast)
(eq? (car ast) closure-sym))
(if (and (not (null? (cdr ast)))
(list? (cadr ast))
(member (caadr ast) *impc:lambdaslist*))
(cadr (cadr ast))
'()))
(else (append (impc:ti:get-closure-arg-symbols closure-sym (car ast))
(impc:ti:get-closure-arg-symbols closure-sym (cdr ast)))))))