anchor.diff:  ;;;     optional argument to CL:MACRO-FUNCTION was supplied, it is
   ;;;     passed directly as the second argument to the generic
   ;;;     MACRO-FUNCTION.  If not, an argument representing the global
  -;;;     environment is passed instead. 
  +;;;     environment is passed instead.
   ;;;
   ;;;   * Supply one or more methods on the generic MACRO-FUNCTION,
   ;;;     specialized to the implementation-specific global environment
  
positive.code: ;;; or macro definition with the right name.
  ;;;
  ;;; Implementations should define a method on this generic function
  ;;; that accomplishes the task for the specific global environment. 
  
  (defgeneric compiler-macro-function (function-name environment))
  
  
negative.code: ;;;     evaluation by converting the form to an AST and then
  ;;;     interpreting that AST.  However, then we have the inverse
  ;;;     problem, namely when the tools are used as intrinsic (native)
  ;;;     tools, then we might store interpreted functions in the global
  ;;;     environment.  So, although the solution works, it might result
  ;;;     in slow code.  In this case, it is more likely that we want to
  ;;;     call the native EVAL function in order to obtain a compiled
  ;;;     function.
  ;;;
  ;;; Another problematic case with compile-time evaluation is that the
  ;;; standard treats the body of a LOCALLY, MACROLET, or a
  ;;; SYMBOL-MACROLET as a top-level form when the FORM itself is a
  ;;; top-level form.  The HyperSpec has a remark saying "Note that this
  ;;; implies that the lexical environment in which top level forms are
  ;;; processed is not necessarily the null lexical environment".  The
  ;;; problem here arises when the tools are used as intrinsic tools
  ;;; (i.e., the host and the target environments are the same).  We
  ;;; can't just call CL:EVAL, because CL:EVAL always evaluates the form
  ;;; in the null lexical environment.
  ;;;
  ;;; Finally, the generic EVAL provides a solution that Cleavir uses
  ;;; for processing MACROLET forms.  The problem here is that the local
  