diff --git a/Graphics/Gloss/Interface/IO/Game.hs b/Graphics/Gloss/Interface/IO/Game.hs
--- a/Graphics/Gloss/Interface/IO/Game.hs
+++ b/Graphics/Gloss/Interface/IO/Game.hs
@@ -7,7 +7,7 @@
         , module Graphics.Gloss.Data.Picture
         , module Graphics.Gloss.Data.Color
         , playIO
-        , Event(..), Key(..), SpecialKey(..), MouseButton(..))
+        , Event(..), Key(..), SpecialKey(..), MouseButton(..), KeyState(..), Modifiers(..))
 where
 import Graphics.Gloss.Data.Display
 import Graphics.Gloss.Data.Picture
diff --git a/Graphics/Gloss/Internals/Interface/Backend/GLFW.hs b/Graphics/Gloss/Internals/Interface/Backend/GLFW.hs
--- a/Graphics/Gloss/Internals/Interface/Backend/GLFW.hs
+++ b/Graphics/Gloss/Internals/Interface/Backend/GLFW.hs
@@ -12,7 +12,7 @@
 import Graphics.UI.GLFW                    (WindowValue(..))
 import qualified Graphics.UI.GLFW          as GLFW
 import qualified Graphics.Rendering.OpenGL as GL
-import qualified Control.Excpetion         as X
+import qualified Control.Exception         as X
 
 -- [Note: FreeGlut]
 -- ~~~~~~~~~~~~~~~~
@@ -436,13 +436,14 @@
 runMainLoopGLFW stateRef 
  = X.catch go recover
  where
- recover :: SomeException -> IO ()x
- recover = do
+ recover :: X.SomeException -> IO ()
+ recover _ = do
 #ifdef linux_HOST_OS
 -- See [Note: FreeGlut] for why we need this.
         GLUT.exit
 #endif
-        return True 
+        return ()
+
  go :: IO ()
  go = do windowIsOpen <- GLFW.windowIsOpen
          when windowIsOpen 
diff --git a/gloss.cabal b/gloss.cabal
--- a/gloss.cabal
+++ b/gloss.cabal
@@ -1,5 +1,5 @@
 Name:                gloss
-Version:             1.7.0.1
+Version:             1.7.1.1
 License:             MIT
 License-file:        LICENSE
 Author:              Ben Lippmeier
