anchor.diff:          (input-alphabet (make-finite-set))
           (stack-alphabet (make-finite-set)))
       (loop
  -       for (x y) in edges
  -       for ((q-0 sigma gamma-0) (q-1 gamma-1)) in edges
  +       for edge in edges
          do
  -         (setf (gethash x hash) (finite-set-add (gethash x hash) y)
  -               states (finite-set-union states (finite-set q-0 q-1))
  -               input-alphabet (finite-set-add input-alphabet sigma)
  -               stack-alphabet (finite-set-union stack-alphabet (finite-set gamma-0 gamma-1))))
  +         (destructuring-bind (x y) edge
  +           (destructuring-bind ((q-0 sigma gamma-0) (q-1 &rest gamma-1)) edge
  +             ;(print edge)
  +             (setf (gethash x hash) (finite-set-add (gethash x hash) y)
  +                   states (finite-set-union states (finite-set q-0 q-1))
  +                   input-alphabet (finite-set-add input-alphabet sigma)
  +                   stack-alphabet (finite-set-union stack-alphabet
  +                                                    (fold #'finite-set-add (make-finite-set)
  +                                                          (cons gamma-0 gamma-1)))))))
       (assert (finite-set-inp start states))
       (assert (finite-set-subsetp accept states))
       (%make-pda :states states
  
positive.code:   accept)
  
  
  (defun pda-map-transtions (result-type function pda)
    "Apply FUNCTION to all transitions of PDA.
  FUNCTION: (lambda ( (list q-0 z g-0) (list q-1 g-1))"
  
negative.code:                           (finite-set-map 'list (lambda (state)
                                                    (list (funcall state-numbers state) state font-size))
                                            (pda-states pda)))
                    ;; start state
                    (when (pda-start pda)
                      (format s "~&  start[shape=none,fontsize=~D];" font-size)
  