- (cons (normalize (car prog)) (normalize (cdr prog))) ; (f a)
- (normalize (cons (cons (car prog) (list (cadr prog))) (cddr prog))))) ; (f a b)
+ `(,(normalize (car prog)) ,(normalize (cadr prog))) ; (f a)
+ `(,(list (normalize (car prog)) (normalize (cadr prog)))
+ ,(normalize (caddr prog))))) ; (f a b)
+ ;; (list (list (normalize (car prog))
+ ;; (normalize (cadr prog))) (normalize (caddr prog))))) ; (f a b)
+ ((let? prog)
+ (append (list 'let
+ (map (lambda (x) `(,(car x) ,(normalize (cadr x))))
+ (let-bindings prog)))
+ (map normalize (let-body prog))))