(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)]))