code: def msort(
      a: Union[ivy.Array, ivy.NativeArray, list, tuple],
      /,
      *,
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """Return a copy of an array sorted along the first axis.
  
      Parameters
      ----------
      a
          array-like input.
      out
          optional output array, for writing the result to.
  
      Returns
      -------
      ret
          sorted array of the same type and shape as a
  
      Examples
      --------
      >>> a = ivy.asarray([[8, 9, 6],[6, 2, 6]])
      >>> ivy.msort(a)
      ivy.array(
          [[6, 2, 6],
           [8, 9, 6]]
          )
      """
      return ivy.current_backend(a).msort(a, out=out)
  
file_path: ivy/ivy/functional/ivy/sorting.py
imports: from typing import Union, Optional, Literal, List
  import ivy
  from ivy.func_wrapper import handle_array_function, to_native_arrays_and_back, handle_out_argument, handle_nestable, handle_array_like_without_promotion, handle_device, handle_backend_invalid
  from ivy.utils.exceptions import handle_exceptions
label_desc: Use image node_id 3 for calling a global function with example usage: msort() and returns: ivy