((function texelFetch
   (signature vec4
     (parameters
       (declare (in) sampler1D sampler)
       (declare (in) int P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature ivec4
     (parameters
       (declare (in) isampler1D sampler)
       (declare (in) int P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature uvec4
     (parameters
       (declare (in) usampler1D sampler)
       (declare (in) int P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature vec4
     (parameters
       (declare (in) sampler2D sampler)
       (declare (in) ivec2 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature ivec4
     (parameters
       (declare (in) isampler2D sampler)
       (declare (in) ivec2 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature uvec4
     (parameters
       (declare (in) usampler2D sampler)
       (declare (in) ivec2 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature vec4
     (parameters
       (declare (in) sampler3D sampler)
       (declare (in) ivec3 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature ivec4
     (parameters
       (declare (in) isampler3D sampler)
       (declare (in) ivec3 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature uvec4
     (parameters
       (declare (in) usampler3D sampler)
       (declare (in) ivec3 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature vec4
     (parameters
       (declare (in) sampler1DArray sampler)
       (declare (in) ivec2 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature ivec4
     (parameters
       (declare (in) isampler1DArray sampler)
       (declare (in) ivec2 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature uvec4
     (parameters
       (declare (in) usampler1DArray sampler)
       (declare (in) ivec2 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature vec4
     (parameters
       (declare (in) sampler2DArray sampler)
       (declare (in) ivec3 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature ivec4
     (parameters
       (declare (in) isampler2DArray sampler)
       (declare (in) ivec3 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

   (signature uvec4
     (parameters
       (declare (in) usampler2DArray sampler)
       (declare (in) ivec3 P) 
       (declare (in) int lod) )
     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))

))