anchor.diff:  
   (defrestart window-error)
   (defrestart drawable-error)
  +(defrestart match-error)
   (defrestart simple-error)
   (defrestart value-error)
   
  
positive.code: 
  (defparameter *families* (list
                            #'(lambda (w) (search "Gimp" (xclass w) :test #'char-equal)))
    "List of predicates against which windows are of the same family.")
  
  (defstruct (shortcut (:conc-name)) (states nil) (code 0))
  
  
negative.code: 
  (defun focus (window)
    (when window
      (let ((group (same-group window)))
        (dolist (w group) (%focus w))
        (%focus window))))
  
  (defun next (&optional (way #'1+))
    (let* ((family (family *curr*))
           (group (same-group *curr*))
           (windows (set-difference *windows* (union family group :test #'win=) :test #'win=))
           (n (length windows))
           (nw (or (position *curr* windows :test #'win=) 0)))
      (unless (zerop n)
  