Some useful operations.
Cartesian product of two ordered types.
Cartesian product of two hashable types.
Cartesian product of two comparable types.
Create a vertex type with some data attached to it