docs: def as_indexable(array):
      """
      This function always returns a ExplicitlyIndexed subclass,
      so that the vectorized indexing is always possible with the returned
      object.
      """
      if isinstance(array, ExplicitlyIndexed):
          return array
      if isinstance(array, np.ndarray):
          return NumpyIndexingAdapter(array)
      if isinstance(array, pd.Index):
          return PandasIndexAdapter(array)
      if isinstance(array, dask_array_type):
          return DaskIndexingAdapter(array)
      raise TypeError('Invalid array type: {}'.format(type(array)))