pub type Component<N> = HashSet<N>;
Each connected component is represented as a set of nodes
pub struct Component<N> { /* private fields */ }