anchor.diff:         (:replace (list
                     (lambda (e n) (declare (ignore e)) n)
                     (lambda (v) v)))
  -        (:keep (list
  -                (lambda (e n) (declare (ignore n)) e)
  -                (lambda (v) v)))
  -        (:tally (list
  -                 (lambda (e n) (declare (ignore n)) (1+ e))
  -                 (lambda (v) (declare (ignore v)) 1)))
  -        (:sum (list
  -               (lambda (e n) (+ e n))
  +       (:keep (list
  +               (lambda (e n) (declare (ignore n)) e)
                  (lambda (v) v)))
  -        (:append (list
  -                  (lambda (e n) (nconc e (list n)))
  -                  (lambda (v) (list v))))
  -        (:push (list
  -                (lambda (e n) (cons n e))
  -                (lambda (v) (list v))))
  -        (otherwise (error "Mode not found"))))
  +       (:tally (list
  +                (lambda (e n) (declare (ignore n)) (1+ e))
  +                (lambda (v) (declare (ignore v)) 1)))
  +       (:sum (list
  +              (lambda (e n) (+ e n))
  +              (lambda (v) v)))
  +       (:append (list
  +                 (lambda (e n) (nconc e (list n)))
  +                 (lambda (v) (list v))))
  +       (:push (list
  +               (lambda (e n) (cons n e))
  +               (lambda (v) (list v))))
  +       (otherwise (error "Mode not found"))))
       (function
        (list
         (lambda (e n) (funcall mode e n))
  
positive.code:        (push v stor))
       hsh)
      (nreverse stor)))
  
  
negative.code:   (dotimes (i 10)
      (let ((word (format nil \"~r\" i)))
        (collect (length word) word)))
    ```
    Result: <hash table: 5 => (\"three\" \"seven\" \"eight\")
                         3 => (\"one\" \"two\" \"six\")
                         4 => (\"zero\" \"four\" \"five\" \"nine\")>
  
    The mode can be set in the parameters section of collecting-hash-table with the
    :mode keyword. The :mode keyword can also be passed to individual collect calls.
  
    Keyword parameters:
  
    :test - Test function parameter passed to make-hash-table when creating a new
    hash table
  
    :existing - Pass an existing hash table to the macro for modification. Using
    this option at the same time as :test will result in an error.
  
    :mode - Set the default mode for the collect function. Modes are :replace :keep
    :tally :sum :append :push or a function that will be applied in a reduce-like
    fashion to the existing and new values of a key."
    (and test-set-p existing
         (error "Can't set test when reusing an existing hash table"))
    (let ((fill (gensym))
  