anchor.diff:  	    (loop for (name lambda-list . body) in (cadr form)
   		  for fun = (convert-code lambda-list body env)
   		  collect (sicl-ast:make-setq-ast
  -			   (let ((location (sicl-env:location 
  -					    (sicl-env:function-info name new-env t))))
  -			     (sicl-ast:make-lexical-ast
  -			      (sicl-env:name location)
  -			      (sicl-env:storage location)))
  +			   (let* ((info (sicl-env:function-info name new-env t))
  +				  (location (sicl-env:location info)))
  +			     (find-or-create-ast location))
   			   fun))))
         (multiple-value-bind (declarations forms)
   	  (sicl-code-utilities:separate-ordinary-body (cddr form))
  
positive.code:   ())
  
  (defun convert-named-function (name environment)
    (let ((location (sicl-env:location (sicl-env:function-info name environment t))))
      (etypecase location
        (sicl-env:global-location
         (sicl-ast:make-global-ast (sicl-env:name location)
  				 (sicl-env:storage location)))
        (sicl-env:lexical-location
         (sicl-ast:make-lexical-ast (sicl-env:name location))))))
  
  (defun convert-lambda-function (lambda-form env)
    (unless (sicl-code-utilities:proper-list-p lambda-form)
  
negative.code:   (unless (symbolp var)
      (error 'setq-var-must-be-symbol
  	   :expr var))
    (let* ((info (sicl-env:variable-info var env t))
  	 (location (sicl-env:location info)))
      (if (typep info 'sicl-env:constant-variable-info)
  	(error 'setq-constant-variable
  	       :form var)
  	(sicl-ast:make-setq-ast
  	 (find-or-create-ast location)
  	 (convert form env)))))
    
  (defmethod convert-compound
      ((symbol (eql 'setq)) form environment)
  