anchor.diff:      (fa-renumber fa :state-map state-map)))
   
   
  -(defun fa-renumber (fa &key state-map token-map)
  -  "Reorder states and tokens in the FA.
  +(defun fa-renumber (fa &key state-map token-map sort)
  +  "Reorder, merge, or remove states and tokens in the FA.
   STATE-MAP: (aref state-map old-index) => (or new-index nil)
  -TOKEN-MAP: (aref token-map old-index) => (or new-index nil)"
  +TOKEN-MAP: (aref token-map old-index) => new-index"
     (labels ((new-state (i)
                (if state-map
                    (aref state-map i)
  
positive.code:     (t (if (equal (car a) (car b))
             (symbol-list-compare (cdr a) (cdr b))
             (symbol-list-compare  (car a) (car b))))))
  
  (defun fa-subset-indices (subset sequence)
    "return a list of indices of sequence elements that intersect with subset"
  
negative.code: (defun fa-mover (fa)
    (let ((move (make-array (list (length (fa-states fa)) (length (fa-tokens fa)))
                            :initial-element nil)))
      (fa-map-edges nil (lambda (q0 z q1)
                          (push q1 (aref move q0 z)))
                    fa)
      (lambda (i-state i-token) (aref move i-state i-token))))
  
  (defun fa-inv-mover (fa)
    (let ((move (make-array (list (length (fa-states fa)) (length (fa-tokens fa)))
                            :initial-element nil)))
      (fa-map-edges nil (lambda (q0 z q1)
                          (push q0 (aref move q1 z)))
                    fa)
      (lambda (i-state i-token) (aref move i-state i-token))))
  
  (defun fa-successor-array (fa)
  