sig type 'a t val create : int -> 'a Union.t val add : 'a Union.t -> 'a -> unit val find : 'a Union.t -> 'a -> 'a val union : 'a Union.t -> 'a -> 'a -> 'a val extract : 'a Union.t -> 'a list list end