#include <metal_stdlib>

using namespace metal;
void bar() {
}

struct tint_symbol_1 {
  float4 value [[color(0)]];
};

float4 tint_symbol_inner() {
  float2 a = float2(0.0f);
  bar();
  return float4(0.400000006f, 0.400000006f, 0.800000012f, 1.0f);
}

fragment tint_symbol_1 tint_symbol() {
  float4 const inner_result = tint_symbol_inner();
  tint_symbol_1 wrapper_result = {};
  wrapper_result.value = inner_result;
  return wrapper_result;
}

