anchor.diff:  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   
   (define-binder (nil var val decls body)
  -  (let ((decl (use-declaration var decls)))
  -    `(let ((,var ,val))
  -       ,@(when decl `((declare ,@decl)))
  -       ,@body)))
  +  (when (ignore-symbol-p var)
  +    (setf var (gensym "IGNORE-")))
  +  `(let ((,var ,val))
  +     ,@(if (ignore-varname-p var)
  +           `((declare (ignore ,var)))
  +           (when-let (decl (use-declaration var decls))
  +             `((declare ,@decl))))
  +     ,@body))
   
   (define-binder (nil (var (eql nil)) (val (eql nil)) decls body)
     `(let ()
  
positive.code: (defun valid-varname-p (symbol)
    (and (symbolp symbol) (not (keywordp symbol))))
  
  (defmacro when-let ((var test) &body body)
    `(let ((,var ,test))
       (when ,var
  
negative.code: (define-binder (nil var (val (eql nil)) decls body)
    (let ((decl (use-declaration var decls)))
      `(let (,var)
         ,@(when decl `((declare ,@decl)))
         ,@body)))
  
  