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.
Given a graph with vertices which are lists of small integers, eg [1,2,3], return a graph with vertices which are the numbers obtained by interpreting these as digits, eg 123. The caller is responsible for ensuring that this makes sense (eg that the small integers are all < 10)