anchor.diff:            collect (list binding nil)
           else collect binding))
   
  -;;;# `mvlet'
  +;;; `mvlet'
   
   ;; TODO Should mvlet* allow bindings to be repeated in a single
   ;; binding form? It would be more consistent with let*.
  
positive.code:                 (let ,rebindings
                    ,@body))))))
  
  ;;;# `and-let*'
  
  (defmacro and-let* ((&rest clauses) &body body &environment env)
    "Scheme's guarded LET* (SRFI-2).
  
negative.code:   `(lret-aux let* ,bindings
       ,@body))
  
  ;;; `letrec'
  
  ;; Obviously `letrec' is less useful than in Scheme (where it is the
  ;; way to construct recursive functions) but still sometimes useful;
  ;; say, when initializing a timer whose function needs to refer to
  ;; the timer itself.
  
  (defmacro letrec-with (setq (&rest bindings) &body body)
    `(let (,@(mapcar #'car bindings))
  