This function should return '(foo) but returns nil instead:
(do {} (push 'foo ^) ^)
(define (ac-body body env) (if (null? body) '() (if (and (list? (car body)) (eq? 'curly (car (car body)))) `((let ((^ (begin ,@(ac-body (cdr (car body)) env)))) ,@(ac-body (cdr body) (cons '^ env)))) (cons (ac (car body) env) (ac-body (cdr body) env)))))
-----