If I'm not mistaken, nodeRenumberer couldn't act as a trailing optional parameter then, unless we also push "directory" and "prefixFileNames" parameters into GraphReader. But a future GraphReader might read from a non-file source. My thinking had been to avoid breaking existing callers of AdjacencyListGraphReader constructor. Maybe as a private var with a setter makes more sense?