anchor.diff:            ((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: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"
  
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: 
  (define-class clickable-hint (hint) ())
  
  (define-class focusable-hint (hint) ())
  
  (define-class button-hint (clickable-hint) ())
  
  (define-class link-hint (hint)
    ((url ""))
    (:accessor-name-transformer #'class*:name-identity))
  
  (define-class input-hint (focusable-hint) ())
  
  (define-class textarea-hint (focusable-hint) ())
  
  (define-class image-hint (link-hint)
    ((alt "" :documentation "Alternative text for the image."))
  