Changing the declaration to GLdouble -> GLdouble -> GLdouble -> IO() and using
(0.0::GLdouble) fixes it, and I'm not clear on why it's not automagic. There are many times I see the
compiler doing type conversion an numerican arguments although sometimes the occasional fracSomethingIntegralorOther is required.