sig
type 'a point
val fresh : 'a -> 'a UnionFind.point
val find : 'a UnionFind.point -> 'a
val union : 'a UnionFind.point -> 'a UnionFind.point -> unit
val equivalent : 'a UnionFind.point -> 'a UnionFind.point -> bool
val redundant : 'a UnionFind.point -> bool
val change : 'a UnionFind.point -> 'a -> 'a
end