public void Deconstruct(out AbstractVertex fromVertex, out AbstractVertex toVertex) => (fromVertex, toVertex) = (FromVertex, ToVertex);
 public AdjacentVertices(AbstractVertex fromVertex, AbstractVertex toVertex)
 {
     FromVertex = fromVertex != null ? fromVertex : throw new ArgumentNullException(nameof(fromVertex));
     ToVertex   = toVertex != null ? toVertex : throw new ArgumentNullException(nameof(toVertex));
 }