[HOpenGL] how to compose a monad with hopengl