anchor.diff:  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
   ;;; Converting code to an abstract syntax tree.
  +
  +;;; When this variable is false, we are invoked by EVAL or COMPILE.
  +;;; When it is true, we are invoked by COMPILE-FILE.
  +(defparameter *compile-file* nil)
   
   ;;; When this variable is false, non-immediate constants will be
   ;;; converted into a LOAD-TIME-VALUE ast, which means that the machine
  
positive.code: ;;; the head symbol.
  (defmethod convert-compound ((head symbol) form env)
    (let ((info (sicl-env:function-info head env t)))
      (sicl-ast:make-call-ast
       (if (typep info 'sicl-env:global-location-info)
  	 (sicl-ast:make-memref-ast
  	  (sicl-ast:make-u+-ast
  	   (list (sicl-ast:make-load-time-value-ast
  		  `(sicl-env:find-function-cell ',head))
  		 (sicl-ast:make-immediate-ast
  		  sicl-configuration:+cdr-offset+))))
  	 (sicl-env:location info))
       (convert-sequence (cdr form) env))))
  
  ;;; Method to be used when the head of a compound form is a
  ;;; CONS.  Then the head must be a lambda expression.
  
negative.code:      sicl-configuration:+function-find-class+))
     (convert-arguments (cdr form) environment)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Converting code for low-level operators.
  