In hindsight, I wish we had standardized on case-define instead.The trouble with
(define foo(case-lambda((x) <some-complex-computation>)((x y) (do-something! y) (foo x))))
is that do-something! might reassign foo, and consequently you can'toptimize by jumping straight into the single-argument case. (Or can you?)
I agree that non-top-level cond-expand is a wart, and I think thatnon-top-level include is potentially a wart too, except that I hopenobody thinks include is processed hygienically. These things