anchor.diff:                 name))
              (helper (s)
                (format s "~&digraph {~%")
  +             (format s "~&rankdir=\"LR\";~%")
                ;; state labels
  -             (format s "~:{~&  ~A[label=\"~A\"];~}"
  +             (format s "~:{~&  ~A[label=\"~A\",fontsize=~D];~}"
                        (loop for i below (length (fa-states fa))
  -                          collect (list i (state-label i))))
  +                          collect (list i (state-label i) font-size)))
                ;; start state
                (when (fa-start fa)
  -               (format s "~&  start[shape=none];")
  +               (format s "~&  start[shape=none,fontsize=~D];" font-size)
                  (format s "~{~&  start -> ~A;~}"
                          (map 'list #'identity
                               (alexandria:ensure-list (fa-start fa)))))
  
positive.code:              (format s "~{~&  ~A [ shape=doublecircle ];~}"
                       (map 'list #'identity
                            (alexandria:ensure-list (fa-accept fa))))
               (fa-map-edges nil (lambda (q0 z q1)
                                   (format s "~&  ~A -> ~A [label=\"~A\"];~%"
                                           q0 q1 (token-label z)))
                             fa)
               (format s "~&}~%"))
             (dot (ext)
  
negative.code:                   fa)
      array))
  
  (defun fa-dot (fa &key output (font-size 12))
    "Graphviz output of dfa.
  fa: finite automaton
  output: output file, type determined by suffix (png,pdf,eps)"
  