code: def kron(
      a: Union[ivy.Array, ivy.NativeArray],
      b: Union[ivy.Array, ivy.NativeArray],
      /,
      *,
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """Compute the Kronecker product, a composite array made of blocks of the
      second array scaled by the first.
  
      Parameters
      ----------
      a
          First input array.
      b
          Second input array
      out
          optional output array, for writing the result to. It must have a shape that the
          inputs broadcast to.
  
      Returns
      -------
      ret
          Array representing the Kronecker product of the input arrays.
  
      Examples
      --------
      >>> a = ivy.array([1,2])
      >>> b = ivy.array([3,4])
      >>> ivy.kron(a, b)
      ivy.array([3, 4, 6, 8])
      """
      return current_backend(a, b).kron(a, b, out=out)
  
imports: import logging
  from typing import Union, Optional, Tuple, List, Sequence, Literal
  import ivy
  from ivy.utils.backend import current_backend
  from ivy.func_wrapper import to_native_arrays_and_back, handle_out_argument, handle_nestable, handle_array_like_without_promotion, handle_array_function, handle_device, inputs_to_ivy_arrays, handle_backend_invalid
  from ivy.utils.exceptions import handle_exceptions
label_desc: Use image node_id 4 for calling a global function with example usage: kron() and returns: current_backend