filesystem walk added by mario-goulart on Tue Apr 27 23:06:01 2021

(import (chicken file)
        (chicken pathname))

(define (walk dir)
  (cond
   ((null? dir)
    '())
   ((string? dir)
    (cond
     ((directory-exists? dir)
      (walk (map (lambda (file)
                   (make-pathname dir file))
                 (directory dir))))
     (else (list dir))))
   ((list? dir)
    (append
     (walk (car dir))
     (walk (cdr dir))))))