anchor.diff:  
   (defun %expand-macro (form def)
     (cond
  -    ((defined-macro-p form def) (%expand-macro (%expand-macro-1 form def) def))
  +    ((macro-form-p form def) (%expand-macro (%expand-macro-1 form def) def))
       ((not (atom form)) (let ((op   (car form))
                                (rest (cdr form)))
                            `(,op ,@(mapcar (lambda (x)
  
positive.code: 
  (defun compile-expression (exp type-env def)
    (cond
      ((defined-macro-p exp def) (compile-macro exp type-env def))
      ((literal-p exp) (compile-literal exp))
      ((cuda-dimension-p exp) (compile-cuda-dimension exp))
      ((variable-reference-p exp)
  
negative.code: 
  ;;; compile macro
  
  (defun macro-form-p (form def)
    "Returns t if the given form is a macro form. The macro used in the
  form may be an user-defined macro under the given kernel definition or
  a built-in macro.
  TODO: consider symbol macros"
    (or (built-in-macro-p form)
        (user-macro-p form def)))
  
  