sig
  type item
  type descriptor
  type accumulator
  type state
  val initial : UnionFind.S.state
  val representative :
    UnionFind.S.item -> UnionFind.S.state -> UnionFind.S.item
  val equivalent :
    UnionFind.S.item -> UnionFind.S.item -> UnionFind.S.state -> bool
  val descriptor :
    UnionFind.S.item -> UnionFind.S.state -> UnionFind.S.descriptor
  val set :
    UnionFind.S.item ->
    UnionFind.S.descriptor -> UnionFind.S.state -> UnionFind.S.state
  val union :
    UnionFind.S.item ->
    UnionFind.S.item ->
    UnionFind.S.state ->
    UnionFind.S.accumulator -> UnionFind.S.state * UnionFind.S.accumulator
  val domain : UnionFind.S.state -> UnionFind.S.item list
end