anchor.diff:  ;;; 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)
  +
  +;;; This variable holds the processing mode for top-level forms
  +;;; processed by COMPILE-FILE.
  +(defparameter *compile-time-too* nil)
  +
  +;;; This variable is TRUE as long as a form is considered to be a
  +;;; top-level form.  It is bound to the value of *TOP-LEVEL-SUBFORM-P*
  +;;; before a subform is processed.
  +(defparameter *top-level-form-p* t)
  +
  +;;; The value of this variable is normally FALSE.  It is bound to the
  +;;; value of *TOP-LEVEL-FORM-P* by certain converters that need to
  +;;; process subforms the same way as the form itself.
  +(defparameter *top-level-subform-p* 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: (defmethod convert-compound
      ((head (eql 'progn)) form environment)
    (sicl-code-utilities:check-form-proper-list form)
    (sicl-ast:make-progn-ast
     (convert-sequence (cdr form) environment)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code: 
  (defgeneric convert-compound (head form environment))
  
  (defgeneric convert (form environment))
  
  (defun convert-top-level-form (form)
    (let ((*location-asts* (make-hash-table :test #'eq)))
      (convert `(function (lambda () ,form)) nil)))
  