anchor.diff:  
   (defmethod document-fields ((self document) name)
     (with-slots (fields) self
  -    (gethash name fields)))
  +    (table-value name fields)))
   
   (defmethod document-binaries ((self document) name)
     (reduce #'(lambda (a1 &optional a2)
  
positive.code: (defmethod add-field ((self document) (field field))
    (with-slots (fields) self
      (let* ((name (field-name field))
  	   (fields-with-name (gethash name fields '())))
        (setf (gethash name fields) (append fields-with-name (list field)))))
    self)
  
  (defmethod remove-field ((self document) name)
    (with-slots (fields) self
      (let ((fields-with-name (gethash name fields '()))
  	  (removed-field nil))
        (when fields-with-name
  	(setf removed-field (car fields-with-name))
  	(setf (gethash name fields) (cdr fields-with-name)))
        removed-field)))
  
  (defmethod remove-fields ((self document) name)
    (with-slots (fields) self
      (remhash name fields))
    (values))
  
  (defmethod document-field ((self document) name)
  
negative.code: 
  (defmethod all-fields ((self document))
    (with-slots (fields) self
      (reduce #'append (table-values fields))))
  
  (defmethod field-count ((self document))
    (with-slots (fields) self
      (length (table-entries fields))))
  
  (defmethod entry-count ((self document))
    (length (all-fields self)))
  