docs: def concat(cls, variables, dim='concat_dim', positions=None,
                 shortcut=False):
          """Specialized version of Variable.concat for IndexVariable objects.
  
          This exists because we want to avoid converting Index objects to NumPy
          arrays, if possible.
          """
          if not isinstance(dim, str):
              dim, = dim.dims
  
          variables = list(variables)
          first_var = variables[0]
  
          if any(not isinstance(v, cls) for v in variables):
              raise TypeError('IndexVariable.concat requires that all input '
                              'variables be IndexVariable objects')
  
          indexes = [v._data.array for v in variables]
  
          if not indexes:
              data = []
          else:
              data = indexes[0].append(indexes[1:])
  
              if positions is not None:
                  indices = nputils.inverse_permutation(
                      np.concatenate(positions))
                  data = data.take(indices)
  
          attrs = OrderedDict(first_var.attrs)
          if not shortcut:
              for var in variables:
                  if var.dims != first_var.dims:
                      raise ValueError('inconsistent dimensions')
                  utils.remove_incompatible_items(attrs, var.attrs)
  
          return cls(first_var.dims, data, attrs)