anchor.diff:         (push v stor))
        hsh)
       (nreverse stor)))
  -
  
positive.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))
  
negative.code: 
  (defmacro collecting-hash-table ((&key (test '(function eql) test-set-p)
                                      existing (mode :append)) &body body)
    "A collection macro that builds and outputs a hash table. To add to the hash
  table, call the collect function with a key and a value from within the scope
  of the collecting-hash-table macro. The value will be inserted or combined with
  existing values according to the specified mode.
  