((function roundEven
   (signature float
     (parameters
       (declare (in) float arg0))
     ((return (expression float round_even (var_ref arg0)))))

   (signature vec2
     (parameters
       (declare (in) vec2 arg0))
     ((return (expression vec2 round_even (var_ref arg0)))))

   (signature vec3
     (parameters
       (declare (in) vec3 arg0))
     ((return (expression vec3 round_even (var_ref arg0)))))

   (signature vec4
     (parameters
       (declare (in) vec4 arg0))
     ((return (expression vec4 round_even (var_ref arg0)))))
))
