generic
    type Vertex is private;
    type Iterator is limited private;
    with procedure Initialize (The_Iterator : in out Iterator;
                               With_The_Vertex : in Vertex);
    with procedure Get_Next (The_Iterator : in out Iterator);
    with function Value_Of (The_Iterator : in Iterator) return Vertex;
    with function Is_Done (The_Iterator : in Iterator) return Boolean;
package Graph_Utilities_Undirected is

    function Is_Isolated (The_Vertex : in Vertex) return Boolean;
    function Has_Self_Loop (The_Vertex : in Vertex) return Boolean;

end Graph_Utilities_Undirected;