macro_rules! type_name {
    ("ivec4") => { ... };
    ("mat2x4") => { ... };
    ("dmat2") => { ... };
    ("isampler1D") => { ... };
    ("image3D") => { ... };
    ("usampler3D") => { ... };
    ("uimage3D") => { ... };
    ("utextureCubeArray") => { ... };
    ("imageCube") => { ... };
    ("sampler3DRect") => { ... };
    ("samplerBuffer") => { ... };
    ("uvec2") => { ... };
    ("utexture2D") => { ... };
    ("utexture1DArray") => { ... };
    ("iimage2DMSArray") => { ... };
    ("imageBuffer") => { ... };
    ("isamplerBuffer") => { ... };
    ("sampler1DArray") => { ... };
    ("uimage1DArray") => { ... };
    ("bvec3") => { ... };
    ("mat3x3") => { ... };
    ("sampler2DRectShadow") => { ... };
    ("dmat4") => { ... };
    ("utexture2DRect") => { ... };
    ("usampler2DRect") => { ... };
    ("dmat3x3") => { ... };
    ("dmat4x2") => { ... };
    ("dmat4x4") => { ... };
    ("uimage1D") => { ... };
    ("mat2x2") => { ... };
    ("fvec4") => { ... };
    ("sampler2DMS") => { ... };
    ("itexture2DArray") => { ... };
    ("iimage1DArray") => { ... };
    ("int") => { ... };
    ("texture2DArray") => { ... };
    ("uimageBuffer") => { ... };
    ("mat2") => { ... };
    ("mat4") => { ... };
    ("isampler2DArray") => { ... };
    ("textureCube") => { ... };
    ("vec2") => { ... };
    ("utexture2DArray") => { ... };
    ("dmat2x3") => { ... };
    ("samplerCubeArrayShadow") => { ... };
    ("sampler2DArrayShadow") => { ... };
    ("textureCubeArray") => { ... };
    ("void") => { ... };
    ("ivec2") => { ... };
    ("bvec2") => { ... };
    ("uimage2D") => { ... };
    ("iimage2DMS") => { ... };
    ("mat4x3") => { ... };
    ("textureBuffer") => { ... };
    ("usamplerCube") => { ... };
    ("iimage2DArray") => { ... };
    ("sampler2DArray") => { ... };
    ("usamplerBuffer") => { ... };
    ("usampler2DMSArray") => { ... };
    ("mat3x2") => { ... };
    ("samplerCubeShadow") => { ... };
    ("dmat3x4") => { ... };
    ("atomic_uint") => { ... };
    ("dmat3x2") => { ... };
    ("samplerShadow") => { ... };
    ("itextureBuffer") => { ... };
    ("itexture3D") => { ... };
    ("isampler2D") => { ... };
    ("dvec3") => { ... };
    ("texture2DMS") => { ... };
    ("utexture2DMS") => { ... };
    ("samplerCube") => { ... };
    ("uimage2DMSArray") => { ... };
    ("image2DMSArray") => { ... };
    ("uvec3") => { ... };
    ("usamplerCubeArray") => { ... };
    ("itexture2DMS") => { ... };
    ("image1DArray") => { ... };
    ("sampler") => { ... };
    ("iimageCubeArray") => { ... };
    ("isubpassInputMS") => { ... };
    ("sampler1D") => { ... };
    ("isamplerCubeArray") => { ... };
    ("itexture2DMSArray") => { ... };
    ("iimage2DRect") => { ... };
    ("isampler2DMS") => { ... };
    ("sampler1DShadow") => { ... };
    ("texture2DMSArray") => { ... };
    ("hvec3") => { ... };
    ("mat2x3") => { ... };
    ("mat3x4") => { ... };
    ("utextureCube") => { ... };
    ("imageCubeArray") => { ... };
    ("mat3") => { ... };
    ("mat4x4") => { ... };
    ("usubpassInputMS") => { ... };
    ("sampler2DMSArray") => { ... };
    ("image1D") => { ... };
    ("ivec3") => { ... };
    ("iimageBuffer") => { ... };
    ("image2DRect") => { ... };
    ("texture2DRect") => { ... };
    ("utextureBuffer") => { ... };
    ("texture3D") => { ... };
    ("double") => { ... };
    ("bool") => { ... };
    ("fvec2") => { ... };
    ("dmat4x3") => { ... };
    ("iimage3D") => { ... };
    ("iimage1D") => { ... };
    ("dvec4") => { ... };
    ("utexture1D") => { ... };
    ("itextureCube") => { ... };
    ("uvec4") => { ... };
    ("itexture1DArray") => { ... };
    ("dvec2") => { ... };
    ("uimageCubeArray") => { ... };
    ("usampler1DArray") => { ... };
    ("isampler1DArray") => { ... };
    ("utexture2DMSArray") => { ... };
    ("vec4") => { ... };
    ("usampler2D") => { ... };
    ("dmat2x2") => { ... };
    ("vec3") => { ... };
    ("uimage2DArray") => { ... };
    ("sampler1DArrayShadow") => { ... };
    ("usampler1D") => { ... };
    ("dmat3") => { ... };
    ("itexture1D") => { ... };
    ("fvec3") => { ... };
    ("texture1DArray") => { ... };
    ("itexture2DRect") => { ... };
    ("itexture2D") => { ... };
    ("sampler2DShadow") => { ... };
    ("subpassInput") => { ... };
    ("float") => { ... };
    ("hvec2") => { ... };
    ("image2D") => { ... };
    ("usubpassInput") => { ... };
    ("subpassInputMS") => { ... };
    ("samplerCubeArray") => { ... };
    ("sampler2D") => { ... };
    ("isampler2DMSArray") => { ... };
    ("uint") => { ... };
    ("image2DArray") => { ... };
    ("texture1D") => { ... };
    ("image2DMS") => { ... };
    ("isamplerCube") => { ... };
    ("sampler2DRect") => { ... };
    ("uimageCube") => { ... };
    ("iimageCube") => { ... };
    ("") => { ... };
    ("hvec4") => { ... };
    ("usampler2DMS") => { ... };
    ("uimage2DRect") => { ... };
    ("texture2D") => { ... };
    ("sampler3D") => { ... };
    ("dmat2x4") => { ... };
    ("iimage2D") => { ... };
    ("uimage2DMS") => { ... };
    ("utexture3D") => { ... };
    ("itextureCubeArray") => { ... };
    ("mat4x2") => { ... };
    ("usampler2DArray") => { ... };
    ("isubpassInput") => { ... };
    ("bvec4") => { ... };
    ("isampler2DRect") => { ... };
    ("isampler3D") => { ... };
}