anchor.diff:  
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
  -;;; Converting LET.
  -;;;
  -;;; We convert a LET form recursively.  If it has a single binding, we
  -;;; convert it into a SETQ.  If it has more than one binding, we
  -;;; convert it as follows:
  -;;;
  -;;; (let ((<var> <init-form>)
  -;;;       <more-bindings>)
  -;;;   <body>)
  -;;; =>
  -;;; (let ((temp <init-form>))
  -;;;   (let (<more-bindings>)
  -;;;     (let ((<var> temp))
  -;;;       <body>)))
  +;;; Converting LET and LET*
   
   (define-condition bindings-must-be-proper-list
       (compilation-program-error)
  
positive.code: 	else
  	  collect spec into second
  	finally (return (values first second))))
  
  (defmethod convert-compound
      ((symbol (eql 'let)) form env)
  
negative.code: 
  (defgeneric convert (form environment))
  
  (defun convert-initial (form)
    (let ((*location-asts* (make-hash-table :test #'eq)))
      (convert form nil)))
  
  (defun convert-top-level-form (form)
    (let ((*location-asts* (make-hash-table :test #'eq)))
      (convert `(function (lambda () ,form)) nil)))
  