docs: def merge(objects, compat='no_conflicts', join='outer'):
      """Merge any number of xarray objects into a single Dataset as variables.
  
      Parameters
      ----------
      objects : Iterable[Union[xarray.Dataset, xarray.DataArray, dict]]
          Merge together all variables from these objects. If any of them are
          DataArray objects, they must have a name.
      compat : {'identical', 'equals', 'broadcast_equals', 'no_conflicts'}, optional
          String indicating how to compare variables of the same name for
          potential conflicts:
  
          - 'broadcast_equals': all values must be equal when variables are
            broadcast against each other to ensure common dimensions.
          - 'equals': all values and dimensions must be the same.
          - 'identical': all values, dimensions and attributes must be the
            same.
          - 'no_conflicts': only values which are not null in both datasets
            must be equal. The returned dataset then contains the combination
            of all non-null values.
      join : {'outer', 'inner', 'left', 'right', 'exact'}, optional
          How to combine objects with different indexes.
  
      Returns
      -------
      Dataset
          Dataset with combined variables from each object.
  
      Examples
      --------
      >>> arrays = [xr.DataArray(n, name='var%d' % n) for n in range(5)]
      >>> xr.merge(arrays)
      <xarray.Dataset>
      Dimensions:  ()
      Coordinates:
          *empty*
      Data variables:
          var0     int64 0
          var1     int64 1
          var2     int64 2
          var3     int64 3
          var4     int64 4
  
      Raises
      ------
      xarray.MergeError
          If any variables with the same name have conflicting values.
  
      See also
      --------
      concat
      """  # noqa
      from .dataarray import DataArray
      from .dataset import Dataset
  
      dict_like_objects = [
          obj.to_dataset() if isinstance(obj, DataArray) else obj
          for obj in objects]
  
      variables, coord_names, dims = merge_core(dict_like_objects, compat, join)
      # TODO: don't always recompute indexes
      merged = Dataset._construct_direct(
          variables, coord_names, dims, indexes=None)
  
      return merged