((function fract
   (signature float
     (parameters
       (declare (in) float x))
     ((return (expression float fract (var_ref x)))))

   (signature vec2
     (parameters
       (declare (in) vec2 x))
     ((return (expression vec2 fract (var_ref x)))))

   (signature vec3
     (parameters
       (declare (in) vec3 x))
     ((return (expression vec3 fract (var_ref x)))))

   (signature vec4
     (parameters
       (declare (in) vec4 x))
     ((return (expression vec4 fract (var_ref x)))))
))