anchor.diff:  (defclass input-hint (hint) ())
   
   (defclass textarea-hint (hint) ())
  +
  +(define-class image-hint (link-hint)
  +  ((alt "" :documentation "Alternative text for the image."))
  +  (:accessor-name-transformer #'class*:name-identity))
   
   (defmethod object-string ((link-hint link-hint))
     (url link-hint))
  
positive.code:           ((equal "INPUT" (ps:@ element tag-name))
             (ps:create "type" "input" "hint" hint "identifier" hint))
            ((equal "TEXTAREA" (ps:@ element tag-name))
             (ps:create "type" "textarea" "hint" hint "identifier" hint))))
  
    (defun hints-add (elements)
      "Adds hints on elements"
  
negative.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)))))))
  
  (define-class hint ()
    ((hint "")
     (identifier "")
     ;; TODO: Move to `link-hint' or `button-hint'? Maybe add an intermediate class?
     (body ""
           :documentation "The body of the anchor tag."))
    (:accessor-name-transformer #'class*:name-identity))
  