anchor.diff:  
   (defun compile-statement (stmt type-env def)
     (cond
  -    ((defined-macro-p stmt def) (compile-macro stmt type-env def :statement-p t))
  +    ((macro-form-p stmt def) (compile-macro stmt type-env def :statement-p t))
       ((if-p stmt) (compile-if stmt type-env def))
       ((let-p stmt) (compile-let stmt type-env def))
       ((do-p stmt) (compile-do stmt type-env def))
  
positive.code: 
  (defun %expand-macro (form def)
    (cond
      ((defined-macro-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)
  
negative.code: 
  (defun compile-expression (exp type-env def)
    (cond
      ((macro-form-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)
  