diff --git a/GLFW-b.cabal b/GLFW-b.cabal
--- a/GLFW-b.cabal
+++ b/GLFW-b.cabal
@@ -1,5 +1,5 @@
 name:         GLFW-b
-version:      1.4.8.2
+version:      1.4.8.3
 category:     Graphics
 
 author:       Brian Lewis <brian@lorf.org>
@@ -51,7 +51,7 @@
   build-depends:
       base          <  5
     , deepseq       >= 1.1.0.0
-    , bindings-GLFW >= 3.1.2.3
+    , bindings-GLFW >= 3.1.2.3 && < 3.2.1.0
 
 --------------------------------------------------------------------------------
 
@@ -72,7 +72,7 @@
   build-depends:
       base                 <  5
     , HUnit                >= 1.3 && < 1.7
-    , bindings-GLFW        >= 3.1.2.3
+    , bindings-GLFW        >= 3.1.2.3 && < 3.2.1.0
     , deepseq              >= 1.1.0.0
     , test-framework       == 0.8.*
     , test-framework-hunit == 0.3.*
diff --git a/Graphics/UI/GLFW/Types.hs b/Graphics/UI/GLFW/Types.hs
--- a/Graphics/UI/GLFW/Types.hs
+++ b/Graphics/UI/GLFW/Types.hs
@@ -33,7 +33,7 @@
   | Error'VersionUnavailable -- ^ <http://www.glfw.org/docs/3.1/group__errors.html#gad16c5565b4a69f9c2a9ac2c0dbc89462 doc>
   | Error'PlatformError -- ^ <http://www.glfw.org/docs/3.1/group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1 doc>
   | Error'FormatUnavailable -- ^ <http://www.glfw.org/docs/3.1/group__errors.html#ga196e125ef261d94184e2b55c05762f14 doc>
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData Error
 
@@ -167,7 +167,7 @@
 data FocusState =
     FocusState'Focused
   | FocusState'Defocused
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData FocusState
 
@@ -175,7 +175,7 @@
 data IconifyState =
     IconifyState'Iconified
   | IconifyState'NotIconified
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData IconifyState
 
@@ -184,7 +184,7 @@
     ContextRobustness'NoRobustness
   | ContextRobustness'NoResetNotification
   | ContextRobustness'LoseContextOnReset
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData ContextRobustness
 
@@ -193,7 +193,7 @@
     OpenGLProfile'Any
   | OpenGLProfile'Compat
   | OpenGLProfile'Core
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData OpenGLProfile
 
@@ -201,7 +201,7 @@
 data ClientAPI =
     ClientAPI'OpenGL
   | ClientAPI'OpenGLES
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData ClientAPI
 
@@ -331,7 +331,7 @@
   | Key'RightAlt
   | Key'RightSuper
   | Key'Menu
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData Key
 
@@ -340,7 +340,7 @@
     KeyState'Pressed
   | KeyState'Released
   | KeyState'Repeating
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData KeyState
 
@@ -362,7 +362,7 @@
   | Joystick'14
   | Joystick'15
   | Joystick'16
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData Joystick
 
@@ -370,7 +370,7 @@
 data JoystickButtonState =
     JoystickButtonState'Pressed
   | JoystickButtonState'Released
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData JoystickButtonState
 
@@ -384,7 +384,7 @@
   | MouseButton'6
   | MouseButton'7
   | MouseButton'8
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData MouseButton
 
@@ -392,7 +392,7 @@
 data MouseButtonState =
     MouseButtonState'Pressed
   | MouseButtonState'Released
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData MouseButtonState
 
@@ -400,7 +400,7 @@
 data CursorState =
     CursorState'InWindow
   | CursorState'NotInWindow
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData CursorState
 
@@ -410,7 +410,7 @@
     CursorInputMode'Normal
   | CursorInputMode'Hidden
   | CursorInputMode'Disabled
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData CursorInputMode
 
@@ -423,7 +423,7 @@
 data StickyKeysInputMode =
     StickyKeysInputMode'Enabled
   | StickyKeysInputMode'Disabled
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData StickyKeysInputMode
 
@@ -431,7 +431,7 @@
 data StickyMouseButtonsInputMode =
     StickyMouseButtonsInputMode'Enabled
   | StickyMouseButtonsInputMode'Disabled
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData StickyMouseButtonsInputMode
 
@@ -475,7 +475,7 @@
   | StandardCursorShape'Hand
   | StandardCursorShape'HResize
   | StandardCursorShape'VResize
-  deriving (Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
+  deriving (Bounded, Data, Enum, Eq, Ord, Read, Show, Typeable, Generic)
 
 instance NFData StandardCursorShape
 
