pub trait UnionFindTrait<N: Copy + Eq + Hash + Clone> { fn find(&mut self, node: N) -> N; fn union(&mut self, x: N, y: N); fn subsets(&mut self) -> Vec<HashSet<N>>; }