anchor.diff:  (cl:in-package #:cleavir-generate-ast)
  +
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +;;;
  +;;; Converting a symbol that has a definition as a symbol macro.
   
   (defmethod convert-form (form (info cleavir-env:symbol-macro-info) env)
     (let ((expansion (funcall (coerce *macroexpand-hook* 'function)
  
positive.code: 	      ;; macro replaced the original form with a new form.
  	      ;; This new form must then be converted.
  	      (convert expanded-form env))))))
  
negative.code: 			    env)))
      (convert expansion env)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Converting a symbol that has a definition as a constant variable.
  
  (defmethod convert-form (form (info cleavir-env:constant-variable-info) env)
    (cleavir-ast:make-constant-ast (cleavir-env:value info)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Converting a symbol that has a definition as a lexical variable.
  
  (defmethod convert-form (form (info cleavir-env:lexical-variable-info) env)
    (when (eq (cleavir-env:ignore info) 'ignore)
      (warn "Reference to a variable declared IGNORE"))
    (find-or-create-ast (cleavir-env:identity info)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Converting a symbol that has a definition as a special variable.
  ;;; We do this by generating a call to SYMBOL-VALUE.
  
  (defmethod convert-form (form (info cleavir-env:special-variable-info) env)
    (convert `(symbol-value ',(cleavir-env:name info)) env))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Converting a compound form that calls a local macro.
  ;;; A local macro can not have a compiler macro associated with it.
  
  (defmethod convert-form (form (info cleavir-env:local-macro-info) env)
    (let ((expansion (funcall (coerce *macroexpand-hook* 'function)
  