        (doto graph
          (.addVertex a)
          (.addVertex b)
-         (.addEdge (edge->j-edge edge) a b)))
+         (.addEdge (inner-edge edge) a b)))
      graph)))
 
 (defn undirected-multigraph

                                   UndirectedSparseMultigraph]
           edu.uci.ics.jung.graph.util.Pair))

;; FIXME
(defn- edge->j-edge
  [edge]
  (let [[a b] edge]
    (str a b)))

(defn- j-edge->edge
  [^Graph graph j-edge]
  (let [pair ^Pair (.getEndpoints graph j-edge)]
    [(.getFirst pair) (.getSecond pair)]))

;; Constructor
;; -----------

(defn edges
  "Returns all edges in graph."
  [^Graph graph]
  (map ->edge (.getEdges graph)))

(defn in-edges
  "Returns incoming edges incident to node in graph."
  [^Graph graph node]
  (map ->edge (.getInEdges graph node)))

(defn degree
  "Returns the number of edges incident to node."
