adição de precisão arbitrária usando listas de dígitos

O que estou tentando fazer é pegar duas listas e adicioná-las juntas, pois cada lista é um número inteiro.

(define (reverse lst)
 (if (null? lst)
  '()
  (append (reverse (cdr lst)) 
      (list (car lst)))))

(define (apa-add l1 l2)
  (define (apa-add-help l1 l2)
    (cond ((and (null? l1) (null? l2)) '())
      ((null? l1) (list (+ (apa-add-help '() (cdr l2)))))
      ((null? l2) (list (+ (apa-add-help (cdr l1) '()))))

      ((>= (+ (car l1) (car l2)) 10) 
       (append (apa-add-help (cdr l1) (cdr l2))               
               (list (quotient (+ (car l1) (car l2)) 10))
               (list (modulo (+ (car l1) (car l2)) 10)))) ;this is a problem

      (else (append (apa-add-help (cdr l1) (cdr l2))
                    (list (+ (car l1) (car l2)))))))

(apa-add-help (reverse l1) (reverse l2)))

(apa-add '(4 7 9) '(7 8 4))
>'(1 1 1 5 1 3)

Eu sei que o problema é girado em torno da minha recursão, eu inverti a ordem das listas para permitir um processo mais fácil, no entanto não consigo entender como adicionar o meu valor de módulo (valor transportado) para o próximo objeto na lista . Como posso fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion