((function dot
   (signature float
     (parameters
       (declare (in) float arg0)
       (declare (in) float arg1))
     ((return (expression float * (var_ref arg0) (var_ref arg1)))))

   (signature float
     (parameters
       (declare (in) vec2 arg0)
       (declare (in) vec2 arg1))
     ((return (expression float dot (var_ref arg0) (var_ref arg1)))))

   (signature float
     (parameters
       (declare (in) vec3 arg0)
       (declare (in) vec3 arg1))
     ((return (expression float dot (var_ref arg0) (var_ref arg1)))))

   (signature float
     (parameters
       (declare (in) vec4 arg0)
       (declare (in) vec4 arg1))
     ((return (expression float dot (var_ref arg0) (var_ref arg1)))))
))
