struct S {
};

var<private> bool_var : bool = bool();
var<private> i32_var : i32 = i32();
var<private> u32_var : u32 = u32();
var<private> f32_var : f32 = f32();
var<private> v2i32_var : vec2<i32> = vec2<i32>();
var<private> v3u32_var : vec3<u32> = vec3<u32>();
var<private> v4f32_var : vec4<f32> = vec4<f32>();
var<private> m2x3_var : mat2x3<f32> = mat2x3<f32>();
var<private> arr_var : array<f32, 4> = array<f32, 4>();
var<private> struct_var : S = S();

[[stage(compute)]]
fn main() {
  // Reference the module-scope variables to stop them from being removed.
  bool_var = bool();
  i32_var = i32();
  u32_var = u32();
  f32_var = f32();
  v2i32_var = vec2<i32>();
  v3u32_var = vec3<u32>();
  v4f32_var = vec4<f32>();
  m2x3_var = mat2x3<f32>();
  arr_var = array<f32, 4>();
  struct_var = S();
}
