this is useful in general, but will also help with benchmarking (T1885) as passing `edges=*` we will be able to time "pure" graph traversal without having to add timing counters around int→type maps (doing so will probably cost //more// than the lookups themselves)