(require "lists.BRU") ; suboptimal: [(define (%insert-inserter may-precede? new-element ls) (cond ((null? ls) (list new-element)) ((may-precede? new-element (first ls)) (cons new-element ls)) (else (cons (first ls) (%insert-inserter may-precede? new-element (rest ls)))))) (define (insertion-sort may-precede? ls) ((fold-list '() (%insert-inserter may-precede?)) ls))]