The edges here are specified for clarity, but really any note can be an edge. The arrow -> simply specifies that there is a way to get from the note at the start of the arrow to the note at the end of the arrow (plus some minimal syntactic sugar to allow for dropping an arrow when it’s implied).