code: def type_inference(self):
      init_length = self.init_length.val
      if self.elem_shape is None or self.elem_shape.sym_val is None:
          return types.list(
              types.unknown,
              init_length=init_length,
              dynamic_length=self.dynamic_length.val,
          )
      builtin_dtype = types.string_to_builtin(self.dtype.val)
      elem_type = types.tensor(builtin_dtype, self.elem_shape.sym_val)
      return types.list(
          elem_type,
          init_length=init_length,
          dynamic_length=self.dynamic_length.val,
      )
  
file_path: coremltools/coremltools/converters/mil/frontend/tensorflow/dialect_ops.py
imports: from coremltools.converters.mil.mil import Operation, types
  from coremltools.converters.mil.mil.input_type import DefaultInputs, InputSpec, TensorInputType
  from coremltools.converters.mil.mil.ops.registry import SSAOpRegistry
label_desc: Use image node_id 2 for calling the tf_make_list obj's underlying member method code with example usage: obj.type_inference() and returns: types, types