type PredecessorSets<NodeId> = HashMap<NodeId, HashSet<NodeId>>;
struct PredecessorSets<NodeId> { /* private fields */ }