UnionFind = ref object count*: int par_or_siz: seq[int]
CPLIB_COLLECTIONS_UNIONFIND = 1
proc initUnionFind(N: int): UnionFind {....raises: [], tags: [].}
proc issame(self: UnionFind; x: int; y: int): bool {....raises: [], tags: [].}
proc root(self: UnionFind; x: int): int {....raises: [], tags: [].}
proc roots(self: UnionFind): seq[int] {....raises: [], tags: [].}
proc siz(self: UnionFind; x: int): int {....raises: [], tags: [].}
proc unite(self: UnionFind; x: int; y: int) {....raises: [], tags: [].}