     /**
      Creates an array of all vertices reachable from a vertex.
 
-     A *default implementation* using `vertices` and `edgeExists` is provided.
-     It works in O(V) time.
-
      - parameter vertex: The vertex whose neighbors to retrieve.
 
      - returns: An array of all vertices with edges from `vertex` to them, in no

    }

    /**
     Adds a new edge between two vertices.
   
     Changes the graph in-place to add the edge.  This operation is symmetric;
     flipping the arguments makes no difference in the result.

     - parameter from: One vertex on the edge.
     - parameter to: The other vertex on the edge.

     - throws: `GraphError.VertexNotPresent` if either vertex is not in the
       graph.

*/
public class AdjacencyMatrix<Vertex: Hashable> {
    /** The adjacency matrix itself.  */
    private var matrix: Matrix<Int8>

    /**
     A dictionary mapping vertices to their indices in the matrix.
