anchor.diff:      ;; (format t "lambda body: ~a~%" body)
      `(procedure ,parameters ,body ,env)))
   
  +(defun procedure-parameters (procedure)
  +  (cadr procedure))
  +
  +(defun procedure-body (procedure)
  +  (caddr procedure))
  +
  +(defun procedure-env (procedure)
  +  (cadddr procedure))
  +
   (defun begin-p (exp)
     (tagged-list-p exp 'begin))
   
  
positive.code:   (cond
      ((primitive-procedure-p procedure)
       (apply-primitive-procedure procedure args))
      (t (format t "t-apply: ~a ~a~%" procedure args)
         (error "not implemented"))))
  
  (defun apply-primitive-procedure (procedure args)
    (apply (primitive-implementation procedure) args))
  
  (defparameter *primitive-procedures*
  	      `((+ ,#'+)
  
negative.code: (defun primitive-implementation (procedure)
    (cadr procedure))
  
  (defun compound-procedure-p (exp)
    (tagged-list-p exp 'procedure))
  
  (defun t-print (exp)
    (prin1 exp))
  
  