(bind-func glfw_init_and_create_window
(lambda (width height)
(glfw_init)
(glfw_set_core_profile)
(let ((window (glfw_create_window width height)))
;; the ShowWindow and SwapBuffers calls are necessary for
;; Windows, otherwise the context becomes unresponsive
(glfwShowWindow window)
(glfwMakeContextCurrent window)
(glfwSwapInterval 1)
(glfwSwapBuffers window)
window)))