code: def _get_array_idxs(typ, idx_so_far=None):
      idx_so_far = ivy.default(idx_so_far, [])
      these_idxs = []
      if not hasattr(typ, "__args__"):
          return these_idxs
      is_opt = _is_optional(typ)
      is_union = _is_union(typ)
      is_dict = _is_dict(typ)
      is_iter = _is_iterable(typ)
      for a in typ.__args__:
          a_repr = repr(a)
          if (
              "[" not in a_repr
              and "]" not in a_repr
              and "ivy." in a_repr
              and (".Array" in a_repr or ".NativeArray" in a_repr)
          ):
              these_idxs.append(
                  idx_so_far + _correct_index(is_opt, is_dict, is_iter)
              )
              if is_union:
                  break
          else:
              these_idxs += _get_array_idxs(
                  a,
                  idx_so_far + _correct_index(is_opt, is_dict, is_iter),
              )
      return these_idxs
  
file_path: ivy/ivy/utils/inspection.py
imports: from typing import get_type_hints
  import ivy
label_desc: Use image node_id 6 for calling a global function with example usage: _get_array_idxs(typ, idx_so_far) and returns: these_idxs, these_idxs