anchor.diff:              :value (prop text)))
           selection-change
           (lambda (ev)
  +          (let ((target (@ ev target)))
  +            )
             (say ev)))
   
         ;;FIXME: Find a way to make this not pound the server per keystroke.
  
positive.code:                (case (@ results status)
                   ("success"
                    (set-state text (@ results text))
                    (msgfunc (@ results message)))
                   ("failure"
                    (msgfunc (@ results message)))
  
negative.code:                    (return (list i (- loc i))))))))
  
         ;;End of duplicate functions
  
         (defun clean-string-for-excerpt (the-string)
           (collecting-string
             (let ((last-was-white nil))
               (dotimes (i (length the-string))
                 (if (member (elt the-string i) *whitespace-character*)
                     (unless last-was-white
                       (setf last-was-white t)
                       (collect #\ ))
                     (progn
                       (setf last-was-white nil)
                       (collect (elt the-string i))))))))
  
         (defun calculate-offset (tdat excerpt startloc)
           ((let ((res 0))
              (dotimes (i startloc)
                (when (excerpt-here? tdat excerpt i)
                  (incf res)))
              res)))
  
         (defun get-location-excerpt (tdat start end)
           (let* ((excerpt (chain tdat text (slice start end)))
                  (excerpt (clean-string-for-excerpt excerpt))
                  (offset (calculate-offset tdat excerpt start)))
             (values excerpt offset)))
  
         (defun find-excerpt-start/end (tdat excerpt &optional (offset 0))
           (let ((start (find-excerpt-position tdat excerpt offset))
                 (elength 0))
             (dotimes (i (length excerpt))
               (if (eq (elt excerpt i) #\ )
                   (incf elength (chain tdat whitespace (+ start elength)))
                   (incf elength)))
             (values start (+ start elength))))
  
        (def-component message
            (psx (:span (prop message))))
  