anchor.diff:         (defun %overlap-p (start1 end1 start2 end2)
            (not (or (> start1 end2) (> start2 end1))))
   
  -       (defun focus-p (focus-spec)
  -         (and focus-spec (< 0 (@ focus-spec length))))
  +       (defun focus-p (props?)
  +         (let ((tad (@ props? tree-address))
  +               (foc (@ props? focus)))
  +           (when (eq (@ tad length) (@ foc length))
  +             (loop for x in tad
  +                   for y in foc
  +                   unless (equal x y) do (return nil)
  +                     finally (return t)))))
  +
  +       (defun focus-parent-p (props?)
  +         (let ((tad (@ props? tree-address))
  +               (foc (@ props? focus)))
  +           (when (> (@ tad length) (@ foc length))
  +             (loop for x in tad
  +                   for y in foc
  +                   unless (equal x y) do (return nil)
  +                     finally (return t)))))
   
          (defun focus-parent-p (opins focus-spec)
            (dolist (o opins)
  
positive.code:                               left (prop horizontal-position))
                 (:div "title placeholder")
                 (:hilited-text
                  :text (@ op comment)
                  :opinions (chain (prop opinions) (slice 1))
                  :focus (and (focus-p (prop focus))
                              (chain (prop focus) (slice 1)))
                  :focus-func (prop focus-func))))))
  
         (def-component target-root
             (psx
  
negative.code:                           (psx (:opinion :opinions focussed
                                           :focus (prop focus))))))))
  
         (defun %make-segments (text opins props)
           (collecting
             (let ((segpoints (excerpt-segment-points
                               (collecting (dolist (op opins) (collect (@ op 0))))
  