naive-join-forest.ss
(module naive-join-forest mzscheme
  (require (lib "list.ss")
           (lib "contract.ss")
           (planet "contract-utils.ss" ("cobbe" "contract-utils.plt" 3 0)))
  
  (define (join-forest a-forest join-f)
    (foldl (lambda (x acc)
             (join-f acc x))
           (first a-forest)
           (rest a-forest)))
  
  (provide/contract [join-forest ((nelistof/c any/c)
                                  (any/c any/c . -> . any)
                                  . -> . any)]))