anchor.diff:    (if (typep gravity 'gravity)
         gravity
         (ecase gravity
  +        (:top (make-instance 'gravity-top))
           (:topright (make-instance 'gravity-topright))
           (:cursor (make-instance 'gravity-cursor))
           (:follow-cursor (make-instance 'gravity-follow-cursor)))))
  
positive.code:       (setf w (min width disp-w)))
      (values x y w h)))
  
  (defmethod compute-popup-window-position ((gravity gravity-topright) source-window width height)
    (let* ((b2 (* +border-size+ 2))
           (win-x (window-x source-window))
  
negative.code: (defgeneric compute-popup-window-position (gravity source-window width height))
  
  (defclass gravity (cl-singleton-mixin:singleton-class) ())
  (defclass gravity-top (gravity) ())
  (defclass gravity-topright (gravity) ())
  (defclass gravity-cursor (gravity) ())
  (defclass gravity-follow-cursor (gravity-cursor) ())
  