sig
  type key = UnionFind.Item.t
  type 'a t
  val empty : 'UnionFind.Item.Map.t
  val find : UnionFind.Item.Map.key -> 'UnionFind.Item.Map.t -> 'a
  val add :
    UnionFind.Item.Map.key ->
    '-> 'UnionFind.Item.Map.t -> 'UnionFind.Item.Map.t
  val fold :
    (UnionFind.Item.Map.key -> '-> '-> 'b) ->
    'UnionFind.Item.Map.t -> '-> 'b
end