#version 460

layout (location = 0) out vec4 io;

// default uniforms will be gathered into a uniform block
// final global block will merge uniforms from all linked files
uniform vec2 a;     // declared in both stages with different type

vec4 foo() {
    return a.xyxy;
}

void main() {
    io = foo();
}