code: def product(*coord_systems, **kwargs):
      r"""Create the product of a sequence of CoordinateSystems.
  
      The coord_dtype of the result will be determined by ``safe_dtype``.
  
      Parameters
      ----------
      \*coord_systems : sequence of :class:`CoordinateSystem`
      name : str
          Name of output coordinate system
  
      Returns
      -------
      product_coord_system : :class:`CoordinateSystem`
  
      Examples
      --------
      >>> c1 = CoordinateSystem('ij', 'input', coord_dtype=np.float32)
      >>> c2 = CoordinateSystem('kl', 'input', coord_dtype=np.complex_)
      >>> c3 = CoordinateSystem('ik', 'in3')
  
      >>> print(product(c1, c2))
      CoordinateSystem(coord_names=('i', 'j', 'k', 'l'), name='product', coord_dtype=complex128)
  
      >>> print(product(c1, c2, name='another name'))
      CoordinateSystem(coord_names=('i', 'j', 'k', 'l'), name='another name', coord_dtype=complex128)
  
      >>> product(c2, c3)
      Traceback (most recent call last):
         ...
      ValueError: coord_names must have distinct names
      """
      name = kwargs.pop("name", "product")
      if kwargs:
          raise TypeError(f"Unexpected kwargs {kwargs}")
      coords = []
      for c in coord_systems:
          coords += c.coord_names
      dtype = safe_dtype(*[c.coord_dtype for c in coord_systems])
      return CoordinateSystem(coords, name, coord_dtype=dtype)
  
imports: import numpy
label_desc: Use image node_id 3 for calling a global function with example usage: product() and returns: CoordinateSystem