A graph that has arrows on its edges is called a *directed graph*:

But sometimes we have data that is undirected, allowing us to travel in both directions along an edge. Such a graph is less busy than a directed graph, and can be easier to understand:

The following code expands our graph utilities with new functions that let us draw undirected graphs:

(defun uedges->dot (edges) (maplist (lambda (lst) (mapc (lambda (edge) (unless ...