((function acos
   (signature float
     (parameters
       (declare (in) float x))
     ((declare () float s)
      (call asin (var_ref s) ((var_ref x)))
      (return (expression float - (constant float (1.5707964)) (var_ref s)))))

   (signature vec2
     (parameters
       (declare (in) vec2 x))
     ((declare () vec2 s)
      (call asin (var_ref s) ((var_ref x)))
      (return (expression vec2 - (constant float (1.5707964)) (var_ref s)))))

   (signature vec3
     (parameters
       (declare (in) vec3 x))
     ((declare () vec3 s)
      (call asin (var_ref s) ((var_ref x)))
      (return (expression vec3 - (constant float (1.5707964)) (var_ref s)))))

   (signature vec4
     (parameters
       (declare (in) vec4 x))
     ((declare () vec4 s)
      (call asin (var_ref s) ((var_ref x)))
      (return (expression vec4 - (constant float (1.5707964)) (var_ref s)))))
))
