anchor.diff:  ;;; required.  In this case, the first element of the list is the
   ;;; successor to use when the value generated by the AST is NIL, and
   ;;; the second element is the successor to use when the value
  -;;; generated by the AST is something other than NIL.  If there are no
  -;;; successors, as indicated by SUCCESSORS being the empty list, then
  -;;; either a TAILCALL-INSTRUCTION (if the AST is a CALL-AST) or a
  -;;; RETURN-INSTRUCTION (for other ASTs) that returns all the values of
  -;;; the AST should be generated.
  +;;; generated by the AST is something other than NIL.
   ;;;
   ;;; 2. RESULTS, indicating how many values are required from the
  -;;; compilation of this AST.  It can be either a list or T.  If it is
  -;;; a list, it contains zero or more lexical locations into which the
  -;;; generated code must put the values of this AST.  If it is T, it
  -;;; means that ALL values are required.  If the list contains more
  -;;; elements than the number of values generated by this AST, then the
  -;;; remaining lexical locations in the list must be filled with NIL by
  -;;; the code generated from this AST.
  +;;; compilation of this AST.  It can be either a list or an atom as
  +;;; describe below.  If it is a list, it contains zero or more lexical
  +;;; locations into which the generated code must put the values of
  +;;; this AST.  If the list contains more elements than the number of
  +;;; values generated by this AST, then the remaining lexical locations
  +;;; in the list must be filled with NIL by the code generated from
  +;;; this AST.  If it is an atom then it is a single datum of the type
  +;;; VALUES-LOCATION, which means that ALL values are required and
  +;;; should be stored in that location.
   ;;;
   ;;; 3. INVOCATION, an ENTER-INSTRUCTION or NIL.  When it is an
   ;;; ENTER-INSTRUCTION, it indicates the function to which the code to
  
positive.code: ;;; Each AST is compiled in a particular COMPILATION CONTEXT or
  ;;; CONTEXT for short.  A context object has three components:
  ;;;
  ;;; 1. SUCCESSORS, which is a proper list containing zero, one or two
  ;;; elements.  These elements are instructions resulting from the
  ;;; generation of the code that should be executed AFTER the code
  ;;; generated from this AST.  If the list contains two elements, then
  
negative.code: ;;;      are required.  The VALUES-FORM-AST of MULTIPLE-VALUE-BIND-AST
  ;;;      is compiled in a context like this.
  ;;;
  ;;;      If RESULTS is a values location, then all values are
  ;;;      required.  An example of the use of this context is for
  ;;;      compiling the FIRST-FORM of a MULTIPLE-VALUE-PROG1 special
  ;;;      form.
  ;;;
  ;;;   SUCCESSOR has two elements.  Then RESULTS is the empty list,
  ;;;   meaning that no values are required.  The TEST-AST of an IF-AST
  