eopl 3.21, 3.33; multi arg support for let letrec proc
compound exps