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

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

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

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