Scheme can wield continuations to achieve coroutines. This code shows how. t1 thru t4 are test trees. (process f tr) applies function f to each leaf of tree tr. Note that this is a perfectly standard recursive tree transversal. Routine same-fringe? makes a generator for both of its tree arguments. It calls those generators to visit the respective fringes. Routine make-generator and start do not fall into any familiar patterns but study of how they behave shows they provide classic coroutine function. The rationale of using this obscure logic increases rapidly as both coroutines become complex. Some may find this source, which provided necessary inspiration, easier to study.