combinationsOf k xs returns the subsets of xs of size k |If xs is in ascending order, then the returned list is in ascending order
Datatype for graphs, represented as a list of vertices and a list of edges |Both the list of vertices and the list of edges, and also the 2-element lists representing the edges, |are required to be in ascending order, without duplicates
|G [a] [[a]]|
Safe constructor for graph from lists of vertices and edges. |graph (vs,es) checks that vs and es are valid before returning the graph.