The standard library Graph_By_Edge_Hashtable api defines graph representations which use hashtables to yield O(1) tests for existence of an edge in the graph. At present these are used mainly in the compiler.
The Graph_By_Edge_Hashtable api is implemented by the graph_by_edge_hashtable package.
The Graph_By_Edge_Hashtable api source code is in src/lib/std/src/graph-by-edge-hashtable.api.
The above information is manually maintained and may contain errors.
api { Bucket = BUCKET (Int , Int , Bucket) | NIL; Hashtable = LARGE (Ref(Rw_Vector(Bucket ) ) , Unt) | SMALL (Ref(Rw_Vector(List(Unt ) ) ) , Unt); Graph_By_Edge_Hashtable = GRAPH_BY_EDGE_HASHTABLE {edge_count:Ref(Int ), table:Hashtable}; empty_graph : Graph_By_Edge_Hashtable; get_hashchains_count : Graph_By_Edge_Hashtable -> Int; get_edge_count : Graph_By_Edge_Hashtable -> Int; insert_edge : Graph_By_Edge_Hashtable -> (Int , Int) -> Bool; edge_exists : Graph_By_Edge_Hashtable -> (Int , Int) -> Bool;};