 I
keep on learning this every year.  In this case, the really expensive
thing was that I wanted normal function calls to be fast, so I used
normal C-style stack frames for their arguments.  This seems to have
paid off in speed, but it meant I spent four days and about 200 lines
of code implementing lexical closures of unlimited extent.  (Really!
According to my change log, from February 13 to February 16, I
basically didn't do anything else except add macros.)  If I'd just
allocated all my call frames on t