docs: def create_fake_array_input(cls, dependency, readable_name, index=None):
          """Create fake Weld inputs to be used in future WeldObjects.
  
          Parameters
          ----------
          dependency : str
              The Weld input name of the actual intermediate result, obtained from cache_intermediate_result.
          readable_name : str
              User-friendly string that will be used to generate a unique placeholder name. This placeholder
              will be seen in the WeldObject.context.
          index : tuple, optional
              If passed, it means the intermediate result dependency is in fact a struct/tuple, so this fake input
              shall be able to select the required array from the tuple. Note that it can work through multiple levels,
              i.e. passing (1, 0) would essentially select 2 from (1, (2, 3)).
  
          Returns
          -------
          FakeWeldInput
              An instance representing the fake Weld input to be used when generating the WeldObjects relying on it.
  
          """
          assert dependency in Cache._intermediate_results
          assert isinstance(readable_name, str)
  
          name = Cache._generate_placeholder(readable_name)
  
          if index is None:
              fake_weld_input = _FakeArray(dependency, name)
          else:
              assert isinstance(index, tuple)
              fake_weld_input = _FakeStructMember(dependency, index, name)
  
          return fake_weld_input