anchor.diff:    ())
   
   (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))))))
  +  (let* ((info (sicl-env:function-info name environment t))
  +	 (location (sicl-env:location info)))
  +    (find-or-create-ast location)))
   
   (defun convert-lambda-function (lambda-form env)
     (unless (sicl-code-utilities:proper-list-p lambda-form)
  
positive.code:   (or (gethash location *location-asts*)
        (let ((ast (etypecase location
  		   (sicl-env:lexical-location
  		    (sicl-ast:make-lexical-ast (name location)))
  		   (sicl-env:global-location
  		    (sicl-ast:make-global-ast (name location) (storage location)))
  		   (sicl-env:special-location
  		    (sicl-ast:make-special-ast (name location) (storage location))))))
  	(setf (gethash location *location-asts*) ast))))
  
  		   
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code: 	    (loop for (name lambda-list . body) in (cadr form)
  		  for fun = (convert-code lambda-list body env)
  		  collect (sicl-ast:make-setq-ast
  			   (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))
  