anchor.diff:  (defmethod object-attributes ((object t))
     "Return an alist of non-dotted pairs (ATTRIBUTE-KEY ATTRIBUTE-VALUE) for OBJECT.
   Attributes are meant to describe the OBJECT structurally.
  -- Attribute-keys are strings.
  -- Attribute-values can be instantiated from any object type, they are
  -automatically passed to `princ-to-string' when the `suggestion' object is
  -initialized.
  +Both attribute-keys and attribute-values are strings.
   
   For structure and class instances, the alist is made of the exported slots: the
   keys are the sentence-cased slot names and the values the slot values passed to
  
positive.code: 
  Suggestions are made with the `suggestion-maker' slot from `source'."))
  
  (defun non-dotted-alist-p (object)
    (and (listp object)
         (every #'listp object)
         (every #'listp (mapcar #'rest object))
         (every (sera:eqs 2) (mapcar #'length object))))
  
  (defun object-attributes-p (object)
    (non-dotted-alist-p object))
  
  (defmethod attribute-key ((attribute t))
    (first attribute))
  
negative.code: (defun format-attributes (attributes)
    "Performance bottleneck: This function is called as many times as they are
  suggestions."
    (sera:string-join (attributes-values attributes) " "))
  
  (defmethod initialize-instance :after ((suggestion suggestion) &key source input)
    "Set SUGGESTION `match-data' if empty and if SOURCE and INPUT initargs are provided.
  