(define (deep-combine-over-list combiner null-value l)
  (cond ((null? l) null-value)
        ((pair? l)
         (combiner (deep-combine-over-list combiner null-value (car l))
                   (deep-combine-over-list combiner null-value (cdr l))))
        (else l)))