anchor.diff:  
        (gethash \"string\" (dict \"string\" t)) => t
        (gethash \"string\" (dict 'eq \"string\" t)) => nil"
  -  (let ((test (if (oddp (length keys-and-values))
  -                  (pop keys-and-values)
  -                  'equal)))
  -    (values (plist-hash-table keys-and-values :test test))))
  +  (let* ((length (length keys-and-values))
  +         (test (if (oddp length)
  +                   (pop keys-and-values)
  +                   'equal)))
  +    (values
  +     (plist-hash-table keys-and-values
  +                       :test test
  +                       :size (truncate length 2)))))
   
   (define-compiler-macro dict (&rest keys-and-values)
     (let ((test (if (oddp (length keys-and-values))
  
positive.code:                    :rehash-size rehash-size
                     :rehash-threshold rehash-threshold))
  
  (defun dict (&rest keys-and-values)
    "A concise constructor for hash tables.
  
  
negative.code:     (with-gensyms (ht)
        `(let ((,ht (make-hash-table
                     :test ,test
                     :size ,(truncate (length keys-and-values) 2))))
           ,@(unsplice
              (when keys-and-values
                `(setf ,@(loop for (key value . nil) on keys-and-values by #'cddr
  