anchor.diff:  (defmethod %follow-hint ((clickable-hint clickable-hint))
     (click-element :nyxt-identifier (identifier clickable-hint)))
   
  -(defmethod %follow-hint ((input-hint input-hint))
  -  (focus-element :nyxt-identifier (identifier input-hint)))
  -
  -(defmethod %follow-hint ((textarea-hint textarea-hint))
  -  (focus-element :nyxt-identifier (identifier textarea-hint)))
  +(defmethod %follow-hint ((focusable-hint focusable-hint))
  +  (focus-element :nyxt-identifier (identifier focusable-hint)))
   
   (defmethod %follow-hint-new-buffer-focus ((link-hint link-hint))
     (make-buffer-focus :url (url link-hint)))
  
positive.code: 
  (defun elements-from-json (elements-json)
    (loop for element in (cl-json:decode-json-from-string elements-json)
          collect (let ((object-type (cdr (assoc :type element))))
                    (str:string-case object-type
                      ("link"
                       (make-instance 'link-hint
                                      :hint (alex:assoc-value element :hint)
                                      :identifier (alex:assoc-value element :hint)
                                      :url (alex:assoc-value element :href)
                                      :body (plump:text (plump:parse (alex:assoc-value element :body)))))
                      ("button"
                       (make-instance 'button-hint
                                      :identifier (alex:assoc-value element :identifier)
                                      :hint (alex:assoc-value element :hint)
                                      :body (plump:text (plump:parse (alex:assoc-value element :body)))))
                      ("input"
                       (make-instance 'input-hint
                                      :identifier (alex:assoc-value element :identifier)
                                      :hint (alex:assoc-value element :hint)))
                      ("textarea"
                       (make-instance 'textarea-hint
                                      :identifier (alex:assoc-value element :identifier)
                                      :hint (alex:assoc-value element :hint)))
                      ("img"
                       (make-instance 'image-hint
                                      :identifier (alex:assoc-value element :identifier)
                                      :url (alex:assoc-value element :src)
                                      :alt (alex:assoc-value element :alt)
                                      :hint (alex:assoc-value element :hint)))
                      ("clickable"
                       (make-instance 'clickable-hint
                                      :identifier (alex:assoc-value element :identifier)
                                      :hint (alex:assoc-value element :hint)
                                      :body (plump:text (plump:parse (alex:assoc-value element :body)))))))))
  
  (define-class hint ()
    ((hint "")
  
negative.code:           ((equal "IMG" (ps:@ element tag-name))
             (ps:create "type" "img" "hint" hint "identifier" hint "src" (ps:@ element src) "alt" (ps:@ element alt)))
            ((ps:@ element onclick)
             (ps:create "type" "clickable" "hint" hint "identifier" hint "body" (ps:@ element |innerHTML|)))
            ((ps:@ element onfocus)
             (ps:create "type" "focusable" "hint" hint "identifier" hint))))
  
    (defun hints-add (elements)
      "Adds hints on elements"
  