an attempt to create a concise modern Haskell OpenGL boilerplate with basic IO