gnu.expr
Class PushApply
public
class
PushApply
extends ExpWalker
Re-arranges ApplyExp where the function is a LetExp or BeginExp.
Optimizes ((let (...) body) . args) to (let (...) (body . args)).
Optimizes ((begin ... last) . args) to (begin ... (last . args)).
This helps optimize Scheme "named let" (and some other forms)
by making it more likely the application will be to a known procedure.
This optimization has to be done after Declarations are bound.