anchor.diff:                                         'diagnostic-error-attribute)
                                        (:no-error (severity)
                                          (diagnostic-severity-attribute severity))))))
  -        (overlay-put overlay 'diagnostic diagnostic)
  +        (overlay-put overlay
  +                     'diagnostic
  +                     (make-diagnostic :buffer buffer
  +                                      :position (point-to-xref-position start)
  +                                      :message (protocol:diagnostic-message diagnostic)))
           (push overlay (buffer-diagnostic-overlays buffer))))))
   
   (defun highlight-diagnostics (params)
  
positive.code:     (protocol:diagnostic-severity.hint
       'diagnostic-hint-attribute)))
  
  (defun buffer-diagnostic-overlays (buffer)
    (buffer-value buffer 'diagnostic-overlays))
  
  
negative.code: (defun clear-diagnostic-overlays (buffer)
    (mapc #'delete-overlay (buffer-diagnostic-overlays buffer))
    (setf (buffer-diagnostic-overlays buffer) '()))
  
  (defun buffer-diagnostics (buffer)
    (mapcar (lambda (overlay)
              (overlay-get overlay 'diagnostic))
            (buffer-diagnostic-overlays buffer)))
  
  (defun point-to-xref-position (point)
    (lem.language-mode::make-xref-position :line-number (line-number-at-point point)
                                           :charpos (point-charpos point)))
  
  (defun highlight-diagnostic (buffer diagnostic)
    (with-point ((start (buffer-point buffer))
  