code: def _combine_variant_collections(cls, combine_fn, variant_collections, kwargs):
          
          kwargs["variants"] = combine_fn(*[set(vc) for vc in variant_collections])
          kwargs["source_to_metadata_dict"] = cls._merge_metadata_dictionaries(
              [vc.source_to_metadata_dict for vc in variant_collections])
          kwargs["sources"] = set.union(*([vc.sources for vc in variant_collections]))
          for key, value in variant_collections[0].to_dict().items():
              # If some optional parameter isn't explicitly specified as an
              # argument to union() or intersection() then use the same value
              # as the first VariantCollection.
              #
              # I'm doing this so that the meaning of VariantCollection.union
              # and VariantCollection.intersection with a single argument is
              # the identity function (rather than setting optional parameters
              # to their default values.
              if key not in kwargs:
                  kwargs[key] = value
          return cls(**kwargs)
docs: Create a single VariantCollection from multiple different collections.
  
          Parameters
          ----------
  
          cls : class
              Should be VariantCollection
  
          combine_fn : function
              Function which takes any number of sets of variants and returns
              some combination of them (typically union or intersection).
  
          variant_collections : tuple of VariantCollection
  
          kwargs : dict
              Optional dictionary of keyword arguments to pass to the initializer
              for VariantCollection.