GLSL functions can now get their return type from the type of the arguments