((function dFdx
   (signature float
     (parameters
       (declare (in) float p))
     ((return (expression float dFdx (var_ref p)))))

   (signature vec2
     (parameters
       (declare (in) vec2 p))
     ((return (expression vec2 dFdx (var_ref p)))))

   (signature vec3
     (parameters
       (declare (in) vec3 p))
     ((return (expression vec3 dFdx (var_ref p)))))

   (signature vec4
     (parameters
       (declare (in) vec4 p))
     ((return (expression vec4 dFdx (var_ref p)))))
))