callbackWindowFocus :: IORef GLFWState -> Callbacks
                    -> GLFW.Window -> GLFW.FocusState -> IO ()
callbackWindowFocus ref callbacks _ focusState =
  case focusState of
    GLFW.FocusState'Focused ->
      resumeCallback callbacks ref
    GLFW.FocusState'Defocused ->
      pauseCallback callbacks ref


-- Close Callback -------------------------------------------------------------
-- | Callback for when the user closes the window.
--   We can do some cleanup here.
callbackWindowFocus :: IORef GLFWState -> Callbacks
                    -> GLFW.Window -> GLFW.FocusState -> IO ()
callbackWindowFocus ref callbacks _ focusState =
  case focusState of
    GLFW.FocusState'Focused ->
      resumeCallback callbacks ref
    GLFW.FocusState'Defocused ->
      pauseCallback callbacks ref


-- Close Callback -------------------------------------------------------------
-- | Callback for when the user closes the window.
--   We can do some cleanup here.
callbackWindowFocus ref callbacks _ focusState =
  case focusState of
    GLFW.FocusState'Focused ->
      resumeCallback callbacks ref
    GLFW.FocusState'Defocused ->
      pauseCallback callbacks ref


-- Close Callback -------------------------------------------------------------
-- | Callback for when the user closes the window.
--   We can do some cleanup here.