sig
  type 'a t
  val create : 'a -> 'a Union_find.t
  val get : 'a Union_find.t -> 'a
  val set : 'a Union_find.t -> 'a -> unit
  val same_class : 'a Union_find.t -> 'a Union_find.t -> bool
  val union : 'a Union_find.t -> 'a Union_find.t -> unit
end