#include <metal_stdlib>

using namespace metal;
struct VertexInputs {
  uint vertex_index;
  uint instance_index;
};

struct tint_symbol_1 {
  float4 value [[position]];
};

float4 tint_symbol_inner(VertexInputs inputs) {
  uint const foo = (inputs.vertex_index + inputs.instance_index);
  return float4();
}

vertex tint_symbol_1 tint_symbol(uint vertex_index [[vertex_id]], uint instance_index [[instance_id]]) {
  VertexInputs const tint_symbol_2 = {.vertex_index=vertex_index, .instance_index=instance_index};
  float4 const inner_result = tint_symbol_inner(tint_symbol_2);
  tint_symbol_1 wrapper_result = {};
  wrapper_result.value = inner_result;
  return wrapper_result;
}

