Users may manipulate it directly, because it's returned by `Graph#edges`, but they should never call the constructor. I actually wanted to make this constructor private, but that interfered with Scala specialization.