diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,13 @@
 
+0.6.2015.8.1
+
+* Most types should have instances for Show, Eq, Ord and Typeable as
+  appropriate.
+
+* Serialize ConfigureWindow requests properly.
+
+* Update for GHC 7.10.
+
 0.5.2014.4.10
 
 2014-04-10 Antoine Latter <aslatter@gmail.com>
diff --git a/Graphics/XHB/Shared.hs b/Graphics/XHB/Shared.hs
--- a/Graphics/XHB/Shared.hs
+++ b/Graphics/XHB/Shared.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving, BangPatterns #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving, BangPatterns, DeriveDataTypeable #-}
 
 module Graphics.XHB.Shared where
 
@@ -44,7 +44,7 @@
 byteOrderToNum Mixed{} = error "Mixed endian platforms not supported."
 
 newtype Xid = MkXid Word32
- deriving (Eq, Ord, Serialize, Deserialize)
+ deriving (Eq, Ord, Typeable, Serialize, Deserialize)
 
 instance Show Xid where
     show (MkXid x) = show x
@@ -88,6 +88,7 @@
 
 
 data ValueParam a = VP a [Word32]
+  deriving (Eq, Ord, Typeable)
 
 toValueParam :: (Bits a, Num a, BitEnum e) => [(e,Word32)] -> ValueParam a
 toValueParam xs = 
@@ -192,6 +193,7 @@
     toEvent = SomeEvent
 
 data SomeEvent = forall a . Event a => SomeEvent a
+    deriving (Typeable)
 
 data UnknownEvent = UnknownEvent BS.ByteString deriving (Typeable)
 instance Event UnknownEvent
diff --git a/patched/Graphics/XHB/Gen/BigRequests/Types.hs b/patched/Graphics/XHB/Gen/BigRequests/Types.hs
--- a/patched/Graphics/XHB/Gen/BigRequests/Types.hs
+++ b/patched/Graphics/XHB/Gen/BigRequests/Types.hs
@@ -21,7 +21,7 @@
 deserializeEvent _ = Nothing
  
 data Enable = MkEnable{}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Enable where
         extensionId _ = "BIG-REQUESTS"
@@ -34,7 +34,7 @@
  
 data EnableReply = MkEnableReply{maximum_request_length_EnableReply
                                  :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize EnableReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/Composite/Types.hs b/patched/Graphics/XHB/Gen/Composite/Types.hs
--- a/patched/Graphics/XHB/Gen/Composite/Types.hs
+++ b/patched/Graphics/XHB/Gen/Composite/Types.hs
@@ -34,7 +34,7 @@
  
 data Redirect = RedirectAutomatic
               | RedirectManual
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Redirect where
         toValue RedirectAutomatic{} = 0
@@ -45,7 +45,7 @@
 data QueryVersion = MkQueryVersion{client_major_version_QueryVersion
                                    :: Word32,
                                    client_minor_version_QueryVersion :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "Composite"
@@ -63,7 +63,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply
                                              :: Word32,
                                              minor_version_QueryVersionReply :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -80,7 +80,7 @@
 data RedirectWindow = MkRedirectWindow{window_RedirectWindow ::
                                        WINDOW,
                                        update_RedirectWindow :: Redirect}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest RedirectWindow where
         extensionId _ = "Composite"
@@ -99,7 +99,7 @@
 data RedirectSubwindows = MkRedirectSubwindows{window_RedirectSubwindows
                                                :: WINDOW,
                                                update_RedirectSubwindows :: Redirect}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest RedirectSubwindows where
         extensionId _ = "Composite"
@@ -119,7 +119,7 @@
 data UnredirectWindow = MkUnredirectWindow{window_UnredirectWindow
                                            :: WINDOW,
                                            update_UnredirectWindow :: Redirect}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest UnredirectWindow where
         extensionId _ = "Composite"
@@ -138,7 +138,7 @@
 data UnredirectSubwindows = MkUnredirectSubwindows{window_UnredirectSubwindows
                                                    :: WINDOW,
                                                    update_UnredirectSubwindows :: Redirect}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest UnredirectSubwindows where
         extensionId _ = "Composite"
@@ -159,7 +159,7 @@
                                                                :: REGION,
                                                                window_CreateRegionFromBorderClip ::
                                                                WINDOW}
-                                deriving (Show, Typeable)
+                                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateRegionFromBorderClip where
         extensionId _ = "Composite"
@@ -177,7 +177,7 @@
 data NameWindowPixmap = MkNameWindowPixmap{window_NameWindowPixmap
                                            :: WINDOW,
                                            pixmap_NameWindowPixmap :: PIXMAP}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest NameWindowPixmap where
         extensionId _ = "Composite"
@@ -194,7 +194,7 @@
  
 data GetOverlayWindow = MkGetOverlayWindow{window_GetOverlayWindow
                                            :: WINDOW}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetOverlayWindow where
         extensionId _ = "Composite"
@@ -208,7 +208,7 @@
  
 data GetOverlayWindowReply = MkGetOverlayWindowReply{overlay_win_GetOverlayWindowReply
                                                      :: WINDOW}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetOverlayWindowReply where
         deserialize
@@ -223,7 +223,7 @@
  
 data ReleaseOverlayWindow = MkReleaseOverlayWindow{window_ReleaseOverlayWindow
                                                    :: WINDOW}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ReleaseOverlayWindow where
         extensionId _ = "Composite"
diff --git a/patched/Graphics/XHB/Gen/DPMS/Types.hs b/patched/Graphics/XHB/Gen/DPMS/Types.hs
--- a/patched/Graphics/XHB/Gen/DPMS/Types.hs
+++ b/patched/Graphics/XHB/Gen/DPMS/Types.hs
@@ -26,7 +26,7 @@
 data GetVersion = MkGetVersion{client_major_version_GetVersion ::
                                Word16,
                                client_minor_version_GetVersion :: Word16}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetVersion where
         extensionId _ = "DPMS"
@@ -44,7 +44,7 @@
 data GetVersionReply = MkGetVersionReply{server_major_version_GetVersionReply
                                          :: Word16,
                                          server_minor_version_GetVersionReply :: Word16}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetVersionReply where
         deserialize
@@ -59,7 +59,7 @@
                  (MkGetVersionReply server_major_version server_minor_version)
  
 data Capable = MkCapable{}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Capable where
         extensionId _ = "DPMS"
@@ -71,7 +71,7 @@
                putSkip (requiredPadding size__)
  
 data CapableReply = MkCapableReply{capable_CapableReply :: Bool}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize CapableReply where
         deserialize
@@ -85,7 +85,7 @@
                return (MkCapableReply capable)
  
 data GetTimeouts = MkGetTimeouts{}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTimeouts where
         extensionId _ = "DPMS"
@@ -100,7 +100,7 @@
                                            :: Word16,
                                            suspend_timeout_GetTimeoutsReply :: Word16,
                                            off_timeout_GetTimeoutsReply :: Word16}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTimeoutsReply where
         deserialize
@@ -120,7 +120,7 @@
                                  Word16,
                                  suspend_timeout_SetTimeouts :: Word16,
                                  off_timeout_SetTimeouts :: Word16}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetTimeouts where
         extensionId _ = "DPMS"
@@ -138,7 +138,7 @@
                putSkip (requiredPadding size__)
  
 data Enable = MkEnable{}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Enable where
         extensionId _ = "DPMS"
@@ -150,7 +150,7 @@
                putSkip (requiredPadding size__)
  
 data Disable = MkDisable{}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Disable where
         extensionId _ = "DPMS"
@@ -165,7 +165,7 @@
               | DPMSModeStandby
               | DPMSModeSuspend
               | DPMSModeOff
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum DPMSMode where
         toValue DPMSModeOn{} = 0
@@ -178,7 +178,7 @@
         fromValue 3 = DPMSModeOff
  
 data ForceLevel = MkForceLevel{power_level_ForceLevel :: DPMSMode}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ForceLevel where
         extensionId _ = "DPMS"
@@ -191,7 +191,7 @@
                putSkip (requiredPadding size__)
  
 data Info = MkInfo{}
-          deriving (Show, Typeable)
+          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Info where
         extensionId _ = "DPMS"
@@ -204,7 +204,7 @@
  
 data InfoReply = MkInfoReply{power_level_InfoReply :: DPMSMode,
                              state_InfoReply :: Bool}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize InfoReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/DRI2/Types.hs b/patched/Graphics/XHB/Gen/DRI2/Types.hs
--- a/patched/Graphics/XHB/Gen/DRI2/Types.hs
+++ b/patched/Graphics/XHB/Gen/DRI2/Types.hs
@@ -39,7 +39,7 @@
                 | AttachmentBufferFakeFrontLeft
                 | AttachmentBufferFakeFrontRight
                 | AttachmentBufferDepthStencil
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Attachment where
         toValue AttachmentBufferFrontLeft{} = 0
@@ -64,7 +64,7 @@
         fromValue 9 = AttachmentBufferDepthStencil
  
 data DriverType = DriverTypeDRI
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum DriverType where
         toValue DriverTypeDRI{} = 0
@@ -73,7 +73,7 @@
 data DRI2Buffer = MkDRI2Buffer{attachment_DRI2Buffer :: Attachment,
                                name_DRI2Buffer :: Word32, pitch_DRI2Buffer :: Word32,
                                cpp_DRI2Buffer :: Word32, flags_DRI2Buffer :: Word32}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DRI2Buffer where
         serialize x
@@ -100,7 +100,7 @@
 data AttachFormat = MkAttachFormat{attachment_AttachFormat ::
                                    Attachment,
                                    format_AttachFormat :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize AttachFormat where
         serialize x
@@ -117,7 +117,7 @@
 data QueryVersion = MkQueryVersion{major_version_QueryVersion ::
                                    Word32,
                                    minor_version_QueryVersion :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "DRI2"
@@ -135,7 +135,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply
                                              :: Word32,
                                              minor_version_QueryVersionReply :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -150,7 +150,7 @@
  
 data Connect = MkConnect{window_Connect :: WINDOW,
                          driver_type_Connect :: DriverType}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Connect where
         extensionId _ = "DRI2"
@@ -169,7 +169,7 @@
                                    device_name_length_ConnectReply :: Word32,
                                    driver_name_ConnectReply :: [CChar],
                                    device_name_ConnectReply :: [CChar]}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ConnectReply where
         deserialize
@@ -189,7 +189,7 @@
  
 data Authenticate = MkAuthenticate{window_Authenticate :: WINDOW,
                                    magic_Authenticate :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Authenticate where
         extensionId _ = "DRI2"
@@ -205,7 +205,7 @@
  
 data AuthenticateReply = MkAuthenticateReply{authenticated_AuthenticateReply
                                              :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize AuthenticateReply where
         deserialize
@@ -219,7 +219,7 @@
  
 data CreateDrawable = MkCreateDrawable{drawable_CreateDrawable ::
                                        DRAWABLE}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateDrawable where
         extensionId _ = "DRI2"
@@ -233,7 +233,7 @@
  
 data DestroyDrawable = MkDestroyDrawable{drawable_DestroyDrawable
                                          :: DRAWABLE}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyDrawable where
         extensionId _ = "DRI2"
@@ -247,7 +247,7 @@
  
 data GetBuffers = MkGetBuffers{drawable_GetBuffers :: DRAWABLE,
                                count_GetBuffers :: Word32, attachments_GetBuffers :: [Word32]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetBuffers where
         extensionId _ = "DRI2"
@@ -268,7 +268,7 @@
                                          height_GetBuffersReply :: Word32,
                                          count_GetBuffersReply :: Word32,
                                          buffers_GetBuffersReply :: [DRI2Buffer]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetBuffersReply where
         deserialize
@@ -287,7 +287,7 @@
 data CopyRegion = MkCopyRegion{drawable_CopyRegion :: DRAWABLE,
                                region_CopyRegion :: Word32, dest_CopyRegion :: Word32,
                                src_CopyRegion :: Word32}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CopyRegion where
         extensionId _ = "DRI2"
@@ -306,7 +306,7 @@
                putSkip (requiredPadding size__)
  
 data CopyRegionReply = MkCopyRegionReply{}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize CopyRegionReply where
         deserialize
@@ -322,7 +322,7 @@
                                                    count_GetBuffersWithFormat :: Word32,
                                                    attachments_GetBuffersWithFormat ::
                                                    [AttachFormat]}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetBuffersWithFormat where
         extensionId _ = "DRI2"
@@ -347,7 +347,7 @@
                                                              Word32,
                                                              buffers_GetBuffersWithFormatReply ::
                                                              [DRI2Buffer]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetBuffersWithFormatReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/Damage/Types.hs b/patched/Graphics/XHB/Gen/Damage/Types.hs
--- a/patched/Graphics/XHB/Gen/Damage/Types.hs
+++ b/patched/Graphics/XHB/Gen/Damage/Types.hs
@@ -38,7 +38,7 @@
                  | ReportLevelDeltaRectangles
                  | ReportLevelBoundingBox
                  | ReportLevelNonEmpty
-                 deriving Show
+                 deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ReportLevel where
         toValue ReportLevelRawRectangles{} = 0
@@ -53,7 +53,7 @@
 data QueryVersion = MkQueryVersion{client_major_version_QueryVersion
                                    :: Word32,
                                    client_minor_version_QueryVersion :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "DAMAGE"
@@ -71,7 +71,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply
                                              :: Word32,
                                              minor_version_QueryVersionReply :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -87,7 +87,7 @@
  
 data Create = MkCreate{damage_Create :: DAMAGE,
                        drawable_Create :: DRAWABLE, level_Create :: ReportLevel}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Create where
         extensionId _ = "DAMAGE"
@@ -106,7 +106,7 @@
                putSkip (requiredPadding size__)
  
 data Destroy = MkDestroy{damage_Destroy :: DAMAGE}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Destroy where
         extensionId _ = "DAMAGE"
@@ -120,7 +120,7 @@
  
 data Subtract = MkSubtract{damage_Subtract :: DAMAGE,
                            repair_Subtract :: REGION, parts_Subtract :: REGION}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Subtract where
         extensionId _ = "DAMAGE"
@@ -137,7 +137,7 @@
                putSkip (requiredPadding size__)
  
 data Add = MkAdd{drawable_Add :: DRAWABLE, region_Add :: REGION}
-         deriving (Show, Typeable)
+         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Add where
         extensionId _ = "DAMAGE"
@@ -154,7 +154,7 @@
                                  drawable_NotifyEvent :: DRAWABLE, damage_NotifyEvent :: DAMAGE,
                                  timestamp_NotifyEvent :: TIMESTAMP, area_NotifyEvent :: RECTANGLE,
                                  geometry_NotifyEvent :: RECTANGLE}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event NotifyEvent
  
diff --git a/patched/Graphics/XHB/Gen/Extension.hs b/patched/Graphics/XHB/Gen/Extension.hs
--- a/patched/Graphics/XHB/Gen/Extension.hs
+++ b/patched/Graphics/XHB/Gen/Extension.hs
@@ -25,8 +25,8 @@
 import qualified Graphics.XHB.Gen.XPrint.Types
 import qualified Graphics.XHB.Gen.SELinux.Types
 import qualified Graphics.XHB.Gen.Test.Types
-import qualified Graphics.XHB.Gen.Xv.Types
 import qualified Graphics.XHB.Gen.XvMC.Types
+import qualified Graphics.XHB.Gen.Xv.Types
  
 errorDispatch :: ExtensionId -> Word8 -> Maybe (Get SomeError)
 errorDispatch "BIG-REQUESTS"
@@ -71,9 +71,9 @@
   = Graphics.XHB.Gen.SELinux.Types.deserializeError
 errorDispatch "XTEST"
   = Graphics.XHB.Gen.Test.Types.deserializeError
-errorDispatch "XVideo" = Graphics.XHB.Gen.Xv.Types.deserializeError
 errorDispatch "XVideo-MotionCompensation"
   = Graphics.XHB.Gen.XvMC.Types.deserializeError
+errorDispatch "XVideo" = Graphics.XHB.Gen.Xv.Types.deserializeError
 errorDispatch _ = const (Nothing)
  
 eventDispatch :: ExtensionId -> Word8 -> Maybe (Get SomeEvent)
@@ -119,7 +119,7 @@
   = Graphics.XHB.Gen.SELinux.Types.deserializeEvent
 eventDispatch "XTEST"
   = Graphics.XHB.Gen.Test.Types.deserializeEvent
-eventDispatch "XVideo" = Graphics.XHB.Gen.Xv.Types.deserializeEvent
 eventDispatch "XVideo-MotionCompensation"
   = Graphics.XHB.Gen.XvMC.Types.deserializeEvent
+eventDispatch "XVideo" = Graphics.XHB.Gen.Xv.Types.deserializeEvent
 eventDispatch _ = const (Nothing)
diff --git a/patched/Graphics/XHB/Gen/Glx/Types.hs b/patched/Graphics/XHB/Gen/Glx/Types.hs
--- a/patched/Graphics/XHB/Gen/Glx/Types.hs
+++ b/patched/Graphics/XHB/Gen/Glx/Types.hs
@@ -154,7 +154,7 @@
                                    Word32,
                                    minor_opcode_GenericError :: Word16,
                                    major_opcode_GenericError :: Word8}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error GenericError
  
@@ -171,7 +171,7 @@
                                          :: Word32,
                                          minor_opcode_BadContextError :: Word16,
                                          major_opcode_BadContextError :: Word8}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadContextError
  
@@ -188,7 +188,7 @@
                                                    :: Word32,
                                                    minor_opcode_BadContextStateError :: Word16,
                                                    major_opcode_BadContextStateError :: Word8}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadContextStateError
  
@@ -205,7 +205,7 @@
                                            :: Word32,
                                            minor_opcode_BadDrawableError :: Word16,
                                            major_opcode_BadDrawableError :: Word8}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadDrawableError
  
@@ -222,7 +222,7 @@
                                        Word32,
                                        minor_opcode_BadPixmapError :: Word16,
                                        major_opcode_BadPixmapError :: Word8}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadPixmapError
  
@@ -239,7 +239,7 @@
                                                :: Word32,
                                                minor_opcode_BadContextTagError :: Word16,
                                                major_opcode_BadContextTagError :: Word8}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadContextTagError
  
@@ -256,7 +256,7 @@
                                                      :: Word32,
                                                      minor_opcode_BadCurrentWindowError :: Word16,
                                                      major_opcode_BadCurrentWindowError :: Word8}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadCurrentWindowError
  
@@ -274,7 +274,7 @@
                                                      :: Word32,
                                                      minor_opcode_BadRenderRequestError :: Word16,
                                                      major_opcode_BadRenderRequestError :: Word8}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadRenderRequestError
  
@@ -292,7 +292,7 @@
                                                    :: Word32,
                                                    minor_opcode_BadLargeRequestError :: Word16,
                                                    major_opcode_BadLargeRequestError :: Word8}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadLargeRequestError
  
@@ -311,7 +311,7 @@
                                                                        :: Word16,
                                                                        major_opcode_UnsupportedPrivateRequestError
                                                                        :: Word8}
-                                    deriving (Show, Typeable)
+                                    deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error UnsupportedPrivateRequestError
  
@@ -330,7 +330,7 @@
                                            :: Word32,
                                            minor_opcode_BadFBConfigError :: Word16,
                                            major_opcode_BadFBConfigError :: Word8}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadFBConfigError
  
@@ -347,7 +347,7 @@
                                          :: Word32,
                                          minor_opcode_BadPbufferError :: Word16,
                                          major_opcode_BadPbufferError :: Word8}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadPbufferError
  
@@ -366,7 +366,7 @@
                                                          Word16,
                                                          major_opcode_BadCurrentDrawableError ::
                                                          Word8}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadCurrentDrawableError
  
@@ -384,7 +384,7 @@
                                        Word32,
                                        minor_opcode_BadWindowError :: Word16,
                                        major_opcode_BadWindowError :: Word8}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadWindowError
  
@@ -409,7 +409,7 @@
                                                  width_PbufferClobberEvent :: Word16,
                                                  height_PbufferClobberEvent :: Word16,
                                                  count_PbufferClobberEvent :: Word16}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event PbufferClobberEvent
  
@@ -440,7 +440,7 @@
  
 data PBCET = PBCETDamaged
            | PBCETSaved
-           deriving Show
+           deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum PBCET where
         toValue PBCETDamaged{} = 32791
@@ -450,7 +450,7 @@
  
 data PBCDT = PBCDTWindow
            | PBCDTPbuffer
-           deriving Show
+           deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum PBCDT where
         toValue PBCDTWindow{} = 32793
@@ -460,7 +460,7 @@
  
 data Render = MkRender{context_tag_Render :: CONTEXT_TAG,
                        data_Render :: [Word8]}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Render where
         extensionId _ = "GLX"
@@ -479,7 +479,7 @@
                                  request_num_RenderLarge :: Word16,
                                  request_total_RenderLarge :: Word16,
                                  data_len_RenderLarge :: Word32, data_RenderLarge :: [Word8]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest RenderLarge where
         extensionId _ = "GLX"
@@ -506,7 +506,7 @@
                                      screen_CreateContext :: Word32,
                                      share_list_CreateContext :: Graphics.XHB.Gen.Glx.Types.CONTEXT,
                                      is_direct_CreateContext :: Bool}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateContext where
         extensionId _ = "GLX"
@@ -531,7 +531,7 @@
  
 data DestroyContext = MkDestroyContext{context_DestroyContext ::
                                        Graphics.XHB.Gen.Glx.Types.CONTEXT}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyContext where
         extensionId _ = "GLX"
@@ -547,7 +547,7 @@
                                  Graphics.XHB.Gen.Glx.Types.DRAWABLE,
                                  context_MakeCurrent :: Graphics.XHB.Gen.Glx.Types.CONTEXT,
                                  old_context_tag_MakeCurrent :: CONTEXT_TAG}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest MakeCurrent where
         extensionId _ = "GLX"
@@ -565,7 +565,7 @@
  
 data MakeCurrentReply = MkMakeCurrentReply{context_tag_MakeCurrentReply
                                            :: CONTEXT_TAG}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize MakeCurrentReply where
         deserialize
@@ -580,7 +580,7 @@
  
 data IsDirect = MkIsDirect{context_IsDirect ::
                            Graphics.XHB.Gen.Glx.Types.CONTEXT}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest IsDirect where
         extensionId _ = "GLX"
@@ -594,7 +594,7 @@
  
 data IsDirectReply = MkIsDirectReply{is_direct_IsDirectReply ::
                                      Bool}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize IsDirectReply where
         deserialize
@@ -610,7 +610,7 @@
 data QueryVersion = MkQueryVersion{major_version_QueryVersion ::
                                    Word32,
                                    minor_version_QueryVersion :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "GLX"
@@ -628,7 +628,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply
                                              :: Word32,
                                              minor_version_QueryVersionReply :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -643,7 +643,7 @@
                return (MkQueryVersionReply major_version minor_version)
  
 data WaitGL = MkWaitGL{context_tag_WaitGL :: CONTEXT_TAG}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest WaitGL where
         extensionId _ = "GLX"
@@ -656,7 +656,7 @@
                putSkip (requiredPadding size__)
  
 data WaitX = MkWaitX{context_tag_WaitX :: CONTEXT_TAG}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest WaitX where
         extensionId _ = "GLX"
@@ -673,7 +673,7 @@
                                  dest_CopyContext :: Graphics.XHB.Gen.Glx.Types.CONTEXT,
                                  mask_CopyContext :: Word32,
                                  src_context_tag_CopyContext :: CONTEXT_TAG}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CopyContext where
         extensionId _ = "GLX"
@@ -711,7 +711,7 @@
         | GCGL_LIST_BIT
         | GCGL_TEXTURE_BIT
         | GCGL_SCISSOR_BIT
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum GC where
         toBit GCGL_CURRENT_BIT{} = 0
@@ -758,7 +758,7 @@
 data SwapBuffers = MkSwapBuffers{context_tag_SwapBuffers ::
                                  CONTEXT_TAG,
                                  drawable_SwapBuffers :: Graphics.XHB.Gen.Glx.Types.DRAWABLE}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SwapBuffers where
         extensionId _ = "GLX"
@@ -776,7 +776,7 @@
 data UseXFont = MkUseXFont{context_tag_UseXFont :: CONTEXT_TAG,
                            font_UseXFont :: FONT, first_UseXFont :: Word32,
                            count_UseXFont :: Word32, list_base_UseXFont :: Word32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest UseXFont where
         extensionId _ = "GLX"
@@ -803,7 +803,7 @@
                                          Graphics.XHB.Gen.Xproto.Types.PIXMAP,
                                          glx_pixmap_CreateGLXPixmap ::
                                          Graphics.XHB.Gen.Glx.Types.PIXMAP}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateGLXPixmap where
         extensionId _ = "GLX"
@@ -824,7 +824,7 @@
  
 data GetVisualConfigs = MkGetVisualConfigs{screen_GetVisualConfigs
                                            :: Word32}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetVisualConfigs where
         extensionId _ = "GLX"
@@ -841,7 +841,7 @@
                                                      num_properties_GetVisualConfigsReply :: Word32,
                                                      property_list_GetVisualConfigsReply ::
                                                      [Word32]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetVisualConfigsReply where
         deserialize
@@ -859,7 +859,7 @@
  
 data DestroyGLXPixmap = MkDestroyGLXPixmap{glx_pixmap_DestroyGLXPixmap
                                            :: Graphics.XHB.Gen.Glx.Types.PIXMAP}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyGLXPixmap where
         extensionId _ = "GLX"
@@ -875,7 +875,7 @@
                                      Word32,
                                      context_tag_VendorPrivate :: CONTEXT_TAG,
                                      data_VendorPrivate :: [Word8]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest VendorPrivate where
         extensionId _ = "GLX"
@@ -897,7 +897,7 @@
                                                        context_tag_VendorPrivateWithReply ::
                                                        CONTEXT_TAG,
                                                        data_VendorPrivateWithReply :: [Word8]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest VendorPrivateWithReply where
         extensionId _ = "GLX"
@@ -920,7 +920,7 @@
                                                                  :: [Word8],
                                                                  data2_VendorPrivateWithReplyReply
                                                                  :: [Word8]}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize VendorPrivateWithReplyReply where
         deserialize
@@ -936,7 +936,7 @@
  
 data QueryExtensionsString = MkQueryExtensionsString{screen_QueryExtensionsString
                                                      :: Word32}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryExtensionsString where
         extensionId _ = "GLX"
@@ -950,7 +950,7 @@
  
 data QueryExtensionsStringReply = MkQueryExtensionsStringReply{n_QueryExtensionsStringReply
                                                                :: Word32}
-                                deriving (Show, Typeable)
+                                deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryExtensionsStringReply where
         deserialize
@@ -967,7 +967,7 @@
 data QueryServerString = MkQueryServerString{screen_QueryServerString
                                              :: Word32,
                                              name_QueryServerString :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryServerString where
         extensionId _ = "GLX"
@@ -985,7 +985,7 @@
 data QueryServerStringReply = MkQueryServerStringReply{str_len_QueryServerStringReply
                                                        :: Word32,
                                                        string_QueryServerStringReply :: [CChar]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryServerStringReply where
         deserialize
@@ -1003,7 +1003,7 @@
 data ClientInfo = MkClientInfo{major_version_ClientInfo :: Word32,
                                minor_version_ClientInfo :: Word32, str_len_ClientInfo :: Word32,
                                string_ClientInfo :: [CChar]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ClientInfo where
         extensionId _ = "GLX"
@@ -1023,7 +1023,7 @@
                putSkip (requiredPadding size__)
  
 data GetFBConfigs = MkGetFBConfigs{screen_GetFBConfigs :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetFBConfigs where
         extensionId _ = "GLX"
@@ -1039,7 +1039,7 @@
                                              :: Word32,
                                              num_properties_GetFBConfigsReply :: Word32,
                                              property_list_GetFBConfigsReply :: [Word32]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetFBConfigsReply where
         deserialize
@@ -1061,7 +1061,7 @@
                                    glx_pixmap_CreatePixmap :: Graphics.XHB.Gen.Glx.Types.PIXMAP,
                                    num_attribs_CreatePixmap :: Word32,
                                    attribs_CreatePixmap :: [Word32]}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreatePixmap where
         extensionId _ = "GLX"
@@ -1085,7 +1085,7 @@
  
 data DestroyPixmap = MkDestroyPixmap{glx_pixmap_DestroyPixmap ::
                                      Graphics.XHB.Gen.Glx.Types.PIXMAP}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyPixmap where
         extensionId _ = "GLX"
@@ -1106,7 +1106,7 @@
                                            is_direct_CreateNewContext :: Bool,
                                            reserved1_CreateNewContext :: Word8,
                                            reserved2_CreateNewContext :: Word16}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateNewContext where
         extensionId _ = "GLX"
@@ -1135,7 +1135,7 @@
  
 data QueryContext = MkQueryContext{context_QueryContext ::
                                    Graphics.XHB.Gen.Glx.Types.CONTEXT}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryContext where
         extensionId _ = "GLX"
@@ -1150,7 +1150,7 @@
 data QueryContextReply = MkQueryContextReply{num_attribs_QueryContextReply
                                              :: Word32,
                                              attribs_QueryContextReply :: [Word32]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryContextReply where
         deserialize
@@ -1173,7 +1173,7 @@
                                                Graphics.XHB.Gen.Glx.Types.DRAWABLE,
                                                context_MakeContextCurrent ::
                                                Graphics.XHB.Gen.Glx.Types.CONTEXT}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest MakeContextCurrent where
         extensionId _ = "GLX"
@@ -1194,7 +1194,7 @@
  
 data MakeContextCurrentReply = MkMakeContextCurrentReply{context_tag_MakeContextCurrentReply
                                                          :: CONTEXT_TAG}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize MakeContextCurrentReply where
         deserialize
@@ -1213,7 +1213,7 @@
                                      pbuffer_CreatePbuffer :: PBUFFER,
                                      num_attribs_CreatePbuffer :: Word32,
                                      attribs_CreatePbuffer :: [Word32]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreatePbuffer where
         extensionId _ = "GLX"
@@ -1236,7 +1236,7 @@
  
 data DestroyPbuffer = MkDestroyPbuffer{pbuffer_DestroyPbuffer ::
                                        PBUFFER}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyPbuffer where
         extensionId _ = "GLX"
@@ -1250,7 +1250,7 @@
  
 data GetDrawableAttributes = MkGetDrawableAttributes{drawable_GetDrawableAttributes
                                                      :: Graphics.XHB.Gen.Glx.Types.DRAWABLE}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDrawableAttributes where
         extensionId _ = "GLX"
@@ -1266,7 +1266,7 @@
                                                                :: Word32,
                                                                attribs_GetDrawableAttributesReply ::
                                                                [Word32]}
-                                deriving (Show, Typeable)
+                                deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDrawableAttributesReply where
         deserialize
@@ -1287,7 +1287,7 @@
                                                            Word32,
                                                            attribs_ChangeDrawableAttributes ::
                                                            [Word32]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangeDrawableAttributes where
         extensionId _ = "GLX"
@@ -1310,7 +1310,7 @@
                                    glx_window_CreateWindow :: Graphics.XHB.Gen.Glx.Types.WINDOW,
                                    num_attribs_CreateWindow :: Word32,
                                    attribs_CreateWindow :: [Word32]}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateWindow where
         extensionId _ = "GLX"
@@ -1334,7 +1334,7 @@
  
 data DeleteWindow = MkDeleteWindow{glxwindow_DeleteWindow ::
                                    Graphics.XHB.Gen.Glx.Types.WINDOW}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DeleteWindow where
         extensionId _ = "GLX"
@@ -1348,7 +1348,7 @@
  
 data NewList = MkNewList{context_tag_NewList :: CONTEXT_TAG,
                          list_NewList :: Word32, mode_NewList :: Word32}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest NewList where
         extensionId _ = "GLX"
@@ -1365,7 +1365,7 @@
                putSkip (requiredPadding size__)
  
 data EndList = MkEndList{context_tag_EndList :: CONTEXT_TAG}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest EndList where
         extensionId _ = "GLX"
@@ -1380,7 +1380,7 @@
 data DeleteLists = MkDeleteLists{context_tag_DeleteLists ::
                                  CONTEXT_TAG,
                                  list_DeleteLists :: Word32, range_DeleteLists :: Int32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DeleteLists where
         extensionId _ = "GLX"
@@ -1398,7 +1398,7 @@
  
 data GenLists = MkGenLists{context_tag_GenLists :: CONTEXT_TAG,
                            range_GenLists :: Int32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GenLists where
         extensionId _ = "GLX"
@@ -1414,7 +1414,7 @@
  
 data GenListsReply = MkGenListsReply{ret_val_GenListsReply ::
                                      Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GenListsReply where
         deserialize
@@ -1429,7 +1429,7 @@
 data FeedbackBuffer = MkFeedbackBuffer{context_tag_FeedbackBuffer
                                        :: CONTEXT_TAG,
                                        size_FeedbackBuffer :: Int32, type_FeedbackBuffer :: Int32}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest FeedbackBuffer where
         extensionId _ = "GLX"
@@ -1449,7 +1449,7 @@
 data SelectBuffer = MkSelectBuffer{context_tag_SelectBuffer ::
                                    CONTEXT_TAG,
                                    size_SelectBuffer :: Int32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SelectBuffer where
         extensionId _ = "GLX"
@@ -1467,7 +1467,7 @@
 data RenderMode = MkRenderMode{context_tag_RenderMode ::
                                CONTEXT_TAG,
                                mode_RenderMode :: Word32}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest RenderMode where
         extensionId _ = "GLX"
@@ -1486,7 +1486,7 @@
                                          n_RenderModeReply :: Word32,
                                          new_mode_RenderModeReply :: Word32,
                                          data_RenderModeReply :: [Word32]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize RenderModeReply where
         deserialize
@@ -1505,7 +1505,7 @@
 data RM = RMGL_RENDER
         | RMGL_FEEDBACK
         | RMGL_SELECT
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum RM where
         toValue RMGL_RENDER{} = 7168
@@ -1516,7 +1516,7 @@
         fromValue 7170 = RMGL_SELECT
  
 data Finish = MkFinish{context_tag_Finish :: CONTEXT_TAG}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Finish where
         extensionId _ = "GLX"
@@ -1529,7 +1529,7 @@
                putSkip (requiredPadding size__)
  
 data FinishReply = MkFinishReply{}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize FinishReply where
         deserialize
@@ -1543,7 +1543,7 @@
 data PixelStoref = MkPixelStoref{context_tag_PixelStoref ::
                                  CONTEXT_TAG,
                                  pname_PixelStoref :: Word32, datum_PixelStoref :: FLOAT32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PixelStoref where
         extensionId _ = "GLX"
@@ -1562,7 +1562,7 @@
 data PixelStorei = MkPixelStorei{context_tag_PixelStorei ::
                                  CONTEXT_TAG,
                                  pname_PixelStorei :: Word32, datum_PixelStorei :: Int32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PixelStorei where
         extensionId _ = "GLX"
@@ -1584,7 +1584,7 @@
                                width_ReadPixels :: Int32, height_ReadPixels :: Int32,
                                format_ReadPixels :: Word32, type_ReadPixels :: Word32,
                                swap_bytes_ReadPixels :: Bool, lsb_first_ReadPixels :: Bool}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ReadPixels where
         extensionId _ = "GLX"
@@ -1614,7 +1614,7 @@
  
 data ReadPixelsReply = MkReadPixelsReply{data_ReadPixelsReply ::
                                          [Word8]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ReadPixelsReply where
         deserialize
@@ -1630,7 +1630,7 @@
 data GetBooleanv = MkGetBooleanv{context_tag_GetBooleanv ::
                                  CONTEXT_TAG,
                                  pname_GetBooleanv :: Int32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetBooleanv where
         extensionId _ = "GLX"
@@ -1648,7 +1648,7 @@
                                            Word32,
                                            datum_GetBooleanvReply :: Bool,
                                            data_GetBooleanvReply :: [Bool]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetBooleanvReply where
         deserialize
@@ -1667,7 +1667,7 @@
 data GetClipPlane = MkGetClipPlane{context_tag_GetClipPlane ::
                                    CONTEXT_TAG,
                                    plane_GetClipPlane :: Int32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetClipPlane where
         extensionId _ = "GLX"
@@ -1684,7 +1684,7 @@
  
 data GetClipPlaneReply = MkGetClipPlaneReply{data_GetClipPlaneReply
                                              :: [FLOAT64]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetClipPlaneReply where
         deserialize
@@ -1701,7 +1701,7 @@
 data GetDoublev = MkGetDoublev{context_tag_GetDoublev ::
                                CONTEXT_TAG,
                                pname_GetDoublev :: Word32}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDoublev where
         extensionId _ = "GLX"
@@ -1719,7 +1719,7 @@
                                          Word32,
                                          datum_GetDoublevReply :: FLOAT64,
                                          data_GetDoublevReply :: [FLOAT64]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDoublevReply where
         deserialize
@@ -1736,7 +1736,7 @@
                return (MkGetDoublevReply n datum data_)
  
 data GetError = MkGetError{context_tag_GetError :: CONTEXT_TAG}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetError where
         extensionId _ = "GLX"
@@ -1749,7 +1749,7 @@
                putSkip (requiredPadding size__)
  
 data GetErrorReply = MkGetErrorReply{error_GetErrorReply :: Int32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetErrorReply where
         deserialize
@@ -1763,7 +1763,7 @@
  
 data GetFloatv = MkGetFloatv{context_tag_GetFloatv :: CONTEXT_TAG,
                              pname_GetFloatv :: Word32}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetFloatv where
         extensionId _ = "GLX"
@@ -1780,7 +1780,7 @@
 data GetFloatvReply = MkGetFloatvReply{n_GetFloatvReply :: Word32,
                                        datum_GetFloatvReply :: FLOAT32,
                                        data_GetFloatvReply :: [FLOAT32]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetFloatvReply where
         deserialize
@@ -1799,7 +1799,7 @@
 data GetIntegerv = MkGetIntegerv{context_tag_GetIntegerv ::
                                  CONTEXT_TAG,
                                  pname_GetIntegerv :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetIntegerv where
         extensionId _ = "GLX"
@@ -1817,7 +1817,7 @@
                                            Word32,
                                            datum_GetIntegervReply :: Int32,
                                            data_GetIntegervReply :: [Int32]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetIntegervReply where
         deserialize
@@ -1836,7 +1836,7 @@
 data GetLightfv = MkGetLightfv{context_tag_GetLightfv ::
                                CONTEXT_TAG,
                                light_GetLightfv :: Word32, pname_GetLightfv :: Word32}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetLightfv where
         extensionId _ = "GLX"
@@ -1856,7 +1856,7 @@
                                          Word32,
                                          datum_GetLightfvReply :: FLOAT32,
                                          data_GetLightfvReply :: [FLOAT32]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetLightfvReply where
         deserialize
@@ -1875,7 +1875,7 @@
 data GetLightiv = MkGetLightiv{context_tag_GetLightiv ::
                                CONTEXT_TAG,
                                light_GetLightiv :: Word32, pname_GetLightiv :: Word32}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetLightiv where
         extensionId _ = "GLX"
@@ -1895,7 +1895,7 @@
                                          Word32,
                                          datum_GetLightivReply :: Int32,
                                          data_GetLightivReply :: [Int32]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetLightivReply where
         deserialize
@@ -1913,7 +1913,7 @@
  
 data GetMapdv = MkGetMapdv{context_tag_GetMapdv :: CONTEXT_TAG,
                            target_GetMapdv :: Word32, query_GetMapdv :: Word32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetMapdv where
         extensionId _ = "GLX"
@@ -1932,7 +1932,7 @@
 data GetMapdvReply = MkGetMapdvReply{n_GetMapdvReply :: Word32,
                                      datum_GetMapdvReply :: FLOAT64,
                                      data_GetMapdvReply :: [FLOAT64]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetMapdvReply where
         deserialize
@@ -1950,7 +1950,7 @@
  
 data GetMapfv = MkGetMapfv{context_tag_GetMapfv :: CONTEXT_TAG,
                            target_GetMapfv :: Word32, query_GetMapfv :: Word32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetMapfv where
         extensionId _ = "GLX"
@@ -1969,7 +1969,7 @@
 data GetMapfvReply = MkGetMapfvReply{n_GetMapfvReply :: Word32,
                                      datum_GetMapfvReply :: FLOAT32,
                                      data_GetMapfvReply :: [FLOAT32]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetMapfvReply where
         deserialize
@@ -1987,7 +1987,7 @@
  
 data GetMapiv = MkGetMapiv{context_tag_GetMapiv :: CONTEXT_TAG,
                            target_GetMapiv :: Word32, query_GetMapiv :: Word32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetMapiv where
         extensionId _ = "GLX"
@@ -2005,7 +2005,7 @@
  
 data GetMapivReply = MkGetMapivReply{n_GetMapivReply :: Word32,
                                      datum_GetMapivReply :: Int32, data_GetMapivReply :: [Int32]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetMapivReply where
         deserialize
@@ -2024,7 +2024,7 @@
 data GetMaterialfv = MkGetMaterialfv{context_tag_GetMaterialfv ::
                                      CONTEXT_TAG,
                                      face_GetMaterialfv :: Word32, pname_GetMaterialfv :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetMaterialfv where
         extensionId _ = "GLX"
@@ -2045,7 +2045,7 @@
                                                :: Word32,
                                                datum_GetMaterialfvReply :: FLOAT32,
                                                data_GetMaterialfvReply :: [FLOAT32]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetMaterialfvReply where
         deserialize
@@ -2064,7 +2064,7 @@
 data GetMaterialiv = MkGetMaterialiv{context_tag_GetMaterialiv ::
                                      CONTEXT_TAG,
                                      face_GetMaterialiv :: Word32, pname_GetMaterialiv :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetMaterialiv where
         extensionId _ = "GLX"
@@ -2085,7 +2085,7 @@
                                                :: Word32,
                                                datum_GetMaterialivReply :: Int32,
                                                data_GetMaterialivReply :: [Int32]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetMaterialivReply where
         deserialize
@@ -2104,7 +2104,7 @@
 data GetPixelMapfv = MkGetPixelMapfv{context_tag_GetPixelMapfv ::
                                      CONTEXT_TAG,
                                      map_GetPixelMapfv :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPixelMapfv where
         extensionId _ = "GLX"
@@ -2123,7 +2123,7 @@
                                                :: Word32,
                                                datum_GetPixelMapfvReply :: FLOAT32,
                                                data_GetPixelMapfvReply :: [FLOAT32]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPixelMapfvReply where
         deserialize
@@ -2142,7 +2142,7 @@
 data GetPixelMapuiv = MkGetPixelMapuiv{context_tag_GetPixelMapuiv
                                        :: CONTEXT_TAG,
                                        map_GetPixelMapuiv :: Word32}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPixelMapuiv where
         extensionId _ = "GLX"
@@ -2161,7 +2161,7 @@
                                                  :: Word32,
                                                  datum_GetPixelMapuivReply :: Word32,
                                                  data_GetPixelMapuivReply :: [Word32]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPixelMapuivReply where
         deserialize
@@ -2180,7 +2180,7 @@
 data GetPixelMapusv = MkGetPixelMapusv{context_tag_GetPixelMapusv
                                        :: CONTEXT_TAG,
                                        map_GetPixelMapusv :: Word32}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPixelMapusv where
         extensionId _ = "GLX"
@@ -2199,7 +2199,7 @@
                                                  :: Word32,
                                                  datum_GetPixelMapusvReply :: Word16,
                                                  data_GetPixelMapusvReply :: [Word16]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPixelMapusvReply where
         deserialize
@@ -2218,7 +2218,7 @@
 data GetPolygonStipple = MkGetPolygonStipple{context_tag_GetPolygonStipple
                                              :: CONTEXT_TAG,
                                              lsb_first_GetPolygonStipple :: Bool}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPolygonStipple where
         extensionId _ = "GLX"
@@ -2235,7 +2235,7 @@
  
 data GetPolygonStippleReply = MkGetPolygonStippleReply{data_GetPolygonStippleReply
                                                        :: [Word8]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPolygonStippleReply where
         deserialize
@@ -2250,7 +2250,7 @@
  
 data GetString = MkGetString{context_tag_GetString :: CONTEXT_TAG,
                              name_GetString :: Word32}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetString where
         extensionId _ = "GLX"
@@ -2266,7 +2266,7 @@
  
 data GetStringReply = MkGetStringReply{n_GetStringReply :: Word32,
                                        string_GetStringReply :: [CChar]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetStringReply where
         deserialize
@@ -2284,7 +2284,7 @@
 data GetTexEnvfv = MkGetTexEnvfv{context_tag_GetTexEnvfv ::
                                  CONTEXT_TAG,
                                  target_GetTexEnvfv :: Word32, pname_GetTexEnvfv :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTexEnvfv where
         extensionId _ = "GLX"
@@ -2305,7 +2305,7 @@
                                            Word32,
                                            datum_GetTexEnvfvReply :: FLOAT32,
                                            data_GetTexEnvfvReply :: [FLOAT32]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTexEnvfvReply where
         deserialize
@@ -2324,7 +2324,7 @@
 data GetTexEnviv = MkGetTexEnviv{context_tag_GetTexEnviv ::
                                  CONTEXT_TAG,
                                  target_GetTexEnviv :: Word32, pname_GetTexEnviv :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTexEnviv where
         extensionId _ = "GLX"
@@ -2345,7 +2345,7 @@
                                            Word32,
                                            datum_GetTexEnvivReply :: Int32,
                                            data_GetTexEnvivReply :: [Int32]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTexEnvivReply where
         deserialize
@@ -2364,7 +2364,7 @@
 data GetTexGendv = MkGetTexGendv{context_tag_GetTexGendv ::
                                  CONTEXT_TAG,
                                  coord_GetTexGendv :: Word32, pname_GetTexGendv :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTexGendv where
         extensionId _ = "GLX"
@@ -2384,7 +2384,7 @@
                                            Word32,
                                            datum_GetTexGendvReply :: FLOAT64,
                                            data_GetTexGendvReply :: [FLOAT64]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTexGendvReply where
         deserialize
@@ -2403,7 +2403,7 @@
 data GetTexGenfv = MkGetTexGenfv{context_tag_GetTexGenfv ::
                                  CONTEXT_TAG,
                                  coord_GetTexGenfv :: Word32, pname_GetTexGenfv :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTexGenfv where
         extensionId _ = "GLX"
@@ -2423,7 +2423,7 @@
                                            Word32,
                                            datum_GetTexGenfvReply :: FLOAT32,
                                            data_GetTexGenfvReply :: [FLOAT32]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTexGenfvReply where
         deserialize
@@ -2442,7 +2442,7 @@
 data GetTexGeniv = MkGetTexGeniv{context_tag_GetTexGeniv ::
                                  CONTEXT_TAG,
                                  coord_GetTexGeniv :: Word32, pname_GetTexGeniv :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTexGeniv where
         extensionId _ = "GLX"
@@ -2462,7 +2462,7 @@
                                            Word32,
                                            datum_GetTexGenivReply :: Int32,
                                            data_GetTexGenivReply :: [Int32]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTexGenivReply where
         deserialize
@@ -2483,7 +2483,7 @@
                                  target_GetTexImage :: Word32, level_GetTexImage :: Int32,
                                  format_GetTexImage :: Word32, type_GetTexImage :: Word32,
                                  swap_bytes_GetTexImage :: Bool}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTexImage where
         extensionId _ = "GLX"
@@ -2511,7 +2511,7 @@
                                            height_GetTexImageReply :: Int32,
                                            depth_GetTexImageReply :: Int32,
                                            data_GetTexImageReply :: [Word8]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTexImageReply where
         deserialize
@@ -2532,7 +2532,7 @@
                                              :: CONTEXT_TAG,
                                              target_GetTexParameterfv :: Word32,
                                              pname_GetTexParameterfv :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTexParameterfv where
         extensionId _ = "GLX"
@@ -2553,7 +2553,7 @@
                                                        :: Word32,
                                                        datum_GetTexParameterfvReply :: FLOAT32,
                                                        data_GetTexParameterfvReply :: [FLOAT32]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTexParameterfvReply where
         deserialize
@@ -2573,7 +2573,7 @@
                                              :: CONTEXT_TAG,
                                              target_GetTexParameteriv :: Word32,
                                              pname_GetTexParameteriv :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTexParameteriv where
         extensionId _ = "GLX"
@@ -2594,7 +2594,7 @@
                                                        :: Word32,
                                                        datum_GetTexParameterivReply :: Int32,
                                                        data_GetTexParameterivReply :: [Int32]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTexParameterivReply where
         deserialize
@@ -2615,7 +2615,7 @@
                                                        target_GetTexLevelParameterfv :: Word32,
                                                        level_GetTexLevelParameterfv :: Int32,
                                                        pname_GetTexLevelParameterfv :: Word32}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTexLevelParameterfv where
         extensionId _ = "GLX"
@@ -2640,7 +2640,7 @@
                                                                  :: FLOAT32,
                                                                  data_GetTexLevelParameterfvReply ::
                                                                  [FLOAT32]}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTexLevelParameterfvReply where
         deserialize
@@ -2661,7 +2661,7 @@
                                                        target_GetTexLevelParameteriv :: Word32,
                                                        level_GetTexLevelParameteriv :: Int32,
                                                        pname_GetTexLevelParameteriv :: Word32}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetTexLevelParameteriv where
         extensionId _ = "GLX"
@@ -2686,7 +2686,7 @@
                                                                  :: Int32,
                                                                  data_GetTexLevelParameterivReply ::
                                                                  [Int32]}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetTexLevelParameterivReply where
         deserialize
@@ -2704,7 +2704,7 @@
  
 data IsList = MkIsList{context_tag_IsList :: CONTEXT_TAG,
                        list_IsList :: Word32}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest IsList where
         extensionId _ = "GLX"
@@ -2718,7 +2718,7 @@
                putSkip (requiredPadding size__)
  
 data IsListReply = MkIsListReply{ret_val_IsListReply :: BOOL32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize IsListReply where
         deserialize
@@ -2731,7 +2731,7 @@
                return (MkIsListReply ret_val)
  
 data Flush = MkFlush{context_tag_Flush :: CONTEXT_TAG}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Flush where
         extensionId _ = "GLX"
@@ -2747,7 +2747,7 @@
                                                  :: CONTEXT_TAG,
                                                  n_AreTexturesResident :: Int32,
                                                  textures_AreTexturesResident :: [Word32]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest AreTexturesResident where
         extensionId _ = "GLX"
@@ -2767,7 +2767,7 @@
 data AreTexturesResidentReply = MkAreTexturesResidentReply{ret_val_AreTexturesResidentReply
                                                            :: BOOL32,
                                                            data_AreTexturesResidentReply :: [Bool]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize AreTexturesResidentReply where
         deserialize
@@ -2785,7 +2785,7 @@
                                        :: CONTEXT_TAG,
                                        n_DeleteTextures :: Int32,
                                        textures_DeleteTextures :: [Word32]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DeleteTextures where
         extensionId _ = "GLX"
@@ -2805,7 +2805,7 @@
 data GenTextures = MkGenTextures{context_tag_GenTextures ::
                                  CONTEXT_TAG,
                                  n_GenTextures :: Int32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GenTextures where
         extensionId _ = "GLX"
@@ -2821,7 +2821,7 @@
  
 data GenTexturesReply = MkGenTexturesReply{data_GenTexturesReply ::
                                            [Word32]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GenTexturesReply where
         deserialize
@@ -2836,7 +2836,7 @@
  
 data IsTexture = MkIsTexture{context_tag_IsTexture :: CONTEXT_TAG,
                              texture_IsTexture :: Word32}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest IsTexture where
         extensionId _ = "GLX"
@@ -2852,7 +2852,7 @@
  
 data IsTextureReply = MkIsTextureReply{ret_val_IsTextureReply ::
                                        BOOL32}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize IsTextureReply where
         deserialize
@@ -2868,7 +2868,7 @@
                                      CONTEXT_TAG,
                                      target_GetColorTable :: Word32, format_GetColorTable :: Word32,
                                      type_GetColorTable :: Word32, swap_bytes_GetColorTable :: Bool}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetColorTable where
         extensionId _ = "GLX"
@@ -2892,7 +2892,7 @@
 data GetColorTableReply = MkGetColorTableReply{width_GetColorTableReply
                                                :: Int32,
                                                data_GetColorTableReply :: [Word8]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetColorTableReply where
         deserialize
@@ -2912,7 +2912,7 @@
                                                            target_GetColorTableParameterfv ::
                                                            Word32,
                                                            pname_GetColorTableParameterfv :: Word32}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetColorTableParameterfv where
         extensionId _ = "GLX"
@@ -2935,7 +2935,7 @@
                                                                      :: FLOAT32,
                                                                      data_GetColorTableParameterfvReply
                                                                      :: [FLOAT32]}
-                                   deriving (Show, Typeable)
+                                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetColorTableParameterfvReply where
         deserialize
@@ -2956,7 +2956,7 @@
                                                            target_GetColorTableParameteriv ::
                                                            Word32,
                                                            pname_GetColorTableParameteriv :: Word32}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetColorTableParameteriv where
         extensionId _ = "GLX"
@@ -2979,7 +2979,7 @@
                                                                      :: Int32,
                                                                      data_GetColorTableParameterivReply
                                                                      :: [Int32]}
-                                   deriving (Show, Typeable)
+                                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetColorTableParameterivReply where
         deserialize
@@ -3001,7 +3001,7 @@
                                                    format_GetConvolutionFilter :: Word32,
                                                    type_GetConvolutionFilter :: Word32,
                                                    swap_bytes_GetConvolutionFilter :: Bool}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetConvolutionFilter where
         extensionId _ = "GLX"
@@ -3028,7 +3028,7 @@
                                                              Int32,
                                                              data_GetConvolutionFilterReply ::
                                                              [Word8]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetConvolutionFilterReply where
         deserialize
@@ -3050,7 +3050,7 @@
                                                              Word32,
                                                              pname_GetConvolutionParameterfv ::
                                                              Word32}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetConvolutionParameterfv where
         extensionId _ = "GLX"
@@ -3073,7 +3073,7 @@
                                                                        :: FLOAT32,
                                                                        data_GetConvolutionParameterfvReply
                                                                        :: [FLOAT32]}
-                                    deriving (Show, Typeable)
+                                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetConvolutionParameterfvReply where
         deserialize
@@ -3095,7 +3095,7 @@
                                                              Word32,
                                                              pname_GetConvolutionParameteriv ::
                                                              Word32}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetConvolutionParameteriv where
         extensionId _ = "GLX"
@@ -3118,7 +3118,7 @@
                                                                        :: Int32,
                                                                        data_GetConvolutionParameterivReply
                                                                        :: [Int32]}
-                                    deriving (Show, Typeable)
+                                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetConvolutionParameterivReply where
         deserialize
@@ -3140,7 +3140,7 @@
                                                format_GetSeparableFilter :: Word32,
                                                type_GetSeparableFilter :: Word32,
                                                swap_bytes_GetSeparableFilter :: Bool}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetSeparableFilter where
         extensionId _ = "GLX"
@@ -3166,7 +3166,7 @@
                                                          col_h_GetSeparableFilterReply :: Int32,
                                                          rows_and_cols_GetSeparableFilterReply ::
                                                          [Word8]}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetSeparableFilterReply where
         deserialize
@@ -3188,7 +3188,7 @@
                                    target_GetHistogram :: Word32, format_GetHistogram :: Word32,
                                    type_GetHistogram :: Word32, swap_bytes_GetHistogram :: Bool,
                                    reset_GetHistogram :: Bool}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetHistogram where
         extensionId _ = "GLX"
@@ -3214,7 +3214,7 @@
 data GetHistogramReply = MkGetHistogramReply{width_GetHistogramReply
                                              :: Int32,
                                              data_GetHistogramReply :: [Word8]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetHistogramReply where
         deserialize
@@ -3233,7 +3233,7 @@
                                                          :: CONTEXT_TAG,
                                                          target_GetHistogramParameterfv :: Word32,
                                                          pname_GetHistogramParameterfv :: Word32}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetHistogramParameterfv where
         extensionId _ = "GLX"
@@ -3256,7 +3256,7 @@
                                                                    :: FLOAT32,
                                                                    data_GetHistogramParameterfvReply
                                                                    :: [FLOAT32]}
-                                  deriving (Show, Typeable)
+                                  deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetHistogramParameterfvReply where
         deserialize
@@ -3276,7 +3276,7 @@
                                                          :: CONTEXT_TAG,
                                                          target_GetHistogramParameteriv :: Word32,
                                                          pname_GetHistogramParameteriv :: Word32}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetHistogramParameteriv where
         extensionId _ = "GLX"
@@ -3299,7 +3299,7 @@
                                                                    :: Int32,
                                                                    data_GetHistogramParameterivReply
                                                                    :: [Int32]}
-                                  deriving (Show, Typeable)
+                                  deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetHistogramParameterivReply where
         deserialize
@@ -3319,7 +3319,7 @@
                              target_GetMinmax :: Word32, format_GetMinmax :: Word32,
                              type_GetMinmax :: Word32, swap_bytes_GetMinmax :: Bool,
                              reset_GetMinmax :: Bool}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetMinmax where
         extensionId _ = "GLX"
@@ -3343,7 +3343,7 @@
  
 data GetMinmaxReply = MkGetMinmaxReply{data_GetMinmaxReply ::
                                        [Word8]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetMinmaxReply where
         deserialize
@@ -3360,7 +3360,7 @@
                                                    :: CONTEXT_TAG,
                                                    target_GetMinmaxParameterfv :: Word32,
                                                    pname_GetMinmaxParameterfv :: Word32}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetMinmaxParameterfv where
         extensionId _ = "GLX"
@@ -3383,7 +3383,7 @@
                                                              FLOAT32,
                                                              data_GetMinmaxParameterfvReply ::
                                                              [FLOAT32]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetMinmaxParameterfvReply where
         deserialize
@@ -3403,7 +3403,7 @@
                                                    :: CONTEXT_TAG,
                                                    target_GetMinmaxParameteriv :: Word32,
                                                    pname_GetMinmaxParameteriv :: Word32}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetMinmaxParameteriv where
         extensionId _ = "GLX"
@@ -3426,7 +3426,7 @@
                                                              Int32,
                                                              data_GetMinmaxParameterivReply ::
                                                              [Int32]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetMinmaxParameterivReply where
         deserialize
@@ -3447,7 +3447,7 @@
                                                            target_GetCompressedTexImageARB ::
                                                            Word32,
                                                            level_GetCompressedTexImageARB :: Int32}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetCompressedTexImageARB where
         extensionId _ = "GLX"
@@ -3468,7 +3468,7 @@
                                                                      :: Int32,
                                                                      data_GetCompressedTexImageARBReply
                                                                      :: [Word8]}
-                                   deriving (Show, Typeable)
+                                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetCompressedTexImageARBReply where
         deserialize
@@ -3487,7 +3487,7 @@
                                            :: CONTEXT_TAG,
                                            n_DeleteQueriesARB :: Int32,
                                            ids_DeleteQueriesARB :: [Word32]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DeleteQueriesARB where
         extensionId _ = "GLX"
@@ -3507,7 +3507,7 @@
 data GenQueriesARB = MkGenQueriesARB{context_tag_GenQueriesARB ::
                                      CONTEXT_TAG,
                                      n_GenQueriesARB :: Int32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GenQueriesARB where
         extensionId _ = "GLX"
@@ -3523,7 +3523,7 @@
  
 data GenQueriesARBReply = MkGenQueriesARBReply{data_GenQueriesARBReply
                                                :: [Word32]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GenQueriesARBReply where
         deserialize
@@ -3539,7 +3539,7 @@
 data IsQueryARB = MkIsQueryARB{context_tag_IsQueryARB ::
                                CONTEXT_TAG,
                                id_IsQueryARB :: Word32}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest IsQueryARB where
         extensionId _ = "GLX"
@@ -3555,7 +3555,7 @@
  
 data IsQueryARBReply = MkIsQueryARBReply{ret_val_IsQueryARBReply ::
                                          BOOL32}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize IsQueryARBReply where
         deserialize
@@ -3570,7 +3570,7 @@
 data GetQueryivARB = MkGetQueryivARB{context_tag_GetQueryivARB ::
                                      CONTEXT_TAG,
                                      target_GetQueryivARB :: Word32, pname_GetQueryivARB :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetQueryivARB where
         extensionId _ = "GLX"
@@ -3591,7 +3591,7 @@
                                                :: Word32,
                                                datum_GetQueryivARBReply :: Int32,
                                                data_GetQueryivARBReply :: [Int32]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetQueryivARBReply where
         deserialize
@@ -3611,7 +3611,7 @@
                                                  :: CONTEXT_TAG,
                                                  id_GetQueryObjectivARB :: Word32,
                                                  pname_GetQueryObjectivARB :: Word32}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetQueryObjectivARB where
         extensionId _ = "GLX"
@@ -3632,7 +3632,7 @@
                                                            :: Word32,
                                                            datum_GetQueryObjectivARBReply :: Int32,
                                                            data_GetQueryObjectivARBReply :: [Int32]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetQueryObjectivARBReply where
         deserialize
@@ -3652,7 +3652,7 @@
                                                    :: CONTEXT_TAG,
                                                    id_GetQueryObjectuivARB :: Word32,
                                                    pname_GetQueryObjectuivARB :: Word32}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetQueryObjectuivARB where
         extensionId _ = "GLX"
@@ -3675,7 +3675,7 @@
                                                              Word32,
                                                              data_GetQueryObjectuivARBReply ::
                                                              [Word32]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetQueryObjectuivARBReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/Input/Types.hs b/patched/Graphics/XHB/Gen/Input/Types.hs
--- a/patched/Graphics/XHB/Gen/Input/Types.hs
+++ b/patched/Graphics/XHB/Gen/Input/Types.hs
@@ -118,7 +118,7 @@
  
 data ValuatorMode = ValuatorModeRelative
                   | ValuatorModeAbsolute
-                  deriving Show
+                  deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ValuatorMode where
         toValue ValuatorModeRelative{} = 0
@@ -128,7 +128,7 @@
  
 data PropagateMode = PropagateModeAddToList
                    | PropagateModeDeleteFromList
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum PropagateMode where
         toValue PropagateModeAddToList{} = 0
@@ -139,7 +139,7 @@
 data GetExtensionVersion = MkGetExtensionVersion{name_len_GetExtensionVersion
                                                  :: Word16,
                                                  name_GetExtensionVersion :: [CChar]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetExtensionVersion where
         extensionId _ = "XInputExtension"
@@ -160,7 +160,7 @@
                                                            server_minor_GetExtensionVersionReply ::
                                                            Word16,
                                                            present_GetExtensionVersionReply :: Bool}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetExtensionVersionReply where
         deserialize
@@ -181,7 +181,7 @@
                | DeviceUseIsXExtensionDevice
                | DeviceUseIsXExtensionKeyboard
                | DeviceUseIsXExtensionPointer
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum DeviceUse where
         toValue DeviceUseIsXPointer{} = 0
@@ -198,7 +198,7 @@
 data DeviceInfo = MkDeviceInfo{device_type_DeviceInfo :: ATOM,
                                device_id_DeviceInfo :: Word8, num_class_info_DeviceInfo :: Word8,
                                device_use_DeviceInfo :: DeviceUse}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceInfo where
         serialize x
@@ -224,7 +224,7 @@
                  (MkDeviceInfo device_type device_id num_class_info device_use)
  
 data ListInputDevices = MkListInputDevices{}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ListInputDevices where
         extensionId _ = "XInputExtension"
@@ -238,7 +238,7 @@
 data ListInputDevicesReply = MkListInputDevicesReply{devices_len_ListInputDevicesReply
                                                      :: Word8,
                                                      devices_ListInputDevicesReply :: [DeviceInfo]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListInputDevicesReply where
         deserialize
@@ -259,7 +259,7 @@
                 | InputClassProximity
                 | InputClassFocus
                 | InputClassOther
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum InputClass where
         toValue InputClassKey{} = 0
@@ -279,7 +279,7 @@
  
 data InputInfo = MkInputInfo{class_id_InputInfo :: InputClass,
                              len_InputInfo :: Word8}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize InputInfo where
         serialize x
@@ -296,7 +296,7 @@
 data KeyInfo = MkKeyInfo{class_id_KeyInfo :: InputClass,
                          len_KeyInfo :: Word8, min_keycode_KeyInfo :: KeyCode,
                          max_keycode_KeyInfo :: KeyCode, num_keys_KeyInfo :: Word16}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize KeyInfo where
         serialize x
@@ -325,7 +325,7 @@
  
 data ButtonInfo = MkButtonInfo{class_id_ButtonInfo :: InputClass,
                                len_ButtonInfo :: Word8, num_buttons_ButtonInfo :: Word16}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ButtonInfo where
         serialize x
@@ -345,7 +345,7 @@
  
 data AxisInfo = MkAxisInfo{resolution_AxisInfo :: Word32,
                            minimum_AxisInfo :: Int32, maximum_AxisInfo :: Int32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize AxisInfo where
         serialize x
@@ -369,7 +369,7 @@
                                    mode_ValuatorInfo :: ValuatorMode,
                                    motion_size_ValuatorInfo :: Word32,
                                    axes_ValuatorInfo :: [AxisInfo]}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ValuatorInfo where
         serialize x
@@ -399,7 +399,7 @@
 data InputClassInfo = MkInputClassInfo{class_id_InputClassInfo ::
                                        InputClass,
                                        event_type_base_InputClassInfo :: Word8}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize InputClassInfo where
         serialize x
@@ -416,7 +416,7 @@
                return (MkInputClassInfo class_id event_type_base)
  
 data OpenDevice = MkOpenDevice{device_id_OpenDevice :: Word8}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest OpenDevice where
         extensionId _ = "XInputExtension"
@@ -432,7 +432,7 @@
 data OpenDeviceReply = MkOpenDeviceReply{num_classes_OpenDeviceReply
                                          :: Word8,
                                          class_info_OpenDeviceReply :: [InputClassInfo]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize OpenDeviceReply where
         deserialize
@@ -447,7 +447,7 @@
                return (MkOpenDeviceReply num_classes class_info)
  
 data CloseDevice = MkCloseDevice{device_id_CloseDevice :: Word8}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CloseDevice where
         extensionId _ = "XInputExtension"
@@ -463,7 +463,7 @@
 data SetDeviceMode = MkSetDeviceMode{device_id_SetDeviceMode ::
                                      Word8,
                                      mode_SetDeviceMode :: ValuatorMode}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetDeviceMode where
         extensionId _ = "XInputExtension"
@@ -481,7 +481,7 @@
  
 data SetDeviceModeReply = MkSetDeviceModeReply{status_SetDeviceModeReply
                                                :: Word8}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SetDeviceModeReply where
         deserialize
@@ -498,7 +498,7 @@
                                                    :: WINDOW,
                                                    num_classes_SelectExtensionEvent :: Word16,
                                                    classes_SelectExtensionEvent :: [EventClass]}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SelectExtensionEvent where
         extensionId _ = "XInputExtension"
@@ -519,7 +519,7 @@
  
 data GetSelectedExtensionEvents = MkGetSelectedExtensionEvents{window_GetSelectedExtensionEvents
                                                                :: WINDOW}
-                                deriving (Show, Typeable)
+                                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetSelectedExtensionEvents where
         extensionId _ = "XInputExtension"
@@ -539,7 +539,7 @@
                                                                          :: [EventClass],
                                                                          all_classes_GetSelectedExtensionEventsReply
                                                                          :: [EventClass]}
-                                     deriving (Show, Typeable)
+                                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetSelectedExtensionEventsReply where
         deserialize
@@ -566,7 +566,7 @@
                                                                      :: PropagateMode,
                                                                      classes_ChangeDeviceDontPropagateList
                                                                      :: [EventClass]}
-                                   deriving (Show, Typeable)
+                                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangeDeviceDontPropagateList where
         extensionId _ = "XInputExtension"
@@ -589,7 +589,7 @@
  
 data GetDeviceDontPropagateList = MkGetDeviceDontPropagateList{window_GetDeviceDontPropagateList
                                                                :: WINDOW}
-                                deriving (Show, Typeable)
+                                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDeviceDontPropagateList where
         extensionId _ = "XInputExtension"
@@ -605,7 +605,7 @@
                                                                          :: Word16,
                                                                          classes_GetDeviceDontPropagateListReply
                                                                          :: [EventClass]}
-                                     deriving (Show, Typeable)
+                                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDeviceDontPropagateListReply where
         deserialize
@@ -623,7 +623,7 @@
                                                      :: TIMESTAMP,
                                                      stop_GetDeviceMotionEvents :: TIMESTAMP,
                                                      device_id_GetDeviceMotionEvents :: Word8}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDeviceMotionEvents where
         extensionId _ = "XInputExtension"
@@ -646,7 +646,7 @@
                                                                :: Word8,
                                                                device_mode_GetDeviceMotionEventsReply
                                                                :: ValuatorMode}
-                                deriving (Show, Typeable)
+                                deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDeviceMotionEventsReply where
         deserialize
@@ -664,7 +664,7 @@
  
 data DeviceTimeCoord = MkDeviceTimeCoord{time_DeviceTimeCoord ::
                                          TIMESTAMP}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceTimeCoord where
         serialize x = do serialize (time_DeviceTimeCoord x)
@@ -677,7 +677,7 @@
  
 data ChangeKeyboardDevice = MkChangeKeyboardDevice{device_id_ChangeKeyboardDevice
                                                    :: Word8}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangeKeyboardDevice where
         extensionId _ = "XInputExtension"
@@ -692,7 +692,7 @@
  
 data ChangeKeyboardDeviceReply = MkChangeKeyboardDeviceReply{status_ChangeKeyboardDeviceReply
                                                              :: Word8}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ChangeKeyboardDeviceReply where
         deserialize
@@ -709,7 +709,7 @@
                                                  :: Word8,
                                                  y_axis_ChangePointerDevice :: Word8,
                                                  device_id_ChangePointerDevice :: Word8}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangePointerDevice where
         extensionId _ = "XInputExtension"
@@ -730,7 +730,7 @@
  
 data ChangePointerDeviceReply = MkChangePointerDeviceReply{status_ChangePointerDeviceReply
                                                            :: Word8}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ChangePointerDeviceReply where
         deserialize
@@ -749,7 +749,7 @@
                                other_device_mode_GrabDevice :: GrabMode,
                                owner_events_GrabDevice :: Bool, device_id_GrabDevice :: Word8,
                                classes_GrabDevice :: [EventClass]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GrabDevice where
         extensionId _ = "XInputExtension"
@@ -779,7 +779,7 @@
  
 data GrabDeviceReply = MkGrabDeviceReply{status_GrabDeviceReply ::
                                          GrabStatus}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GrabDeviceReply where
         deserialize
@@ -794,7 +794,7 @@
  
 data UngrabDevice = MkUngrabDevice{time_UngrabDevice :: TIMESTAMP,
                                    device_id_UngrabDevice :: Word8}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest UngrabDevice where
         extensionId _ = "XInputExtension"
@@ -819,7 +819,7 @@
                                      other_device_mode_GrabDeviceKey :: GrabMode,
                                      owner_events_GrabDeviceKey :: Bool,
                                      classes_GrabDeviceKey :: [EventClass]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GrabDeviceKey where
         extensionId _ = "XInputExtension"
@@ -858,7 +858,7 @@
                                          modifier_device_UngrabDeviceKey :: Word8,
                                          key_UngrabDeviceKey :: Word8,
                                          grabbed_device_UngrabDeviceKey :: Word8}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest UngrabDeviceKey where
         extensionId _ = "XInputExtension"
@@ -890,7 +890,7 @@
                                            button_GrabDeviceButton :: Word8,
                                            owner_events_GrabDeviceButton :: Word8,
                                            classes_GrabDeviceButton :: [EventClass]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GrabDeviceButton where
         extensionId _ = "XInputExtension"
@@ -929,7 +929,7 @@
                                                modifier_device_UngrabDeviceButton :: Word8,
                                                button_UngrabDeviceButton :: Word8,
                                                grabbed_device_UngrabDeviceButton :: Word8}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest UngrabDeviceButton where
         extensionId _ = "XInputExtension"
@@ -956,7 +956,7 @@
                      | DeviceInputModeAsyncOtherDevices
                      | DeviceInputModeAsyncAll
                      | DeviceInputModeSyncAll
-                     deriving Show
+                     deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum DeviceInputMode where
         toValue DeviceInputModeAsyncThisDevice{} = 0
@@ -976,7 +976,7 @@
                                              :: TIMESTAMP,
                                              mode_AllowDeviceEvents :: DeviceInputMode,
                                              device_id_AllowDeviceEvents :: Word8}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest AllowDeviceEvents where
         extensionId _ = "XInputExtension"
@@ -994,7 +994,7 @@
  
 data GetDeviceFocus = MkGetDeviceFocus{device_id_GetDeviceFocus ::
                                        Word8}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDeviceFocus where
         extensionId _ = "XInputExtension"
@@ -1011,7 +1011,7 @@
                                                  :: WINDOW,
                                                  time_GetDeviceFocusReply :: TIMESTAMP,
                                                  revert_to_GetDeviceFocusReply :: InputFocus}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDeviceFocusReply where
         deserialize
@@ -1031,7 +1031,7 @@
                                        time_SetDeviceFocus :: TIMESTAMP,
                                        revert_to_SetDeviceFocus :: InputFocus,
                                        device_id_SetDeviceFocus :: Word8}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetDeviceFocus where
         extensionId _ = "XInputExtension"
@@ -1051,7 +1051,7 @@
  
 data GetFeedbackControl = MkGetFeedbackControl{device_id_GetFeedbackControl
                                                :: Word8}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetFeedbackControl where
         extensionId _ = "XInputExtension"
@@ -1066,7 +1066,7 @@
  
 data GetFeedbackControlReply = MkGetFeedbackControlReply{num_feedback_GetFeedbackControlReply
                                                          :: Word16}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetFeedbackControlReply where
         deserialize
@@ -1085,7 +1085,7 @@
                    | FeedbackClassInteger
                    | FeedbackClassLed
                    | FeedbackClassBell
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum FeedbackClass where
         toValue FeedbackClassKeyboard{} = 0
@@ -1104,7 +1104,7 @@
 data FeedbackState = MkFeedbackState{class_id_FeedbackState ::
                                      FeedbackClass,
                                      id_FeedbackState :: Word8, len_FeedbackState :: Word16}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize FeedbackState where
         serialize x
@@ -1134,7 +1134,7 @@
                                            click_KbdFeedbackState :: Word8,
                                            percent_KbdFeedbackState :: Word8,
                                            auto_repeats_KbdFeedbackState :: [Word8]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize KbdFeedbackState where
         serialize x
@@ -1192,7 +1192,7 @@
                                            accel_num_PtrFeedbackState :: Word16,
                                            accel_denom_PtrFeedbackState :: Word16,
                                            threshold_PtrFeedbackState :: Word16}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PtrFeedbackState where
         serialize x
@@ -1231,7 +1231,7 @@
                                                    resolution_IntegerFeedbackState :: Word32,
                                                    min_value_IntegerFeedbackState :: Int32,
                                                    max_value_IntegerFeedbackState :: Int32}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize IntegerFeedbackState where
         serialize x
@@ -1267,7 +1267,7 @@
                                                  max_symbols_StringFeedbackState :: Word16,
                                                  num_keysyms_StringFeedbackState :: Word16,
                                                  keysyms_StringFeedbackState :: [KEYSYM]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize StringFeedbackState where
         serialize x
@@ -1303,7 +1303,7 @@
                                              percent_BellFeedbackState :: Word8,
                                              pitch_BellFeedbackState :: Word16,
                                              duration_BellFeedbackState :: Word16}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize BellFeedbackState where
         serialize x
@@ -1339,7 +1339,7 @@
                                            len_LedFeedbackState :: Word16,
                                            led_mask_LedFeedbackState :: Word32,
                                            led_values_LedFeedbackState :: Word32}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize LedFeedbackState where
         serialize x
@@ -1366,7 +1366,7 @@
 data FeedbackCtl = MkFeedbackCtl{class_id_FeedbackCtl ::
                                  FeedbackClass,
                                  id_FeedbackCtl :: Word8, len_FeedbackCtl :: Word16}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize FeedbackCtl where
         serialize x
@@ -1395,7 +1395,7 @@
                                        bell_duration_KbdFeedbackCtl :: Int16,
                                        led_mask_KbdFeedbackCtl :: Word32,
                                        led_values_KbdFeedbackCtl :: Word32}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize KbdFeedbackCtl where
         serialize x
@@ -1449,7 +1449,7 @@
                                        id_PtrFeedbackCtl :: Word8, len_PtrFeedbackCtl :: Word16,
                                        num_PtrFeedbackCtl :: Int16, denom_PtrFeedbackCtl :: Int16,
                                        threshold_PtrFeedbackCtl :: Int16}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PtrFeedbackCtl where
         serialize x
@@ -1484,7 +1484,7 @@
                                                id_IntegerFeedbackCtl :: Word8,
                                                len_IntegerFeedbackCtl :: Word16,
                                                int_to_display_IntegerFeedbackCtl :: Int32}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize IntegerFeedbackCtl where
         serialize x
@@ -1511,7 +1511,7 @@
                                              len_StringFeedbackCtl :: Word16,
                                              num_keysyms_StringFeedbackCtl :: Word16,
                                              keysyms_StringFeedbackCtl :: [KEYSYM]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize StringFeedbackCtl where
         serialize x
@@ -1544,7 +1544,7 @@
                                          percent_BellFeedbackCtl :: Int8,
                                          pitch_BellFeedbackCtl :: Int16,
                                          duration_BellFeedbackCtl :: Int16}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize BellFeedbackCtl where
         serialize x
@@ -1579,7 +1579,7 @@
                                        id_LedFeedbackCtl :: Word8, len_LedFeedbackCtl :: Word16,
                                        led_mask_LedFeedbackCtl :: Word32,
                                        led_values_LedFeedbackCtl :: Word32}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize LedFeedbackCtl where
         serialize x
@@ -1607,7 +1607,7 @@
                                                  :: Word8,
                                                  first_keycode_GetDeviceKeyMapping :: KeyCode,
                                                  count_GetDeviceKeyMapping :: Word8}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDeviceKeyMapping where
         extensionId _ = "XInputExtension"
@@ -1628,7 +1628,7 @@
                                                            :: Word8,
                                                            keysyms_GetDeviceKeyMappingReply ::
                                                            [KEYSYM]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDeviceKeyMappingReply where
         deserialize
@@ -1651,7 +1651,7 @@
                                                        keycode_count_ChangeDeviceKeyMapping ::
                                                        Word8,
                                                        keysyms_ChangeDeviceKeyMapping :: [KEYSYM]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangeDeviceKeyMapping where
         extensionId _ = "XInputExtension"
@@ -1674,7 +1674,7 @@
  
 data GetDeviceModifierMapping = MkGetDeviceModifierMapping{device_id_GetDeviceModifierMapping
                                                            :: Word8}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDeviceModifierMapping where
         extensionId _ = "XInputExtension"
@@ -1691,7 +1691,7 @@
                                                                      :: Word8,
                                                                      keymaps_GetDeviceModifierMappingReply
                                                                      :: [Word8]}
-                                   deriving (Show, Typeable)
+                                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDeviceModifierMappingReply where
         deserialize
@@ -1713,7 +1713,7 @@
                                                            :: Word8,
                                                            keymaps_SetDeviceModifierMapping ::
                                                            [Word8]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetDeviceModifierMapping where
         extensionId _ = "XInputExtension"
@@ -1734,7 +1734,7 @@
  
 data SetDeviceModifierMappingReply = MkSetDeviceModifierMappingReply{status_SetDeviceModifierMappingReply
                                                                      :: MappingStatus}
-                                   deriving (Show, Typeable)
+                                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SetDeviceModifierMappingReply where
         deserialize
@@ -1749,7 +1749,7 @@
  
 data GetDeviceButtonMapping = MkGetDeviceButtonMapping{device_id_GetDeviceButtonMapping
                                                        :: Word8}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDeviceButtonMapping where
         extensionId _ = "XInputExtension"
@@ -1766,7 +1766,7 @@
                                                                  :: Word8,
                                                                  map_GetDeviceButtonMappingReply ::
                                                                  [Word8]}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDeviceButtonMappingReply where
         deserialize
@@ -1784,7 +1784,7 @@
                                                        :: Word8,
                                                        map_size_SetDeviceButtonMapping :: Word8,
                                                        map_SetDeviceButtonMapping :: [Word8]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetDeviceButtonMapping where
         extensionId _ = "XInputExtension"
@@ -1805,7 +1805,7 @@
  
 data SetDeviceButtonMappingReply = MkSetDeviceButtonMappingReply{status_SetDeviceButtonMappingReply
                                                                  :: MappingStatus}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SetDeviceButtonMappingReply where
         deserialize
@@ -1820,7 +1820,7 @@
  
 data QueryDeviceState = MkQueryDeviceState{device_id_QueryDeviceState
                                            :: Word8}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryDeviceState where
         extensionId _ = "XInputExtension"
@@ -1835,7 +1835,7 @@
  
 data QueryDeviceStateReply = MkQueryDeviceStateReply{num_classes_QueryDeviceStateReply
                                                      :: Word8}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryDeviceStateReply where
         deserialize
@@ -1850,7 +1850,7 @@
  
 data InputState = MkInputState{class_id_InputState :: InputClass,
                                len_InputState :: Word8, num_items_InputState :: Word8}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize InputState where
         serialize x
@@ -1871,7 +1871,7 @@
 data KeyState = MkKeyState{class_id_KeyState :: InputClass,
                            len_KeyState :: Word8, num_keys_KeyState :: Word8,
                            keys_KeyState :: [Word8]}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize KeyState where
         serialize x
@@ -1899,7 +1899,7 @@
                                  InputClass,
                                  len_ButtonState :: Word8, num_buttons_ButtonState :: Word8,
                                  buttons_ButtonState :: [Word8]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ButtonState where
         serialize x
@@ -1929,7 +1929,7 @@
                                      num_valuators_ValuatorState :: Word8,
                                      mode_ValuatorState :: Word8,
                                      valuators_ValuatorState :: [Word32]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ValuatorState where
         serialize x
@@ -1961,7 +1961,7 @@
                                                num_events_SendExtensionEvent :: Word8,
                                                events_SendExtensionEvent :: [CChar],
                                                classes_SendExtensionEvent :: [EventClass]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SendExtensionEvent where
         extensionId _ = "XInputExtension"
@@ -1991,7 +1991,7 @@
 data DeviceBell = MkDeviceBell{device_id_DeviceBell :: Word8,
                                feedback_id_DeviceBell :: Word8,
                                feedback_class_DeviceBell :: Word8, percent_DeviceBell :: Int8}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DeviceBell where
         extensionId _ = "XInputExtension"
@@ -2015,7 +2015,7 @@
                                                first_valuator_SetDeviceValuators :: Word8,
                                                num_valuators_SetDeviceValuators :: Word8,
                                                valuators_SetDeviceValuators :: [Int32]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetDeviceValuators where
         extensionId _ = "XInputExtension"
@@ -2038,7 +2038,7 @@
  
 data SetDeviceValuatorsReply = MkSetDeviceValuatorsReply{status_SetDeviceValuatorsReply
                                                          :: GrabStatus}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SetDeviceValuatorsReply where
         deserialize
@@ -2054,7 +2054,7 @@
 data GetDeviceControl = MkGetDeviceControl{control_id_GetDeviceControl
                                            :: Word16,
                                            device_id_GetDeviceControl :: Word8}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDeviceControl where
         extensionId _ = "XInputExtension"
@@ -2073,7 +2073,7 @@
  
 data GetDeviceControlReply = MkGetDeviceControlReply{status_GetDeviceControlReply
                                                      :: Word8}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDeviceControlReply where
         deserialize
@@ -2088,7 +2088,7 @@
  
 data DeviceState = MkDeviceState{control_id_DeviceState :: Word16,
                                  len_DeviceState :: Word16}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceState where
         serialize x
@@ -2112,7 +2112,7 @@
                                                      [Word32],
                                                      resolution_max_DeviceResolutionState ::
                                                      [Word32]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceResolutionState where
         serialize x
@@ -2155,7 +2155,7 @@
                                                  flip_y_DeviceAbsCalibState :: Word32,
                                                  rotation_DeviceAbsCalibState :: Word32,
                                                  button_threshold_DeviceAbsCalibState :: Word32}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceAbsCalibState where
         serialize x
@@ -2209,7 +2209,7 @@
                                                height_DeviceAbsAreaState :: Word32,
                                                screen_DeviceAbsAreaState :: Word32,
                                                following_DeviceAbsAreaState :: Word32}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceAbsAreaState where
         serialize x
@@ -2251,7 +2251,7 @@
                                          len_DeviceCoreState :: Word16,
                                          status_DeviceCoreState :: Word8,
                                          iscore_DeviceCoreState :: Word8}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceCoreState where
         serialize x
@@ -2280,7 +2280,7 @@
                                              :: Word16,
                                              len_DeviceEnableState :: Word16,
                                              enable_DeviceEnableState :: Word8}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceEnableState where
         serialize x
@@ -2304,7 +2304,7 @@
  
 data DeviceCtl = MkDeviceCtl{control_id_DeviceCtl :: Word16,
                              len_DeviceCtl :: Word16}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceCtl where
         serialize x
@@ -2324,7 +2324,7 @@
                                                  first_valuator_DeviceResolutionCtl :: Word8,
                                                  num_valuators_DeviceResolutionCtl :: Word8,
                                                  resolution_values_DeviceResolutionCtl :: [Word32]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceResolutionCtl where
         serialize x
@@ -2362,7 +2362,7 @@
                                              flip_y_DeviceAbsCalibCtl :: Word32,
                                              rotation_DeviceAbsCalibCtl :: Word32,
                                              button_threshold_DeviceAbsCalibCtl :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceAbsCalibCtl where
         serialize x
@@ -2415,7 +2415,7 @@
                                              height_DeviceAbsAreaCtrl :: Int32,
                                              screen_DeviceAbsAreaCtrl :: Int32,
                                              following_DeviceAbsAreaCtrl :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceAbsAreaCtrl where
         serialize x
@@ -2455,7 +2455,7 @@
 data DeviceCoreCtrl = MkDeviceCoreCtrl{control_id_DeviceCoreCtrl ::
                                        Word16,
                                        len_DeviceCoreCtrl :: Word16, status_DeviceCoreCtrl :: Word8}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceCoreCtrl where
         serialize x
@@ -2480,7 +2480,7 @@
                                            :: Word16,
                                            len_DeviceEnableCtrl :: Word16,
                                            enable_DeviceEnableCtrl :: Word8}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeviceEnableCtrl where
         serialize x
@@ -2508,7 +2508,7 @@
                                                  num_valuators_DeviceValuatorEvent :: Word8,
                                                  first_valuator_DeviceValuatorEvent :: Word8,
                                                  valuators_DeviceValuatorEvent :: [Int32]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DeviceValuatorEvent
  
@@ -2539,7 +2539,7 @@
                                                  state_DeviceKeyPressEvent :: Word16,
                                                  same_screen_DeviceKeyPressEvent :: Bool,
                                                  device_id_DeviceKeyPressEvent :: Word8}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DeviceKeyPressEvent
  
@@ -2580,7 +2580,7 @@
                                                      state_DeviceKeyReleaseEvent :: Word16,
                                                      same_screen_DeviceKeyReleaseEvent :: Bool,
                                                      device_id_DeviceKeyReleaseEvent :: Word8}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DeviceKeyReleaseEvent
  
@@ -2621,7 +2621,7 @@
                                                        state_DeviceButtonPressEvent :: Word16,
                                                        same_screen_DeviceButtonPressEvent :: Bool,
                                                        device_id_DeviceButtonPressEvent :: Word8}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DeviceButtonPressEvent
  
@@ -2668,7 +2668,7 @@
                                                            Bool,
                                                            device_id_DeviceButtonReleaseEvent ::
                                                            Word8}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DeviceButtonReleaseEvent
  
@@ -2711,7 +2711,7 @@
                                                          same_screen_DeviceMotionNotifyEvent ::
                                                          Bool,
                                                          device_id_DeviceMotionNotifyEvent :: Word8}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DeviceMotionNotifyEvent
  
@@ -2753,7 +2753,7 @@
                                            state_ProximityInEvent :: Word16,
                                            same_screen_ProximityInEvent :: Bool,
                                            device_id_ProximityInEvent :: Word8}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ProximityInEvent
  
@@ -2794,7 +2794,7 @@
                                              state_ProximityOutEvent :: Word16,
                                              same_screen_ProximityOutEvent :: Bool,
                                              device_id_ProximityOutEvent :: Word8}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ProximityOutEvent
  
@@ -2826,7 +2826,7 @@
                                    NotifyDetail,
                                    time_FocusInEvent :: TIMESTAMP, window_FocusInEvent :: WINDOW,
                                    mode_FocusInEvent :: NotifyMode, device_id_FocusInEvent :: Word8}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event FocusInEvent
  
@@ -2848,7 +2848,7 @@
                                      window_FocusOutEvent :: WINDOW,
                                      mode_FocusOutEvent :: NotifyMode,
                                      device_id_FocusOutEvent :: Word8}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event FocusOutEvent
  
@@ -2876,7 +2876,7 @@
                                                        buttons_DeviceStateNotifyEvent :: [Word8],
                                                        keys_DeviceStateNotifyEvent :: [Word8],
                                                        valuators_DeviceStateNotifyEvent :: [Word32]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DeviceStateNotifyEvent
  
@@ -2910,7 +2910,7 @@
                                                            count_DeviceMappingNotifyEvent :: Word8,
                                                            time_DeviceMappingNotifyEvent ::
                                                            TIMESTAMP}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DeviceMappingNotifyEvent
  
@@ -2933,7 +2933,7 @@
                                                          :: Word8,
                                                          time_ChangeDeviceNotifyEvent :: TIMESTAMP,
                                                          request_ChangeDeviceNotifyEvent :: Word8}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ChangeDeviceNotifyEvent
  
@@ -2951,7 +2951,7 @@
                                                              :: Word8,
                                                              keys_DeviceKeyStateNotifyEvent ::
                                                              [Word8]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DeviceKeyStateNotifyEvent
  
@@ -2967,7 +2967,7 @@
                                                                    :: Word8,
                                                                    buttons_DeviceButtonStateNotifyEvent
                                                                    :: [Word8]}
-                                  deriving (Show, Typeable)
+                                  deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DeviceButtonStateNotifyEvent
  
@@ -2987,7 +2987,7 @@
                                                              Word8,
                                                              control_DevicePresenceNotifyEvent ::
                                                              Word16}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DevicePresenceNotifyEvent
  
diff --git a/patched/Graphics/XHB/Gen/RandR/Types.hs b/patched/Graphics/XHB/Gen/RandR/Types.hs
--- a/patched/Graphics/XHB/Gen/RandR/Types.hs
+++ b/patched/Graphics/XHB/Gen/RandR/Types.hs
@@ -71,7 +71,7 @@
               | RotationRotate_270
               | RotationReflect_X
               | RotationReflect_Y
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum Rotation where
         toBit RotationRotate_0{} = 0
@@ -90,7 +90,7 @@
 data ScreenSize = MkScreenSize{width_ScreenSize :: Word16,
                                height_ScreenSize :: Word16, mwidth_ScreenSize :: Word16,
                                mheight_ScreenSize :: Word16}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ScreenSize where
         serialize x
@@ -113,7 +113,7 @@
  
 data RefreshRates = MkRefreshRates{nRates_RefreshRates :: Word16,
                                    rates_RefreshRates :: [Word16]}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize RefreshRates where
         serialize x
@@ -132,7 +132,7 @@
 data QueryVersion = MkQueryVersion{major_version_QueryVersion ::
                                    Word32,
                                    minor_version_QueryVersion :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "RANDR"
@@ -150,7 +150,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply
                                              :: Word32,
                                              minor_version_QueryVersionReply :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -168,7 +168,7 @@
                | SetConfigInvalidConfigTime
                | SetConfigInvalidTime
                | SetConfigFailed
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SetConfig where
         toValue SetConfigSuccess{} = 0
@@ -187,7 +187,7 @@
                                          sizeID_SetScreenConfig :: Word16,
                                          rotation_SetScreenConfig :: [Rotation],
                                          rate_SetScreenConfig :: Word16}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetScreenConfig where
         extensionId _ = "RANDR"
@@ -219,7 +219,7 @@
                                                    TIMESTAMP,
                                                    root_SetScreenConfigReply :: WINDOW,
                                                    subpixel_order_SetScreenConfigReply :: SubPixel}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SetScreenConfigReply where
         deserialize
@@ -241,7 +241,7 @@
                 | NotifyMaskCrtcChange
                 | NotifyMaskOutputChange
                 | NotifyMaskOutputProperty
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum NotifyMask where
         toBit NotifyMaskScreenChange{} = 0
@@ -255,7 +255,7 @@
  
 data SelectInput = MkSelectInput{window_SelectInput :: WINDOW,
                                  enable_SelectInput :: [NotifyMask]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SelectInput where
         extensionId _ = "RANDR"
@@ -272,7 +272,7 @@
  
 data GetScreenInfo = MkGetScreenInfo{window_GetScreenInfo ::
                                      WINDOW}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetScreenInfo where
         extensionId _ = "RANDR"
@@ -296,7 +296,7 @@
                                                nInfo_GetScreenInfoReply :: Word16,
                                                sizes_GetScreenInfoReply :: [ScreenSize],
                                                rates_GetScreenInfoReply :: [RefreshRates]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetScreenInfoReply where
         deserialize
@@ -329,7 +329,7 @@
  
 data GetScreenSizeRange = MkGetScreenSizeRange{window_GetScreenSizeRange
                                                :: WINDOW}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetScreenSizeRange where
         extensionId _ = "RANDR"
@@ -349,7 +349,7 @@
                                                          Word16,
                                                          max_height_GetScreenSizeRangeReply ::
                                                          Word16}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetScreenSizeRangeReply where
         deserialize
@@ -372,7 +372,7 @@
                                      width_SetScreenSize :: Word16, height_SetScreenSize :: Word16,
                                      mm_width_SetScreenSize :: Word32,
                                      mm_height_SetScreenSize :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetScreenSize where
         extensionId _ = "RANDR"
@@ -406,7 +406,7 @@
               | ModeFlagPixelMultiplex
               | ModeFlagDoubleClock
               | ModeFlagHalveClock
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum ModeFlag where
         toBit ModeFlagHsyncPositive{} = 0
@@ -445,7 +445,7 @@
                            hskew_ModeInfo :: Word16, vsync_start_ModeInfo :: Word16,
                            vsync_end_ModeInfo :: Word16, vtotal_ModeInfo :: Word16,
                            name_len_ModeInfo :: Word16, mode_flags_ModeInfo :: [ModeFlag]}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ModeInfo where
         serialize x
@@ -502,7 +502,7 @@
  
 data GetScreenResources = MkGetScreenResources{window_GetScreenResources
                                                :: WINDOW}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetScreenResources where
         extensionId _ = "RANDR"
@@ -532,7 +532,7 @@
                                                          modes_GetScreenResourcesReply ::
                                                          [ModeInfo],
                                                          names_GetScreenResourcesReply :: [Word8]}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetScreenResourcesReply where
         deserialize
@@ -565,7 +565,7 @@
 data Connection = ConnectionConnected
                 | ConnectionDisconnected
                 | ConnectionUnknown
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Connection where
         toValue ConnectionConnected{} = 0
@@ -578,7 +578,7 @@
 data GetOutputInfo = MkGetOutputInfo{output_GetOutputInfo ::
                                      OUTPUT,
                                      config_timestamp_GetOutputInfo :: TIMESTAMP}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetOutputInfo where
         extensionId _ = "RANDR"
@@ -610,7 +610,7 @@
                                                modes_GetOutputInfoReply :: [MODE],
                                                clones_GetOutputInfoReply :: [OUTPUT],
                                                name_GetOutputInfoReply :: [Word8]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetOutputInfoReply where
         deserialize
@@ -650,7 +650,7 @@
  
 data ListOutputProperties = MkListOutputProperties{output_ListOutputProperties
                                                    :: OUTPUT}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ListOutputProperties where
         extensionId _ = "RANDR"
@@ -666,7 +666,7 @@
                                                              :: Word16,
                                                              atoms_ListOutputPropertiesReply ::
                                                              [ATOM]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListOutputPropertiesReply where
         deserialize
@@ -683,7 +683,7 @@
 data QueryOutputProperty = MkQueryOutputProperty{output_QueryOutputProperty
                                                  :: OUTPUT,
                                                  property_QueryOutputProperty :: ATOM}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryOutputProperty where
         extensionId _ = "RANDR"
@@ -705,7 +705,7 @@
                                                            Bool,
                                                            validValues_QueryOutputPropertyReply ::
                                                            [Int32]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryOutputPropertyReply where
         deserialize
@@ -728,7 +728,7 @@
                                                          pending_ConfigureOutputProperty :: Bool,
                                                          range_ConfigureOutputProperty :: Bool,
                                                          values_ConfigureOutputProperty :: [Int32]}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ConfigureOutputProperty where
         extensionId _ = "RANDR"
@@ -759,7 +759,7 @@
                                                    mode_ChangeOutputProperty :: PropMode,
                                                    num_units_ChangeOutputProperty :: Word32,
                                                    data_ChangeOutputProperty :: [Word8]}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangeOutputProperty where
         extensionId _ = "RANDR"
@@ -789,7 +789,7 @@
 data DeleteOutputProperty = MkDeleteOutputProperty{output_DeleteOutputProperty
                                                    :: OUTPUT,
                                                    property_DeleteOutputProperty :: ATOM}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DeleteOutputProperty where
         extensionId _ = "RANDR"
@@ -812,7 +812,7 @@
                                              long_length_GetOutputProperty :: Word32,
                                              delete_GetOutputProperty :: Bool,
                                              pending_GetOutputProperty :: Bool}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetOutputProperty where
         extensionId _ = "RANDR"
@@ -845,7 +845,7 @@
                                                        bytes_after_GetOutputPropertyReply :: Word32,
                                                        num_items_GetOutputPropertyReply :: Word32,
                                                        data_GetOutputPropertyReply :: [Word8]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetOutputPropertyReply where
         deserialize
@@ -866,7 +866,7 @@
  
 data CreateMode = MkCreateMode{window_CreateMode :: WINDOW,
                                mode_info_CreateMode :: ModeInfo, name_CreateMode :: [CChar]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateMode where
         extensionId _ = "RANDR"
@@ -884,7 +884,7 @@
  
 data CreateModeReply = MkCreateModeReply{mode_CreateModeReply ::
                                          MODE}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize CreateModeReply where
         deserialize
@@ -898,7 +898,7 @@
                return (MkCreateModeReply mode)
  
 data DestroyMode = MkDestroyMode{mode_DestroyMode :: MODE}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyMode where
         extensionId _ = "RANDR"
@@ -913,7 +913,7 @@
 data AddOutputMode = MkAddOutputMode{output_AddOutputMode ::
                                      OUTPUT,
                                      mode_AddOutputMode :: MODE}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest AddOutputMode where
         extensionId _ = "RANDR"
@@ -930,7 +930,7 @@
 data DeleteOutputMode = MkDeleteOutputMode{output_DeleteOutputMode
                                            :: OUTPUT,
                                            mode_DeleteOutputMode :: MODE}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DeleteOutputMode where
         extensionId _ = "RANDR"
@@ -947,7 +947,7 @@
  
 data GetCrtcInfo = MkGetCrtcInfo{crtc_GetCrtcInfo :: CRTC,
                                  config_timestamp_GetCrtcInfo :: TIMESTAMP}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetCrtcInfo where
         extensionId _ = "RANDR"
@@ -975,7 +975,7 @@
                                            num_possible_outputs_GetCrtcInfoReply :: Word16,
                                            outputs_GetCrtcInfoReply :: [OUTPUT],
                                            possible_GetCrtcInfoReply :: [OUTPUT]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetCrtcInfoReply where
         deserialize
@@ -1011,7 +1011,7 @@
                                      mode_SetCrtcConfig :: MODE,
                                      rotation_SetCrtcConfig :: [Rotation],
                                      outputs_SetCrtcConfig :: [OUTPUT]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetCrtcConfig where
         extensionId _ = "RANDR"
@@ -1043,7 +1043,7 @@
 data SetCrtcConfigReply = MkSetCrtcConfigReply{status_SetCrtcConfigReply
                                                :: SetConfig,
                                                timestamp_SetCrtcConfigReply :: TIMESTAMP}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SetCrtcConfigReply where
         deserialize
@@ -1058,7 +1058,7 @@
  
 data GetCrtcGammaSize = MkGetCrtcGammaSize{crtc_GetCrtcGammaSize ::
                                            CRTC}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetCrtcGammaSize where
         extensionId _ = "RANDR"
@@ -1072,7 +1072,7 @@
  
 data GetCrtcGammaSizeReply = MkGetCrtcGammaSizeReply{size_GetCrtcGammaSizeReply
                                                      :: Word16}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetCrtcGammaSizeReply where
         deserialize
@@ -1086,7 +1086,7 @@
                return (MkGetCrtcGammaSizeReply size)
  
 data GetCrtcGamma = MkGetCrtcGamma{crtc_GetCrtcGamma :: CRTC}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetCrtcGamma where
         extensionId _ = "RANDR"
@@ -1103,7 +1103,7 @@
                                              red_GetCrtcGammaReply :: [Word16],
                                              green_GetCrtcGammaReply :: [Word16],
                                              blue_GetCrtcGammaReply :: [Word16]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetCrtcGammaReply where
         deserialize
@@ -1122,7 +1122,7 @@
 data SetCrtcGamma = MkSetCrtcGamma{crtc_SetCrtcGamma :: CRTC,
                                    size_SetCrtcGamma :: Word16, red_SetCrtcGamma :: [Word16],
                                    green_SetCrtcGamma :: [Word16], blue_SetCrtcGamma :: [Word16]}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetCrtcGamma where
         extensionId _ = "RANDR"
@@ -1145,7 +1145,7 @@
  
 data GetScreenResourcesCurrent = MkGetScreenResourcesCurrent{window_GetScreenResourcesCurrent
                                                              :: WINDOW}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetScreenResourcesCurrent where
         extensionId _ = "RANDR"
@@ -1177,7 +1177,7 @@
                                                                        :: [ModeInfo],
                                                                        names_GetScreenResourcesCurrentReply
                                                                        :: [Word8]}
-                                    deriving (Show, Typeable)
+                                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetScreenResourcesCurrentReply where
         deserialize
@@ -1214,7 +1214,7 @@
                                            filter_len_SetCrtcTransform :: Word16,
                                            filter_name_SetCrtcTransform :: [CChar],
                                            filter_params_SetCrtcTransform :: [FIXED]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetCrtcTransform where
         extensionId _ = "RANDR"
@@ -1239,7 +1239,7 @@
  
 data GetCrtcTransform = MkGetCrtcTransform{crtc_GetCrtcTransform ::
                                            CRTC}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetCrtcTransform where
         extensionId _ = "RANDR"
@@ -1270,7 +1270,7 @@
                                                      [CChar],
                                                      current_params_GetCrtcTransformReply ::
                                                      [FIXED]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetCrtcTransformReply where
         deserialize
@@ -1305,7 +1305,7 @@
                     current_params)
  
 data GetPanning = MkGetPanning{crtc_GetPanning :: CRTC}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPanning where
         extensionId _ = "RANDR"
@@ -1332,7 +1332,7 @@
                                          border_top_GetPanningReply :: Int16,
                                          border_right_GetPanningReply :: Int16,
                                          border_bottom_GetPanningReply :: Int16}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPanningReply where
         deserialize
@@ -1373,7 +1373,7 @@
                                track_height_SetPanning :: Word16, border_left_SetPanning :: Int16,
                                border_top_SetPanning :: Int16, border_right_SetPanning :: Int16,
                                border_bottom_SetPanning :: Int16}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetPanning where
         extensionId _ = "RANDR"
@@ -1414,7 +1414,7 @@
 data SetPanningReply = MkSetPanningReply{status_SetPanningReply ::
                                          SetConfig,
                                          timestamp_SetPanningReply :: TIMESTAMP}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SetPanningReply where
         deserialize
@@ -1429,7 +1429,7 @@
 data SetOutputPrimary = MkSetOutputPrimary{window_SetOutputPrimary
                                            :: WINDOW,
                                            output_SetOutputPrimary :: OUTPUT}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetOutputPrimary where
         extensionId _ = "RANDR"
@@ -1446,7 +1446,7 @@
  
 data GetOutputPrimary = MkGetOutputPrimary{window_GetOutputPrimary
                                            :: WINDOW}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetOutputPrimary where
         extensionId _ = "RANDR"
@@ -1460,7 +1460,7 @@
  
 data GetOutputPrimaryReply = MkGetOutputPrimaryReply{output_GetOutputPrimaryReply
                                                      :: OUTPUT}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetOutputPrimaryReply where
         deserialize
@@ -1488,7 +1488,7 @@
                                                          height_ScreenChangeNotifyEvent :: Word16,
                                                          mwidth_ScreenChangeNotifyEvent :: Word16,
                                                          mheight_ScreenChangeNotifyEvent :: Word16}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ScreenChangeNotifyEvent
  
@@ -1520,7 +1520,7 @@
 data Notify = NotifyCrtcChange
             | NotifyOutputChange
             | NotifyOutputProperty
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Notify where
         toValue NotifyCrtcChange{} = 0
@@ -1535,7 +1535,7 @@
                                mode_CrtcChange :: MODE, rotation_CrtcChange :: [Rotation],
                                x_CrtcChange :: Int16, y_CrtcChange :: Int16,
                                width_CrtcChange :: Word16, height_CrtcChange :: Word16}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CrtcChange where
         serialize x
@@ -1583,7 +1583,7 @@
                                    rotation_OutputChange :: [Rotation],
                                    connection_OutputChange :: Connection,
                                    subpixel_order_OutputChange :: SubPixel}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize OutputChange where
         serialize x
@@ -1629,7 +1629,7 @@
                                        output_OutputProperty :: OUTPUT, atom_OutputProperty :: ATOM,
                                        timestamp_OutputProperty :: TIMESTAMP,
                                        status_OutputProperty :: Property}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize OutputProperty where
         serialize x
@@ -1660,7 +1660,7 @@
 data NotifyData = NotifyDataCrtcChange CrtcChange
                 | NotifyDataOutputChange OutputChange
                 | NotifyDataOutputProperty OutputProperty
-     deriving (Show, Typeable)
+     deriving (Show, Typeable, Eq, Ord)
 
 instance Serialize NotifyData where
     serialize  (NotifyDataCrtcChange x) = serialize x
@@ -1683,7 +1683,7 @@
  
 data NotifyEvent = MkNotifyEvent{subCode_NotifyEvent :: Notify,
                                  u_NotifyEvent :: NotifyData}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
 
 instance Graphics.XHB.Shared.Event NotifyEvent
  
diff --git a/patched/Graphics/XHB/Gen/Record/Types.hs b/patched/Graphics/XHB/Gen/Record/Types.hs
--- a/patched/Graphics/XHB/Gen/Record/Types.hs
+++ b/patched/Graphics/XHB/Gen/Record/Types.hs
@@ -32,7 +32,7 @@
                   deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)
  
 data Range8 = MkRange8{first_Range8 :: Word8, last_Range8 :: Word8}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Range8 where
         serialize x
@@ -48,7 +48,7 @@
  
 data Range16 = MkRange16{first_Range16 :: Word16,
                          last_Range16 :: Word16}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Range16 where
         serialize x
@@ -64,7 +64,7 @@
  
 data ExtRange = MkExtRange{major_ExtRange :: Range8,
                            minor_ExtRange :: Range16}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ExtRange where
         serialize x
@@ -83,7 +83,7 @@
                      ext_replies_Range :: ExtRange, delivered_events_Range :: Range8,
                      device_events_Range :: Range8, errors_Range :: Range8,
                      client_started_Range :: Bool, client_died_Range :: Bool}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Range where
         serialize x
@@ -130,7 +130,7 @@
 data HType = HTypeFromServerTime
            | HTypeFromClientTime
            | HTypeFromClientSequence
-           deriving Show
+           deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum HType where
         toBit HTypeFromServerTime{} = 0
@@ -145,7 +145,7 @@
 data CS = CSCurrentClients
         | CSFutureClients
         | CSAllClients
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum CS where
         toValue CSCurrentClients{} = 1
@@ -158,7 +158,7 @@
 data ClientInfo = MkClientInfo{client_resource_ClientInfo ::
                                ClientSpec,
                                num_ranges_ClientInfo :: Word32, ranges_ClientInfo :: [Range]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ClientInfo where
         serialize x
@@ -179,7 +179,7 @@
  
 data BadContextError = MkBadContextError{invalid_record_BadContextError
                                          :: Word32}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadContextError
  
@@ -192,7 +192,7 @@
 data QueryVersion = MkQueryVersion{major_version_QueryVersion ::
                                    Word16,
                                    minor_version_QueryVersion :: Word16}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "RECORD"
@@ -210,7 +210,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply
                                              :: Word16,
                                              minor_version_QueryVersionReply :: Word16}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -230,7 +230,7 @@
                                      num_ranges_CreateContext :: Word32,
                                      client_specs_CreateContext :: [ClientSpec],
                                      ranges_CreateContext :: [Range]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateContext where
         extensionId _ = "RECORD"
@@ -262,7 +262,7 @@
                                          num_ranges_RegisterClients :: Word32,
                                          client_specs_RegisterClients :: [ClientSpec],
                                          ranges_RegisterClients :: [Range]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest RegisterClients where
         extensionId _ = "RECORD"
@@ -291,7 +291,7 @@
                                              :: Graphics.XHB.Gen.Record.Types.CONTEXT,
                                              num_client_specs_UnregisterClients :: Word32,
                                              client_specs_UnregisterClients :: [ClientSpec]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest UnregisterClients where
         extensionId _ = "RECORD"
@@ -310,7 +310,7 @@
  
 data GetContext = MkGetContext{context_GetContext ::
                                Graphics.XHB.Gen.Record.Types.CONTEXT}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetContext where
         extensionId _ = "RECORD"
@@ -327,7 +327,7 @@
                                          element_header_GetContextReply :: ElementHeader,
                                          num_intercepted_clients_GetContextReply :: Word32,
                                          intercepted_clients_GetContextReply :: [ClientInfo]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetContextReply where
         deserialize
@@ -348,7 +348,7 @@
  
 data EnableContext = MkEnableContext{context_EnableContext ::
                                      Graphics.XHB.Gen.Record.Types.CONTEXT}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest EnableContext where
         extensionId _ = "RECORD"
@@ -368,7 +368,7 @@
                                                server_time_EnableContextReply :: Word32,
                                                rec_sequence_num_EnableContextReply :: Word32,
                                                data_EnableContextReply :: [Word8]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize EnableContextReply where
         deserialize
@@ -394,7 +394,7 @@
  
 data DisableContext = MkDisableContext{context_DisableContext ::
                                        Graphics.XHB.Gen.Record.Types.CONTEXT}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DisableContext where
         extensionId _ = "RECORD"
@@ -408,7 +408,7 @@
  
 data FreeContext = MkFreeContext{context_FreeContext ::
                                  Graphics.XHB.Gen.Record.Types.CONTEXT}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest FreeContext where
         extensionId _ = "RECORD"
diff --git a/patched/Graphics/XHB/Gen/Render/Types.hs b/patched/Graphics/XHB/Gen/Render/Types.hs
--- a/patched/Graphics/XHB/Gen/Render/Types.hs
+++ b/patched/Graphics/XHB/Gen/Render/Types.hs
@@ -44,7 +44,7 @@
  
 data PictType = PictTypeIndexed
               | PictTypeDirect
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum PictType where
         toValue PictTypeIndexed{} = 0
@@ -53,7 +53,7 @@
         fromValue 1 = PictTypeDirect
  
 data Picture = PictureNone
-             deriving Show
+             deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Picture where
         toValue PictureNone{} = 0
@@ -97,7 +97,7 @@
             | PictOpConjointAtop
             | PictOpConjointAtopReverse
             | PictOpConjointXor
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum PictOp where
         toValue PictOpClear{} = 0
@@ -179,7 +179,7 @@
  
 data PolyEdge = PolyEdgeSharp
               | PolyEdgeSmooth
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum PolyEdge where
         toValue PolyEdgeSharp{} = 0
@@ -189,7 +189,7 @@
  
 data PolyMode = PolyModePrecise
               | PolyModeImprecise
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum PolyMode where
         toValue PolyModePrecise{} = 0
@@ -210,7 +210,7 @@
         | CPPolyMode
         | CPDither
         | CPComponentAlpha
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum CP where
         toBit CPRepeat{} = 0
@@ -246,7 +246,7 @@
               | SubPixelVerticalRGB
               | SubPixelVerticalBGR
               | SubPixelNone
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SubPixel where
         toValue SubPixelUnknown{} = 0
@@ -266,7 +266,7 @@
             | RepeatNormal
             | RepeatPad
             | RepeatReflect
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Repeat where
         toValue RepeatNone{} = 0
@@ -300,7 +300,7 @@
                                    blue_mask_DIRECTFORMAT :: Word16,
                                    alpha_shift_DIRECTFORMAT :: Word16,
                                    alpha_mask_DIRECTFORMAT :: Word16}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DIRECTFORMAT where
         serialize x
@@ -342,7 +342,7 @@
                                    type_PICTFORMINFO :: PictType, depth_PICTFORMINFO :: Word8,
                                    direct_PICTFORMINFO :: DIRECTFORMAT,
                                    colormap_PICTFORMINFO :: COLORMAP}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PICTFORMINFO where
         serialize x
@@ -371,7 +371,7 @@
  
 data PICTVISUAL = MkPICTVISUAL{visual_PICTVISUAL :: VISUALID,
                                format_PICTVISUAL :: PICTFORMAT}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PICTVISUAL where
         serialize x
@@ -387,7 +387,7 @@
  
 data PICTDEPTH = MkPICTDEPTH{depth_PICTDEPTH :: Word8,
                              num_visuals_PICTDEPTH :: Word16, visuals_PICTDEPTH :: [PICTVISUAL]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PICTDEPTH where
         serialize x
@@ -412,7 +412,7 @@
 data PICTSCREEN = MkPICTSCREEN{num_depths_PICTSCREEN :: Word32,
                                fallback_PICTSCREEN :: PICTFORMAT,
                                depths_PICTSCREEN :: [PICTDEPTH]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PICTSCREEN where
         serialize x
@@ -433,7 +433,7 @@
 data INDEXVALUE = MkINDEXVALUE{pixel_INDEXVALUE :: Word32,
                                red_INDEXVALUE :: Word16, green_INDEXVALUE :: Word16,
                                blue_INDEXVALUE :: Word16, alpha_INDEXVALUE :: Word16}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize INDEXVALUE where
         serialize x
@@ -459,7 +459,7 @@
  
 data COLOR = MkCOLOR{red_COLOR :: Word16, green_COLOR :: Word16,
                      blue_COLOR :: Word16, alpha_COLOR :: Word16}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize COLOR where
         serialize x
@@ -481,7 +481,7 @@
  
 data POINTFIX = MkPOINTFIX{x_POINTFIX :: FIXED,
                            y_POINTFIX :: FIXED}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize POINTFIX where
         serialize x
@@ -497,7 +497,7 @@
  
 data LINEFIX = MkLINEFIX{p1_LINEFIX :: POINTFIX,
                          p2_LINEFIX :: POINTFIX}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize LINEFIX where
         serialize x
@@ -513,7 +513,7 @@
  
 data TRIANGLE = MkTRIANGLE{p1_TRIANGLE :: POINTFIX,
                            p2_TRIANGLE :: POINTFIX, p3_TRIANGLE :: POINTFIX}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize TRIANGLE where
         serialize x
@@ -534,7 +534,7 @@
 data TRAPEZOID = MkTRAPEZOID{top_TRAPEZOID :: FIXED,
                              bottom_TRAPEZOID :: FIXED, left_TRAPEZOID :: LINEFIX,
                              right_TRAPEZOID :: LINEFIX}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize TRAPEZOID where
         serialize x
@@ -559,7 +559,7 @@
                              height_GLYPHINFO :: Word16, x_GLYPHINFO :: Int16,
                              y_GLYPHINFO :: Int16, x_off_GLYPHINFO :: Int16,
                              y_off_GLYPHINFO :: Int16}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GLYPHINFO where
         serialize x
@@ -589,7 +589,7 @@
 data QueryVersion = MkQueryVersion{client_major_version_QueryVersion
                                    :: Word32,
                                    client_minor_version_QueryVersion :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "RENDER"
@@ -607,7 +607,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply
                                              :: Word32,
                                              minor_version_QueryVersionReply :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -622,7 +622,7 @@
                return (MkQueryVersionReply major_version minor_version)
  
 data QueryPictFormats = MkQueryPictFormats{}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryPictFormats where
         extensionId _ = "RENDER"
@@ -643,7 +643,7 @@
                                                      [PICTFORMINFO],
                                                      screens_QueryPictFormatsReply :: [PICTSCREEN],
                                                      subpixels_QueryPictFormatsReply :: [SubPixel]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryPictFormatsReply where
         deserialize
@@ -672,7 +672,7 @@
  
 data QueryPictIndexValues = MkQueryPictIndexValues{format_QueryPictIndexValues
                                                    :: PICTFORMAT}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryPictIndexValues where
         extensionId _ = "RENDER"
@@ -688,7 +688,7 @@
                                                              :: Word32,
                                                              values_QueryPictIndexValuesReply ::
                                                              [INDEXVALUE]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryPictIndexValuesReply where
         deserialize
@@ -706,7 +706,7 @@
                                      drawable_CreatePicture :: DRAWABLE,
                                      format_CreatePicture :: PICTFORMAT,
                                      value_CreatePicture :: ValueParam Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreatePicture where
         extensionId _ = "RENDER"
@@ -727,7 +727,7 @@
 data ChangePicture = MkChangePicture{picture_ChangePicture ::
                                      PICTURE,
                                      value_ChangePicture :: ValueParam Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangePicture where
         extensionId _ = "RENDER"
@@ -749,7 +749,7 @@
                                                            Int16,
                                                            rectangles_SetPictureClipRectangles ::
                                                            [RECTANGLE]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetPictureClipRectangles where
         extensionId _ = "RENDER"
@@ -769,7 +769,7 @@
                putSkip (requiredPadding size__)
  
 data FreePicture = MkFreePicture{picture_FreePicture :: PICTURE}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest FreePicture where
         extensionId _ = "RENDER"
@@ -788,7 +788,7 @@
                              mask_y_Composite :: Int16, dst_x_Composite :: Int16,
                              dst_y_Composite :: Int16, width_Composite :: Word16,
                              height_Composite :: Word16}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Composite where
         extensionId _ = "RENDER"
@@ -827,7 +827,7 @@
                                src_Trapezoids :: PICTURE, dst_Trapezoids :: PICTURE,
                                mask_format_Trapezoids :: PICTFORMAT, src_x_Trapezoids :: Int16,
                                src_y_Trapezoids :: Int16, traps_Trapezoids :: [TRAPEZOID]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Trapezoids where
         extensionId _ = "RENDER"
@@ -856,7 +856,7 @@
                              src_Triangles :: PICTURE, dst_Triangles :: PICTURE,
                              mask_format_Triangles :: PICTFORMAT, src_x_Triangles :: Int16,
                              src_y_Triangles :: Int16, triangles_Triangles :: [TRIANGLE]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Triangles where
         extensionId _ = "RENDER"
@@ -885,7 +885,7 @@
                            src_TriStrip :: PICTURE, dst_TriStrip :: PICTURE,
                            mask_format_TriStrip :: PICTFORMAT, src_x_TriStrip :: Int16,
                            src_y_TriStrip :: Int16, points_TriStrip :: [POINTFIX]}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest TriStrip where
         extensionId _ = "RENDER"
@@ -914,7 +914,7 @@
                        dst_TriFan :: PICTURE, mask_format_TriFan :: PICTFORMAT,
                        src_x_TriFan :: Int16, src_y_TriFan :: Int16,
                        points_TriFan :: [POINTFIX]}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest TriFan where
         extensionId _ = "RENDER"
@@ -942,7 +942,7 @@
 data CreateGlyphSet = MkCreateGlyphSet{gsid_CreateGlyphSet ::
                                        GLYPHSET,
                                        format_CreateGlyphSet :: PICTFORMAT}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateGlyphSet where
         extensionId _ = "RENDER"
@@ -959,7 +959,7 @@
 data ReferenceGlyphSet = MkReferenceGlyphSet{gsid_ReferenceGlyphSet
                                              :: GLYPHSET,
                                              existing_ReferenceGlyphSet :: GLYPHSET}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ReferenceGlyphSet where
         extensionId _ = "RENDER"
@@ -976,7 +976,7 @@
  
 data FreeGlyphSet = MkFreeGlyphSet{glyphset_FreeGlyphSet ::
                                    GLYPHSET}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest FreeGlyphSet where
         extensionId _ = "RENDER"
@@ -991,7 +991,7 @@
 data AddGlyphs = MkAddGlyphs{glyphset_AddGlyphs :: GLYPHSET,
                              glyphs_len_AddGlyphs :: Word32, glyphids_AddGlyphs :: [Word32],
                              glyphs_AddGlyphs :: [GLYPHINFO], data_AddGlyphs :: [Word8]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest AddGlyphs where
         extensionId _ = "RENDER"
@@ -1013,7 +1013,7 @@
  
 data FreeGlyphs = MkFreeGlyphs{glyphset_FreeGlyphs :: GLYPHSET,
                                glyphs_FreeGlyphs :: [GLYPH]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest FreeGlyphs where
         extensionId _ = "RENDER"
@@ -1037,7 +1037,7 @@
                                            src_x_CompositeGlyphs8 :: Int16,
                                            src_y_CompositeGlyphs8 :: Int16,
                                            glyphcmds_CompositeGlyphs8 :: [Word8]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CompositeGlyphs8 where
         extensionId _ = "RENDER"
@@ -1073,7 +1073,7 @@
                                              src_x_CompositeGlyphs16 :: Int16,
                                              src_y_CompositeGlyphs16 :: Int16,
                                              glyphcmds_CompositeGlyphs16 :: [Word8]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CompositeGlyphs16 where
         extensionId _ = "RENDER"
@@ -1110,7 +1110,7 @@
                                              src_x_CompositeGlyphs32 :: Int16,
                                              src_y_CompositeGlyphs32 :: Int16,
                                              glyphcmds_CompositeGlyphs32 :: [Word8]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CompositeGlyphs32 where
         extensionId _ = "RENDER"
@@ -1141,7 +1141,7 @@
 data FillRectangles = MkFillRectangles{op_FillRectangles :: PictOp,
                                        dst_FillRectangles :: PICTURE, color_FillRectangles :: COLOR,
                                        rects_FillRectangles :: [RECTANGLE]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest FillRectangles where
         extensionId _ = "RENDER"
@@ -1163,7 +1163,7 @@
 data CreateCursor = MkCreateCursor{cid_CreateCursor :: CURSOR,
                                    source_CreateCursor :: PICTURE, x_CreateCursor :: Word16,
                                    y_CreateCursor :: Word16}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateCursor where
         extensionId _ = "RENDER"
@@ -1186,7 +1186,7 @@
                              matrix21_TRANSFORM :: FIXED, matrix22_TRANSFORM :: FIXED,
                              matrix23_TRANSFORM :: FIXED, matrix31_TRANSFORM :: FIXED,
                              matrix32_TRANSFORM :: FIXED, matrix33_TRANSFORM :: FIXED}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize TRANSFORM where
         serialize x
@@ -1229,7 +1229,7 @@
 data SetPictureTransform = MkSetPictureTransform{picture_SetPictureTransform
                                                  :: PICTURE,
                                                  transform_SetPictureTransform :: TRANSFORM}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetPictureTransform where
         extensionId _ = "RENDER"
@@ -1246,7 +1246,7 @@
  
 data QueryFilters = MkQueryFilters{drawable_QueryFilters ::
                                    DRAWABLE}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryFilters where
         extensionId _ = "RENDER"
@@ -1263,7 +1263,7 @@
                                              num_filters_QueryFiltersReply :: Word32,
                                              aliases_QueryFiltersReply :: [Word16],
                                              filters_QueryFiltersReply :: [STR]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryFiltersReply where
         deserialize
@@ -1285,7 +1285,7 @@
                                            filter_len_SetPictureFilter :: Word16,
                                            filter_SetPictureFilter :: [CChar],
                                            values_SetPictureFilter :: [FIXED]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetPictureFilter where
         extensionId _ = "RENDER"
@@ -1309,7 +1309,7 @@
 data ANIMCURSORELT = MkANIMCURSORELT{cursor_ANIMCURSORELT ::
                                      CURSOR,
                                      delay_ANIMCURSORELT :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ANIMCURSORELT where
         serialize x
@@ -1327,7 +1327,7 @@
 data CreateAnimCursor = MkCreateAnimCursor{cid_CreateAnimCursor ::
                                            CURSOR,
                                            cursors_CreateAnimCursor :: [ANIMCURSORELT]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateAnimCursor where
         extensionId _ = "RENDER"
@@ -1344,7 +1344,7 @@
  
 data SPANFIX = MkSPANFIX{l_SPANFIX :: FIXED, r_SPANFIX :: FIXED,
                          y_SPANFIX :: FIXED}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SPANFIX where
         serialize x
@@ -1362,7 +1362,7 @@
                return (MkSPANFIX l r y)
  
 data TRAP = MkTRAP{top_TRAP :: SPANFIX, bot_TRAP :: SPANFIX}
-          deriving (Show, Typeable)
+          deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize TRAP where
         serialize x
@@ -1379,7 +1379,7 @@
 data AddTraps = MkAddTraps{picture_AddTraps :: PICTURE,
                            x_off_AddTraps :: Int16, y_off_AddTraps :: Int16,
                            traps_AddTraps :: [TRAP]}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest AddTraps where
         extensionId _ = "RENDER"
@@ -1400,7 +1400,7 @@
 data CreateSolidFill = MkCreateSolidFill{picture_CreateSolidFill ::
                                          PICTURE,
                                          color_CreateSolidFill :: COLOR}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateSolidFill where
         extensionId _ = "RENDER"
@@ -1422,7 +1422,7 @@
                                                    num_stops_CreateLinearGradient :: Word32,
                                                    stops_CreateLinearGradient :: [FIXED],
                                                    colors_CreateLinearGradient :: [COLOR]}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateLinearGradient where
         extensionId _ = "RENDER"
@@ -1454,7 +1454,7 @@
                                                    num_stops_CreateRadialGradient :: Word32,
                                                    stops_CreateRadialGradient :: [FIXED],
                                                    colors_CreateRadialGradient :: [COLOR]}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateRadialGradient where
         extensionId _ = "RENDER"
@@ -1488,7 +1488,7 @@
                                                      num_stops_CreateConicalGradient :: Word32,
                                                      stops_CreateConicalGradient :: [FIXED],
                                                      colors_CreateConicalGradient :: [COLOR]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateConicalGradient where
         extensionId _ = "RENDER"
diff --git a/patched/Graphics/XHB/Gen/Res/Types.hs b/patched/Graphics/XHB/Gen/Res/Types.hs
--- a/patched/Graphics/XHB/Gen/Res/Types.hs
+++ b/patched/Graphics/XHB/Gen/Res/Types.hs
@@ -29,7 +29,7 @@
  
 data Client = MkClient{resource_base_Client :: Word32,
                        resource_mask_Client :: Word32}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Client where
         serialize x
@@ -46,7 +46,7 @@
  
 data Type = MkType{resource_type_Type :: ATOM,
                    count_Type :: Word32}
-          deriving (Show, Typeable)
+          deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Type where
         serialize x
@@ -63,7 +63,7 @@
 data QueryVersion = MkQueryVersion{client_major_QueryVersion ::
                                    Word8,
                                    client_minor_QueryVersion :: Word8}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "X-Resource"
@@ -81,7 +81,7 @@
 data QueryVersionReply = MkQueryVersionReply{server_major_QueryVersionReply
                                              :: Word16,
                                              server_minor_QueryVersionReply :: Word16}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -95,7 +95,7 @@
                return (MkQueryVersionReply server_major server_minor)
  
 data QueryClients = MkQueryClients{}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryClients where
         extensionId _ = "X-Resource"
@@ -109,7 +109,7 @@
 data QueryClientsReply = MkQueryClientsReply{num_clients_QueryClientsReply
                                              :: Word32,
                                              clients_QueryClientsReply :: [Client]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryClientsReply where
         deserialize
@@ -125,7 +125,7 @@
  
 data QueryClientResources = MkQueryClientResources{xid_QueryClientResources
                                                    :: Word32}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryClientResources where
         extensionId _ = "X-Resource"
@@ -141,7 +141,7 @@
                                                              :: Word32,
                                                              types_QueryClientResourcesReply ::
                                                              [Type]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryClientResourcesReply where
         deserialize
@@ -157,7 +157,7 @@
  
 data QueryClientPixmapBytes = MkQueryClientPixmapBytes{xid_QueryClientPixmapBytes
                                                        :: Word32}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryClientPixmapBytes where
         extensionId _ = "X-Resource"
@@ -173,7 +173,7 @@
                                                                  :: Word32,
                                                                  bytes_overflow_QueryClientPixmapBytesReply
                                                                  :: Word32}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryClientPixmapBytesReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/SELinux/Types.hs b/patched/Graphics/XHB/Gen/SELinux/Types.hs
--- a/patched/Graphics/XHB/Gen/SELinux/Types.hs
+++ b/patched/Graphics/XHB/Gen/SELinux/Types.hs
@@ -46,7 +46,7 @@
 data QueryVersion = MkQueryVersion{client_major_QueryVersion ::
                                    Word8,
                                    client_minor_QueryVersion :: Word8}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "SELinux"
@@ -64,7 +64,7 @@
 data QueryVersionReply = MkQueryVersionReply{server_major_QueryVersionReply
                                              :: Word16,
                                              server_minor_QueryVersionReply :: Word16}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -80,7 +80,7 @@
 data SetDeviceCreateContext = MkSetDeviceCreateContext{context_len_SetDeviceCreateContext
                                                        :: Word32,
                                                        context_SetDeviceCreateContext :: [CChar]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetDeviceCreateContext where
         extensionId _ = "SELinux"
@@ -96,7 +96,7 @@
                putSkip (requiredPadding size__)
  
 data GetDeviceCreateContext = MkGetDeviceCreateContext{}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDeviceCreateContext where
         extensionId _ = "SELinux"
@@ -111,7 +111,7 @@
                                                                  :: Word32,
                                                                  context_GetDeviceCreateContextReply
                                                                  :: [CChar]}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDeviceCreateContextReply where
         deserialize
@@ -129,7 +129,7 @@
                                            :: Word32,
                                            context_len_SetDeviceContext :: Word32,
                                            context_SetDeviceContext :: [CChar]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetDeviceContext where
         extensionId _ = "SELinux"
@@ -148,7 +148,7 @@
  
 data GetDeviceContext = MkGetDeviceContext{device_GetDeviceContext
                                            :: Word32}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDeviceContext where
         extensionId _ = "SELinux"
@@ -163,7 +163,7 @@
 data GetDeviceContextReply = MkGetDeviceContextReply{context_len_GetDeviceContextReply
                                                      :: Word32,
                                                      context_GetDeviceContextReply :: [CChar]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDeviceContextReply where
         deserialize
@@ -180,7 +180,7 @@
 data SetWindowCreateContext = MkSetWindowCreateContext{context_len_SetWindowCreateContext
                                                        :: Word32,
                                                        context_SetWindowCreateContext :: [CChar]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetWindowCreateContext where
         extensionId _ = "SELinux"
@@ -196,7 +196,7 @@
                putSkip (requiredPadding size__)
  
 data GetWindowCreateContext = MkGetWindowCreateContext{}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetWindowCreateContext where
         extensionId _ = "SELinux"
@@ -211,7 +211,7 @@
                                                                  :: Word32,
                                                                  context_GetWindowCreateContextReply
                                                                  :: [CChar]}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetWindowCreateContextReply where
         deserialize
@@ -227,7 +227,7 @@
  
 data GetWindowContext = MkGetWindowContext{window_GetWindowContext
                                            :: WINDOW}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetWindowContext where
         extensionId _ = "SELinux"
@@ -242,7 +242,7 @@
 data GetWindowContextReply = MkGetWindowContextReply{context_len_GetWindowContextReply
                                                      :: Word32,
                                                      context_GetWindowContextReply :: [CChar]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetWindowContextReply where
         deserialize
@@ -261,7 +261,7 @@
                            data_context_len_ListItem :: Word32,
                            object_context_ListItem :: [CChar],
                            data_context_ListItem :: [CChar]}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ListItem where
         serialize x
@@ -291,7 +291,7 @@
                                                            :: Word32,
                                                            context_SetPropertyCreateContext ::
                                                            [CChar]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetPropertyCreateContext where
         extensionId _ = "SELinux"
@@ -307,7 +307,7 @@
                putSkip (requiredPadding size__)
  
 data GetPropertyCreateContext = MkGetPropertyCreateContext{}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPropertyCreateContext where
         extensionId _ = "SELinux"
@@ -322,7 +322,7 @@
                                                                      :: Word32,
                                                                      context_GetPropertyCreateContextReply
                                                                      :: [CChar]}
-                                   deriving (Show, Typeable)
+                                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPropertyCreateContextReply where
         deserialize
@@ -339,7 +339,7 @@
 data SetPropertyUseContext = MkSetPropertyUseContext{context_len_SetPropertyUseContext
                                                      :: Word32,
                                                      context_SetPropertyUseContext :: [CChar]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetPropertyUseContext where
         extensionId _ = "SELinux"
@@ -355,7 +355,7 @@
                putSkip (requiredPadding size__)
  
 data GetPropertyUseContext = MkGetPropertyUseContext{}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPropertyUseContext where
         extensionId _ = "SELinux"
@@ -370,7 +370,7 @@
                                                                :: Word32,
                                                                context_GetPropertyUseContextReply ::
                                                                [CChar]}
-                                deriving (Show, Typeable)
+                                deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPropertyUseContextReply where
         deserialize
@@ -387,7 +387,7 @@
 data GetPropertyContext = MkGetPropertyContext{window_GetPropertyContext
                                                :: WINDOW,
                                                property_GetPropertyContext :: ATOM}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPropertyContext where
         extensionId _ = "SELinux"
@@ -405,7 +405,7 @@
 data GetPropertyContextReply = MkGetPropertyContextReply{context_len_GetPropertyContextReply
                                                          :: Word32,
                                                          context_GetPropertyContextReply :: [CChar]}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPropertyContextReply where
         deserialize
@@ -422,7 +422,7 @@
 data GetPropertyDataContext = MkGetPropertyDataContext{window_GetPropertyDataContext
                                                        :: WINDOW,
                                                        property_GetPropertyDataContext :: ATOM}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPropertyDataContext where
         extensionId _ = "SELinux"
@@ -441,7 +441,7 @@
                                                                  :: Word32,
                                                                  context_GetPropertyDataContextReply
                                                                  :: [CChar]}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPropertyDataContextReply where
         deserialize
@@ -457,7 +457,7 @@
  
 data ListProperties = MkListProperties{window_ListProperties ::
                                        WINDOW}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ListProperties where
         extensionId _ = "SELinux"
@@ -472,7 +472,7 @@
 data ListPropertiesReply = MkListPropertiesReply{properties_len_ListPropertiesReply
                                                  :: Word32,
                                                  properties_ListPropertiesReply :: [ListItem]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListPropertiesReply where
         deserialize
@@ -490,7 +490,7 @@
                                                              :: Word32,
                                                              context_SetSelectionCreateContext ::
                                                              [CChar]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetSelectionCreateContext where
         extensionId _ = "SELinux"
@@ -506,7 +506,7 @@
                putSkip (requiredPadding size__)
  
 data GetSelectionCreateContext = MkGetSelectionCreateContext{}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetSelectionCreateContext where
         extensionId _ = "SELinux"
@@ -521,7 +521,7 @@
                                                                        :: Word32,
                                                                        context_GetSelectionCreateContextReply
                                                                        :: [CChar]}
-                                    deriving (Show, Typeable)
+                                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetSelectionCreateContextReply where
         deserialize
@@ -538,7 +538,7 @@
 data SetSelectionUseContext = MkSetSelectionUseContext{context_len_SetSelectionUseContext
                                                        :: Word32,
                                                        context_SetSelectionUseContext :: [CChar]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetSelectionUseContext where
         extensionId _ = "SELinux"
@@ -554,7 +554,7 @@
                putSkip (requiredPadding size__)
  
 data GetSelectionUseContext = MkGetSelectionUseContext{}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetSelectionUseContext where
         extensionId _ = "SELinux"
@@ -569,7 +569,7 @@
                                                                  :: Word32,
                                                                  context_GetSelectionUseContextReply
                                                                  :: [CChar]}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetSelectionUseContextReply where
         deserialize
@@ -585,7 +585,7 @@
  
 data GetSelectionContext = MkGetSelectionContext{selection_GetSelectionContext
                                                  :: ATOM}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetSelectionContext where
         extensionId _ = "SELinux"
@@ -601,7 +601,7 @@
                                                            :: Word32,
                                                            context_GetSelectionContextReply ::
                                                            [CChar]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetSelectionContextReply where
         deserialize
@@ -617,7 +617,7 @@
  
 data GetSelectionDataContext = MkGetSelectionDataContext{selection_GetSelectionDataContext
                                                          :: ATOM}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetSelectionDataContext where
         extensionId _ = "SELinux"
@@ -633,7 +633,7 @@
                                                                    :: Word32,
                                                                    context_GetSelectionDataContextReply
                                                                    :: [CChar]}
-                                  deriving (Show, Typeable)
+                                  deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetSelectionDataContextReply where
         deserialize
@@ -648,7 +648,7 @@
                return (MkGetSelectionDataContextReply context_len context)
  
 data ListSelections = MkListSelections{}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ListSelections where
         extensionId _ = "SELinux"
@@ -662,7 +662,7 @@
 data ListSelectionsReply = MkListSelectionsReply{selections_len_ListSelectionsReply
                                                  :: Word32,
                                                  selections_ListSelectionsReply :: [ListItem]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListSelectionsReply where
         deserialize
@@ -678,7 +678,7 @@
  
 data GetClientContext = MkGetClientContext{resource_GetClientContext
                                            :: Word32}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetClientContext where
         extensionId _ = "SELinux"
@@ -693,7 +693,7 @@
 data GetClientContextReply = MkGetClientContextReply{context_len_GetClientContextReply
                                                      :: Word32,
                                                      context_GetClientContextReply :: [CChar]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetClientContextReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/ScreenSaver/Types.hs b/patched/Graphics/XHB/Gen/ScreenSaver/Types.hs
--- a/patched/Graphics/XHB/Gen/ScreenSaver/Types.hs
+++ b/patched/Graphics/XHB/Gen/ScreenSaver/Types.hs
@@ -31,7 +31,7 @@
 data Kind = KindBlanked
           | KindInternal
           | KindExternal
-          deriving Show
+          deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Kind where
         toValue KindBlanked{} = 0
@@ -43,7 +43,7 @@
  
 data Event = EventNotifyMask
            | EventCycleMask
-           deriving Show
+           deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum Event where
         toBit EventNotifyMask{} = 0
@@ -55,7 +55,7 @@
            | StateOn
            | StateCycle
            | StateDisabled
-           deriving Show
+           deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum State where
         toValue StateOff{} = 0
@@ -70,7 +70,7 @@
 data QueryVersion = MkQueryVersion{client_major_version_QueryVersion
                                    :: Word8,
                                    client_minor_version_QueryVersion :: Word8}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "MIT-SCREEN-SAVER"
@@ -90,7 +90,7 @@
 data QueryVersionReply = MkQueryVersionReply{server_major_version_QueryVersionReply
                                              :: Word16,
                                              server_minor_version_QueryVersionReply :: Word16}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -106,7 +106,7 @@
                  (MkQueryVersionReply server_major_version server_minor_version)
  
 data QueryInfo = MkQueryInfo{drawable_QueryInfo :: DRAWABLE}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryInfo where
         extensionId _ = "MIT-SCREEN-SAVER"
@@ -125,7 +125,7 @@
                                        ms_since_user_input_QueryInfoReply :: Word32,
                                        event_mask_QueryInfoReply :: Word32,
                                        kind_QueryInfoReply :: Word8}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryInfoReply where
         deserialize
@@ -148,7 +148,7 @@
  
 data SelectInput = MkSelectInput{drawable_SelectInput :: DRAWABLE,
                                  event_mask_SelectInput :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SelectInput where
         extensionId _ = "MIT-SCREEN-SAVER"
@@ -171,7 +171,7 @@
                                      class_SetAttributes :: Word8, depth_SetAttributes :: Word8,
                                      visual_SetAttributes :: VISUALID,
                                      value_SetAttributes :: ValueParam Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetAttributes where
         extensionId _ = "MIT-SCREEN-SAVER"
@@ -203,7 +203,7 @@
  
 data UnsetAttributes = MkUnsetAttributes{drawable_UnsetAttributes
                                          :: DRAWABLE}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest UnsetAttributes where
         extensionId _ = "MIT-SCREEN-SAVER"
@@ -216,7 +216,7 @@
                putSkip (requiredPadding size__)
  
 data Suspend = MkSuspend{suspend_Suspend :: Bool}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Suspend where
         extensionId _ = "MIT-SCREEN-SAVER"
@@ -234,7 +234,7 @@
                                  time_NotifyEvent :: TIMESTAMP, root_NotifyEvent :: WINDOW,
                                  window_NotifyEvent :: WINDOW, kind_NotifyEvent :: Word8,
                                  forced_NotifyEvent :: Bool}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event NotifyEvent
  
diff --git a/patched/Graphics/XHB/Gen/Shape/Types.hs b/patched/Graphics/XHB/Gen/Shape/Types.hs
--- a/patched/Graphics/XHB/Gen/Shape/Types.hs
+++ b/patched/Graphics/XHB/Gen/Shape/Types.hs
@@ -39,7 +39,7 @@
         | SOIntersect
         | SOSubtract
         | SOInvert
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SO where
         toValue SOSet{} = 0
@@ -56,7 +56,7 @@
 data SK = SKBounding
         | SKClip
         | SKInput
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SK where
         toValue SKBounding{} = 0
@@ -72,7 +72,7 @@
                                  extents_width_NotifyEvent :: Word16,
                                  extents_height_NotifyEvent :: Word16,
                                  server_time_NotifyEvent :: TIMESTAMP, shaped_NotifyEvent :: Bool}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event NotifyEvent
  
@@ -97,7 +97,7 @@
                     shaped)
  
 data QueryVersion = MkQueryVersion{}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "SHAPE"
@@ -111,7 +111,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply
                                              :: Word16,
                                              minor_version_QueryVersionReply :: Word16}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -130,7 +130,7 @@
                                destination_window_Rectangles :: WINDOW,
                                x_offset_Rectangles :: Int16, y_offset_Rectangles :: Int16,
                                rectangles_Rectangles :: [RECTANGLE]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Rectangles where
         extensionId _ = "SHAPE"
@@ -160,7 +160,7 @@
                    destination_kind_Mask :: SK, destination_window_Mask :: WINDOW,
                    x_offset_Mask :: Int16, y_offset_Mask :: Int16,
                    source_bitmap_Mask :: PIXMAP}
-          deriving (Show, Typeable)
+          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Mask where
         extensionId _ = "SHAPE"
@@ -187,7 +187,7 @@
                          destination_kind_Combine :: SK, source_kind_Combine :: SK,
                          destination_window_Combine :: WINDOW, x_offset_Combine :: Int16,
                          y_offset_Combine :: Int16, source_window_Combine :: WINDOW}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Combine where
         extensionId _ = "SHAPE"
@@ -216,7 +216,7 @@
 data Offset = MkOffset{destination_kind_Offset :: SK,
                        destination_window_Offset :: WINDOW, x_offset_Offset :: Int16,
                        y_offset_Offset :: Int16}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Offset where
         extensionId _ = "SHAPE"
@@ -238,7 +238,7 @@
  
 data QueryExtents = MkQueryExtents{destination_window_QueryExtents
                                    :: WINDOW}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryExtents where
         extensionId _ = "SHAPE"
@@ -263,7 +263,7 @@
                                              clip_shape_extents_y_QueryExtentsReply :: Int16,
                                              clip_shape_extents_width_QueryExtentsReply :: Word16,
                                              clip_shape_extents_height_QueryExtentsReply :: Word16}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryExtentsReply where
         deserialize
@@ -297,7 +297,7 @@
 data SelectInput = MkSelectInput{destination_window_SelectInput ::
                                  WINDOW,
                                  enable_SelectInput :: Bool}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SelectInput where
         extensionId _ = "SHAPE"
@@ -316,7 +316,7 @@
  
 data InputSelected = MkInputSelected{destination_window_InputSelected
                                      :: WINDOW}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest InputSelected where
         extensionId _ = "SHAPE"
@@ -330,7 +330,7 @@
  
 data InputSelectedReply = MkInputSelectedReply{enabled_InputSelectedReply
                                                :: Bool}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize InputSelectedReply where
         deserialize
@@ -344,7 +344,7 @@
 data GetRectangles = MkGetRectangles{window_GetRectangles ::
                                      WINDOW,
                                      source_kind_GetRectangles :: SK}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetRectangles where
         extensionId _ = "SHAPE"
@@ -363,7 +363,7 @@
                                                :: ClipOrdering,
                                                rectangles_len_GetRectanglesReply :: Word32,
                                                rectangles_GetRectanglesReply :: [RECTANGLE]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetRectanglesReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/Shm/Types.hs b/patched/Graphics/XHB/Gen/Shm/Types.hs
--- a/patched/Graphics/XHB/Gen/Shm/Types.hs
+++ b/patched/Graphics/XHB/Gen/Shm/Types.hs
@@ -40,7 +40,7 @@
                                          major_event_CompletionEvent :: Word8,
                                          shmseg_CompletionEvent :: SEG,
                                          offset_CompletionEvent :: Word32}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event CompletionEvent
  
@@ -61,7 +61,7 @@
 data BadSegError = MkBadSegError{bad_value_BadSegError :: Word32,
                                  minor_opcode_BadSegError :: Word16,
                                  major_opcode_BadSegError :: Word8}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error BadSegError
  
@@ -75,7 +75,7 @@
                return (MkBadSegError bad_value minor_opcode major_opcode)
  
 data QueryVersion = MkQueryVersion{}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "MIT-SHM"
@@ -93,7 +93,7 @@
                                              uid_QueryVersionReply :: Word16,
                                              gid_QueryVersionReply :: Word16,
                                              pixmap_format_QueryVersionReply :: Word8}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -115,7 +115,7 @@
  
 data Attach = MkAttach{shmseg_Attach :: SEG,
                        shmid_Attach :: Word32, read_only_Attach :: Bool}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Attach where
         extensionId _ = "MIT-SHM"
@@ -134,7 +134,7 @@
                putSkip (requiredPadding size__)
  
 data Detach = MkDetach{shmseg_Detach :: SEG}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Detach where
         extensionId _ = "MIT-SHM"
@@ -154,7 +154,7 @@
                            dst_y_PutImage :: Int16, depth_PutImage :: Word8,
                            format_PutImage :: Word8, send_event_PutImage :: Word8,
                            shmseg_PutImage :: SEG, offset_PutImage :: Word32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PutImage where
         extensionId _ = "MIT-SHM"
@@ -201,7 +201,7 @@
                            height_GetImage :: Word16, plane_mask_GetImage :: Word32,
                            format_GetImage :: Word8, shmseg_GetImage :: SEG,
                            offset_GetImage :: Word32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetImage where
         extensionId _ = "MIT-SHM"
@@ -233,7 +233,7 @@
  
 data GetImageReply = MkGetImageReply{depth_GetImageReply :: Word8,
                                      visual_GetImageReply :: VISUALID, size_GetImageReply :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetImageReply where
         deserialize
@@ -250,7 +250,7 @@
                                    drawable_CreatePixmap :: DRAWABLE, width_CreatePixmap :: Word16,
                                    height_CreatePixmap :: Word16, depth_CreatePixmap :: Word8,
                                    shmseg_CreatePixmap :: SEG, offset_CreatePixmap :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreatePixmap where
         extensionId _ = "MIT-SHM"
diff --git a/patched/Graphics/XHB/Gen/Sync/Types.hs b/patched/Graphics/XHB/Gen/Sync/Types.hs
--- a/patched/Graphics/XHB/Gen/Sync/Types.hs
+++ b/patched/Graphics/XHB/Gen/Sync/Types.hs
@@ -47,7 +47,7 @@
 data ALARMSTATE = ALARMSTATEActive
                 | ALARMSTATEInactive
                 | ALARMSTATEDestroyed
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ALARMSTATE where
         toValue ALARMSTATEActive{} = 0
@@ -64,7 +64,7 @@
               | TESTTYPENegativeTransition
               | TESTTYPEPositiveComparison
               | TESTTYPENegativeComparison
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum TESTTYPE where
         toValue TESTTYPEPositiveTransition{} = 0
@@ -78,7 +78,7 @@
  
 data VALUETYPE = VALUETYPEAbsolute
                | VALUETYPERelative
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum VALUETYPE where
         toValue VALUETYPEAbsolute{} = 0
@@ -92,7 +92,7 @@
         | CATestType
         | CADelta
         | CAEvents
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum CA where
         toBit CACounter{} = 0
@@ -109,7 +109,7 @@
         fromBit 5 = CAEvents
  
 data INT64 = MkINT64{hi_INT64 :: Int32, lo_INT64 :: Word32}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize INT64 where
         serialize x
@@ -128,7 +128,7 @@
                                      resolution_SYSTEMCOUNTER :: INT64,
                                      name_len_SYSTEMCOUNTER :: Word16,
                                      name_SYSTEMCOUNTER :: [CChar]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SYSTEMCOUNTER where
         serialize x
@@ -153,7 +153,7 @@
 data TRIGGER = MkTRIGGER{counter_TRIGGER :: COUNTER,
                          wait_type_TRIGGER :: VALUETYPE, wait_value_TRIGGER :: INT64,
                          test_type_TRIGGER :: TESTTYPE}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize TRIGGER where
         serialize x
@@ -177,7 +177,7 @@
 data WAITCONDITION = MkWAITCONDITION{trigger_WAITCONDITION ::
                                      TRIGGER,
                                      event_threshold_WAITCONDITION :: INT64}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize WAITCONDITION where
         serialize x
@@ -197,7 +197,7 @@
                                    Word32,
                                    minor_opcode_CounterError :: Word16,
                                    major_opcode_CounterError :: Word8}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error CounterError
  
@@ -212,7 +212,7 @@
 data AlarmError = MkAlarmError{bad_alarm_AlarmError :: Word32,
                                minor_opcode_AlarmError :: Word16,
                                major_opcode_AlarmError :: Word8}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error AlarmError
  
@@ -227,7 +227,7 @@
 data Initialize = MkInitialize{desired_major_version_Initialize ::
                                Word8,
                                desired_minor_version_Initialize :: Word8}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Initialize where
         extensionId _ = "SYNC"
@@ -245,7 +245,7 @@
 data InitializeReply = MkInitializeReply{major_version_InitializeReply
                                          :: Word8,
                                          minor_version_InitializeReply :: Word8}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize InitializeReply where
         deserialize
@@ -260,7 +260,7 @@
                return (MkInitializeReply major_version minor_version)
  
 data ListSystemCounters = MkListSystemCounters{}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ListSystemCounters where
         extensionId _ = "SYNC"
@@ -275,7 +275,7 @@
                                                          :: Word32,
                                                          counters_ListSystemCountersReply ::
                                                          [SYSTEMCOUNTER]}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListSystemCountersReply where
         deserialize
@@ -291,7 +291,7 @@
  
 data CreateCounter = MkCreateCounter{id_CreateCounter :: COUNTER,
                                      initial_value_CreateCounter :: INT64}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateCounter where
         extensionId _ = "SYNC"
@@ -308,7 +308,7 @@
  
 data DestroyCounter = MkDestroyCounter{counter_DestroyCounter ::
                                        COUNTER}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyCounter where
         extensionId _ = "SYNC"
@@ -321,7 +321,7 @@
                putSkip (requiredPadding size__)
  
 data QueryCounter = MkQueryCounter{counter_QueryCounter :: COUNTER}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryCounter where
         extensionId _ = "SYNC"
@@ -335,7 +335,7 @@
  
 data QueryCounterReply = MkQueryCounterReply{counter_value_QueryCounterReply
                                              :: INT64}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryCounterReply where
         deserialize
@@ -348,7 +348,7 @@
                return (MkQueryCounterReply counter_value)
  
 data Await = MkAwait{wait_list_Await :: [WAITCONDITION]}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Await where
         extensionId _ = "SYNC"
@@ -363,7 +363,7 @@
 data ChangeCounter = MkChangeCounter{counter_ChangeCounter ::
                                      COUNTER,
                                      amount_ChangeCounter :: INT64}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangeCounter where
         extensionId _ = "SYNC"
@@ -380,7 +380,7 @@
  
 data SetCounter = MkSetCounter{counter_SetCounter :: COUNTER,
                                value_SetCounter :: INT64}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetCounter where
         extensionId _ = "SYNC"
@@ -396,7 +396,7 @@
  
 data CreateAlarm = MkCreateAlarm{id_CreateAlarm :: ALARM,
                                  value_CreateAlarm :: ValueParam Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateAlarm where
         extensionId _ = "SYNC"
@@ -412,7 +412,7 @@
  
 data ChangeAlarm = MkChangeAlarm{id_ChangeAlarm :: ALARM,
                                  value_ChangeAlarm :: ValueParam Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangeAlarm where
         extensionId _ = "SYNC"
@@ -427,7 +427,7 @@
                putSkip (requiredPadding size__)
  
 data DestroyAlarm = MkDestroyAlarm{alarm_DestroyAlarm :: ALARM}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyAlarm where
         extensionId _ = "SYNC"
@@ -440,7 +440,7 @@
                putSkip (requiredPadding size__)
  
 data QueryAlarm = MkQueryAlarm{alarm_QueryAlarm :: ALARM}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryAlarm where
         extensionId _ = "SYNC"
@@ -457,7 +457,7 @@
                                          delta_QueryAlarmReply :: INT64,
                                          events_QueryAlarmReply :: Bool,
                                          state_QueryAlarmReply :: ALARMSTATE}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryAlarmReply where
         deserialize
@@ -475,7 +475,7 @@
  
 data SetPriority = MkSetPriority{id_SetPriority :: Word32,
                                  priority_SetPriority :: Int32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetPriority where
         extensionId _ = "SYNC"
@@ -490,7 +490,7 @@
                putSkip (requiredPadding size__)
  
 data GetPriority = MkGetPriority{id_GetPriority :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPriority where
         extensionId _ = "SYNC"
@@ -504,7 +504,7 @@
  
 data GetPriorityReply = MkGetPriorityReply{priority_GetPriorityReply
                                            :: Int32}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPriorityReply where
         deserialize
@@ -524,7 +524,7 @@
                                                timestamp_CounterNotifyEvent :: TIMESTAMP,
                                                count_CounterNotifyEvent :: Word16,
                                                destroyed_CounterNotifyEvent :: Bool}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event CounterNotifyEvent
  
@@ -553,7 +553,7 @@
                                            alarm_value_AlarmNotifyEvent :: INT64,
                                            timestamp_AlarmNotifyEvent :: TIMESTAMP,
                                            state_AlarmNotifyEvent :: ALARMSTATE}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event AlarmNotifyEvent
  
diff --git a/patched/Graphics/XHB/Gen/Test/Types.hs b/patched/Graphics/XHB/Gen/Test/Types.hs
--- a/patched/Graphics/XHB/Gen/Test/Types.hs
+++ b/patched/Graphics/XHB/Gen/Test/Types.hs
@@ -27,7 +27,7 @@
  
 data GetVersion = MkGetVersion{major_version_GetVersion :: Word8,
                                minor_version_GetVersion :: Word16}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetVersion where
         extensionId _ = "XTEST"
@@ -46,7 +46,7 @@
 data GetVersionReply = MkGetVersionReply{major_version_GetVersionReply
                                          :: Word8,
                                          minor_version_GetVersionReply :: Word16}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetVersionReply where
         deserialize
@@ -60,7 +60,7 @@
  
 data Cursor = CursorNone
             | CursorCurrent
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Cursor where
         toValue CursorNone{} = 0
@@ -71,7 +71,7 @@
 data CompareCursor = MkCompareCursor{window_CompareCursor ::
                                      WINDOW,
                                      cursor_CompareCursor :: CURSOR}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CompareCursor where
         extensionId _ = "XTEST"
@@ -87,7 +87,7 @@
  
 data CompareCursorReply = MkCompareCursorReply{same_CompareCursorReply
                                                :: Bool}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize CompareCursorReply where
         deserialize
@@ -102,7 +102,7 @@
                              detail_FakeInput :: Word8, time_FakeInput :: Word32,
                              root_FakeInput :: WINDOW, rootX_FakeInput :: Word16,
                              rootY_FakeInput :: Word16, deviceid_FakeInput :: Word8}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest FakeInput where
         extensionId _ = "XTEST"
@@ -132,7 +132,7 @@
                putSkip (requiredPadding size__)
  
 data GrabControl = MkGrabControl{impervious_GrabControl :: Bool}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GrabControl where
         extensionId _ = "XTEST"
diff --git a/patched/Graphics/XHB/Gen/XCMisc/Types.hs b/patched/Graphics/XHB/Gen/XCMisc/Types.hs
--- a/patched/Graphics/XHB/Gen/XCMisc/Types.hs
+++ b/patched/Graphics/XHB/Gen/XCMisc/Types.hs
@@ -25,7 +25,7 @@
 data GetVersion = MkGetVersion{client_major_version_GetVersion ::
                                Word16,
                                client_minor_version_GetVersion :: Word16}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetVersion where
         extensionId _ = "XC-MISC"
@@ -43,7 +43,7 @@
 data GetVersionReply = MkGetVersionReply{server_major_version_GetVersionReply
                                          :: Word16,
                                          server_minor_version_GetVersionReply :: Word16}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetVersionReply where
         deserialize
@@ -58,7 +58,7 @@
                  (MkGetVersionReply server_major_version server_minor_version)
  
 data GetXIDRange = MkGetXIDRange{}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetXIDRange where
         extensionId _ = "XC-MISC"
@@ -72,7 +72,7 @@
 data GetXIDRangeReply = MkGetXIDRangeReply{start_id_GetXIDRangeReply
                                            :: Word32,
                                            count_GetXIDRangeReply :: Word32}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetXIDRangeReply where
         deserialize
@@ -86,7 +86,7 @@
                return (MkGetXIDRangeReply start_id count)
  
 data GetXIDList = MkGetXIDList{count_GetXIDList :: Word32}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetXIDList where
         extensionId _ = "XC-MISC"
@@ -101,7 +101,7 @@
 data GetXIDListReply = MkGetXIDListReply{ids_len_GetXIDListReply ::
                                          Word32,
                                          ids_GetXIDListReply :: [Word32]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetXIDListReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/XF86Dri/Types.hs b/patched/Graphics/XHB/Gen/XF86Dri/Types.hs
--- a/patched/Graphics/XHB/Gen/XF86Dri/Types.hs
+++ b/patched/Graphics/XHB/Gen/XF86Dri/Types.hs
@@ -33,7 +33,7 @@
 data DrmClipRect = MkDrmClipRect{x1_DrmClipRect :: Int16,
                                  y1_DrmClipRect :: Int16, x2_DrmClipRect :: Int16,
                                  x3_DrmClipRect :: Int16}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DrmClipRect where
         serialize x
@@ -55,7 +55,7 @@
                return (MkDrmClipRect x1 y1 x2 x3)
  
 data QueryVersion = MkQueryVersion{}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "XFree86-DRI"
@@ -70,7 +70,7 @@
                                              :: Word16,
                                              dri_minor_version_QueryVersionReply :: Word16,
                                              dri_minor_patch_QueryVersionReply :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -88,7 +88,7 @@
  
 data QueryDirectRenderingCapable = MkQueryDirectRenderingCapable{screen_QueryDirectRenderingCapable
                                                                  :: Word32}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryDirectRenderingCapable where
         extensionId _ = "XFree86-DRI"
@@ -102,7 +102,7 @@
  
 data QueryDirectRenderingCapableReply = MkQueryDirectRenderingCapableReply{is_capable_QueryDirectRenderingCapableReply
                                                                            :: Bool}
-                                      deriving (Show, Typeable)
+                                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryDirectRenderingCapableReply where
         deserialize
@@ -116,7 +116,7 @@
  
 data OpenConnection = MkOpenConnection{screen_OpenConnection ::
                                        Word32}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest OpenConnection where
         extensionId _ = "XFree86-DRI"
@@ -133,7 +133,7 @@
                                                  sarea_handle_high_OpenConnectionReply :: Word32,
                                                  bus_id_len_OpenConnectionReply :: Word32,
                                                  bus_id_OpenConnectionReply :: [CChar]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize OpenConnectionReply where
         deserialize
@@ -154,7 +154,7 @@
  
 data CloseConnection = MkCloseConnection{screen_CloseConnection ::
                                          Word32}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CloseConnection where
         extensionId _ = "XFree86-DRI"
@@ -168,7 +168,7 @@
  
 data GetClientDriverName = MkGetClientDriverName{screen_GetClientDriverName
                                                  :: Word32}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetClientDriverName where
         extensionId _ = "XFree86-DRI"
@@ -190,7 +190,7 @@
                                                            :: Word32,
                                                            client_driver_name_GetClientDriverNameReply
                                                            :: [CChar]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetClientDriverNameReply where
         deserialize
@@ -217,7 +217,7 @@
                                      Word32,
                                      visual_CreateContext :: Word32,
                                      context_CreateContext :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateContext where
         extensionId _ = "XFree86-DRI"
@@ -235,7 +235,7 @@
  
 data CreateContextReply = MkCreateContextReply{hw_context_CreateContextReply
                                                :: Word32}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize CreateContextReply where
         deserialize
@@ -250,7 +250,7 @@
 data DestroyContext = MkDestroyContext{screen_DestroyContext ::
                                        Word32,
                                        context_DestroyContext :: Word32}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyContext where
         extensionId _ = "XFree86-DRI"
@@ -268,7 +268,7 @@
 data CreateDrawable = MkCreateDrawable{screen_CreateDrawable ::
                                        Word32,
                                        drawable_CreateDrawable :: Word32}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateDrawable where
         extensionId _ = "XFree86-DRI"
@@ -285,7 +285,7 @@
  
 data CreateDrawableReply = MkCreateDrawableReply{hw_drawable_handle_CreateDrawableReply
                                                  :: Word32}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize CreateDrawableReply where
         deserialize
@@ -300,7 +300,7 @@
 data DestroyDrawable = MkDestroyDrawable{screen_DestroyDrawable ::
                                          Word32,
                                          drawable_DestroyDrawable :: Word32}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyDrawable where
         extensionId _ = "XFree86-DRI"
@@ -318,7 +318,7 @@
 data GetDrawableInfo = MkGetDrawableInfo{screen_GetDrawableInfo ::
                                          Word32,
                                          drawable_GetDrawableInfo :: Word32}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDrawableInfo where
         extensionId _ = "XFree86-DRI"
@@ -343,7 +343,7 @@
                                                    drawable_size_H_GetDrawableInfoReply :: Int16,
                                                    num_clip_rects_GetDrawableInfoReply :: Word32,
                                                    clip_rects_GetDrawableInfoReply :: [DrmClipRect]}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDrawableInfoReply where
         deserialize
@@ -372,7 +372,7 @@
  
 data GetDeviceInfo = MkGetDeviceInfo{screen_GetDeviceInfo ::
                                      Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetDeviceInfo where
         extensionId _ = "XFree86-DRI"
@@ -393,7 +393,7 @@
                                                framebuffer_stride_GetDeviceInfoReply :: Word32,
                                                device_private_size_GetDeviceInfoReply :: Word32,
                                                device_private_GetDeviceInfoReply :: [Word32]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetDeviceInfoReply where
         deserialize
@@ -422,7 +422,7 @@
 data AuthConnection = MkAuthConnection{screen_AuthConnection ::
                                        Word32,
                                        magic_AuthConnection :: Word32}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest AuthConnection where
         extensionId _ = "XFree86-DRI"
@@ -439,7 +439,7 @@
  
 data AuthConnectionReply = MkAuthConnectionReply{authenticated_AuthConnectionReply
                                                  :: Word32}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize AuthConnectionReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/XFixes/Types.hs b/patched/Graphics/XHB/Gen/XFixes/Types.hs
--- a/patched/Graphics/XHB/Gen/XFixes/Types.hs
+++ b/patched/Graphics/XHB/Gen/XFixes/Types.hs
@@ -56,7 +56,7 @@
 data QueryVersion = MkQueryVersion{client_major_version_QueryVersion
                                    :: Word32,
                                    client_minor_version_QueryVersion :: Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "XFIXES"
@@ -74,7 +74,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply
                                              :: Word32,
                                              minor_version_QueryVersionReply :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -90,7 +90,7 @@
  
 data SaveSetMode = SaveSetModeInsert
                  | SaveSetModeDelete
-                 deriving Show
+                 deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SaveSetMode where
         toValue SaveSetModeInsert{} = 0
@@ -100,7 +100,7 @@
  
 data SaveSetTarget = SaveSetTargetNearest
                    | SaveSetTargetRoot
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SaveSetTarget where
         toValue SaveSetTargetNearest{} = 0
@@ -110,7 +110,7 @@
  
 data SaveSetMapping = SaveSetMappingMap
                     | SaveSetMappingUnmap
-                    deriving Show
+                    deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SaveSetMapping where
         toValue SaveSetMappingMap{} = 0
@@ -123,7 +123,7 @@
                                      target_ChangeSaveSet :: SaveSetTarget,
                                      map_ChangeSaveSet :: SaveSetMapping,
                                      window_ChangeSaveSet :: WINDOW}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangeSaveSet where
         extensionId _ = "XFIXES"
@@ -146,7 +146,7 @@
 data SelectionEvent = SelectionEventSetSelectionOwner
                     | SelectionEventSelectionWindowDestroy
                     | SelectionEventSelectionClientClose
-                    deriving Show
+                    deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SelectionEvent where
         toValue SelectionEventSetSelectionOwner{} = 0
@@ -159,7 +159,7 @@
 data SelectionEventMask = SelectionEventMaskSetSelectionOwner
                         | SelectionEventMaskSelectionWindowDestroy
                         | SelectionEventMaskSelectionClientClose
-                        deriving Show
+                        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum SelectionEventMask where
         toBit SelectionEventMaskSetSelectionOwner{} = 0
@@ -177,7 +177,7 @@
                                                    timestamp_SelectionNotifyEvent :: TIMESTAMP,
                                                    selection_timestamp_SelectionNotifyEvent ::
                                                    TIMESTAMP}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event SelectionNotifyEvent
  
@@ -201,7 +201,7 @@
                                                    selection_SelectSelectionInput :: ATOM,
                                                    event_mask_SelectSelectionInput ::
                                                    [SelectionEventMask]}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SelectSelectionInput where
         extensionId _ = "XFIXES"
@@ -219,14 +219,14 @@
                putSkip (requiredPadding size__)
  
 data CursorNotify = CursorNotifyDisplayCursor
-                  deriving Show
+                  deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum CursorNotify where
         toValue CursorNotifyDisplayCursor{} = 0
         fromValue 0 = CursorNotifyDisplayCursor
  
 data CursorNotifyMask = CursorNotifyMaskDisplayCursor
-                      deriving Show
+                      deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum CursorNotifyMask where
         toBit CursorNotifyMaskDisplayCursor{} = 0
@@ -238,7 +238,7 @@
                                              cursor_serial_CursorNotifyEvent :: Word32,
                                              timestamp_CursorNotifyEvent :: TIMESTAMP,
                                              name_CursorNotifyEvent :: ATOM}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event CursorNotifyEvent
  
@@ -258,7 +258,7 @@
 data SelectCursorInput = MkSelectCursorInput{window_SelectCursorInput
                                              :: WINDOW,
                                              event_mask_SelectCursorInput :: [CursorNotifyMask]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SelectCursorInput where
         extensionId _ = "XFIXES"
@@ -274,7 +274,7 @@
                putSkip (requiredPadding size__)
  
 data GetCursorImage = MkGetCursorImage{}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetCursorImage where
         extensionId _ = "XFIXES"
@@ -294,7 +294,7 @@
                                                  yhot_GetCursorImageReply :: Word16,
                                                  cursor_serial_GetCursorImageReply :: Word32,
                                                  cursor_image_GetCursorImageReply :: [Word32]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetCursorImageReply where
         deserialize
@@ -321,7 +321,7 @@
                  deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)
  
 data Region = RegionNone
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Region where
         toValue RegionNone{} = 0
@@ -329,7 +329,7 @@
  
 data CreateRegion = MkCreateRegion{region_CreateRegion :: REGION,
                                    rectangles_CreateRegion :: [RECTANGLE]}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateRegion where
         extensionId _ = "XFIXES"
@@ -347,7 +347,7 @@
 data CreateRegionFromBitmap = MkCreateRegionFromBitmap{region_CreateRegionFromBitmap
                                                        :: REGION,
                                                        bitmap_CreateRegionFromBitmap :: PIXMAP}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateRegionFromBitmap where
         extensionId _ = "XFIXES"
@@ -366,7 +366,7 @@
                                                        :: REGION,
                                                        window_CreateRegionFromWindow :: WINDOW,
                                                        kind_CreateRegionFromWindow :: SK}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateRegionFromWindow where
         extensionId _ = "XFIXES"
@@ -390,7 +390,7 @@
 data CreateRegionFromGC = MkCreateRegionFromGC{region_CreateRegionFromGC
                                                :: REGION,
                                                gc_CreateRegionFromGC :: GCONTEXT}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateRegionFromGC where
         extensionId _ = "XFIXES"
@@ -408,7 +408,7 @@
 data CreateRegionFromPicture = MkCreateRegionFromPicture{region_CreateRegionFromPicture
                                                          :: REGION,
                                                          picture_CreateRegionFromPicture :: PICTURE}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateRegionFromPicture where
         extensionId _ = "XFIXES"
@@ -425,7 +425,7 @@
  
 data DestroyRegion = MkDestroyRegion{region_DestroyRegion ::
                                      REGION}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyRegion where
         extensionId _ = "XFIXES"
@@ -439,7 +439,7 @@
  
 data SetRegion = MkSetRegion{region_SetRegion :: REGION,
                              rectangles_SetRegion :: [RECTANGLE]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetRegion where
         extensionId _ = "XFIXES"
@@ -456,7 +456,7 @@
  
 data CopyRegion = MkCopyRegion{source_CopyRegion :: REGION,
                                destination_CopyRegion :: REGION}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CopyRegion where
         extensionId _ = "XFIXES"
@@ -472,7 +472,7 @@
  
 data UnionRegion = MkUnionRegion{source1_UnionRegion :: REGION,
                                  source2_UnionRegion :: REGION, destination_UnionRegion :: REGION}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest UnionRegion where
         extensionId _ = "XFIXES"
@@ -492,7 +492,7 @@
                                          REGION,
                                          source2_IntersectRegion :: REGION,
                                          destination_IntersectRegion :: REGION}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest IntersectRegion where
         extensionId _ = "XFIXES"
@@ -513,7 +513,7 @@
                                        REGION,
                                        source2_SubtractRegion :: REGION,
                                        destination_SubtractRegion :: REGION}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SubtractRegion where
         extensionId _ = "XFIXES"
@@ -533,7 +533,7 @@
 data InvertRegion = MkInvertRegion{source_InvertRegion :: REGION,
                                    bounds_InvertRegion :: RECTANGLE,
                                    destination_InvertRegion :: REGION}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest InvertRegion where
         extensionId _ = "XFIXES"
@@ -552,7 +552,7 @@
 data TranslateRegion = MkTranslateRegion{region_TranslateRegion ::
                                          REGION,
                                          dx_TranslateRegion :: Int16, dy_TranslateRegion :: Int16}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest TranslateRegion where
         extensionId _ = "XFIXES"
@@ -571,7 +571,7 @@
 data RegionExtents = MkRegionExtents{source_RegionExtents ::
                                      REGION,
                                      destination_RegionExtents :: REGION}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest RegionExtents where
         extensionId _ = "XFIXES"
@@ -587,7 +587,7 @@
                putSkip (requiredPadding size__)
  
 data FetchRegion = MkFetchRegion{region_FetchRegion :: REGION}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest FetchRegion where
         extensionId _ = "XFIXES"
@@ -602,7 +602,7 @@
 data FetchRegionReply = MkFetchRegionReply{extents_FetchRegionReply
                                            :: RECTANGLE,
                                            rectangles_FetchRegionReply :: [RECTANGLE]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize FetchRegionReply where
         deserialize
@@ -622,7 +622,7 @@
                                          region_SetGCClipRegion :: REGION,
                                          x_origin_SetGCClipRegion :: Int16,
                                          y_origin_SetGCClipRegion :: Int16}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetGCClipRegion where
         extensionId _ = "XFIXES"
@@ -646,7 +646,7 @@
                                                    x_offset_SetWindowShapeRegion :: Int16,
                                                    y_offset_SetWindowShapeRegion :: Int16,
                                                    region_SetWindowShapeRegion :: REGION}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetWindowShapeRegion where
         extensionId _ = "XFIXES"
@@ -676,7 +676,7 @@
                                                    region_SetPictureClipRegion :: REGION,
                                                    x_origin_SetPictureClipRegion :: Int16,
                                                    y_origin_SetPictureClipRegion :: Int16}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetPictureClipRegion where
         extensionId _ = "XFIXES"
@@ -698,7 +698,7 @@
 data SetCursorName = MkSetCursorName{cursor_SetCursorName ::
                                      CURSOR,
                                      nbytes_SetCursorName :: Word16, name_SetCursorName :: [CChar]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetCursorName where
         extensionId _ = "XFIXES"
@@ -718,7 +718,7 @@
  
 data GetCursorName = MkGetCursorName{cursor_GetCursorName ::
                                      CURSOR}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetCursorName where
         extensionId _ = "XFIXES"
@@ -734,7 +734,7 @@
                                                :: ATOM,
                                                nbytes_GetCursorNameReply :: Word16,
                                                name_GetCursorNameReply :: [CChar]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetCursorNameReply where
         deserialize
@@ -750,7 +750,7 @@
                return (MkGetCursorNameReply atom nbytes name)
  
 data GetCursorImageAndName = MkGetCursorImageAndName{}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetCursorImageAndName where
         extensionId _ = "XFIXES"
@@ -783,7 +783,7 @@
                                                                [CChar],
                                                                cursor_image_GetCursorImageAndNameReply
                                                                :: [Word32]}
-                                deriving (Show, Typeable)
+                                deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetCursorImageAndNameReply where
         deserialize
@@ -815,7 +815,7 @@
  
 data ChangeCursor = MkChangeCursor{source_ChangeCursor :: CURSOR,
                                    destination_ChangeCursor :: CURSOR}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangeCursor where
         extensionId _ = "XFIXES"
@@ -834,7 +834,7 @@
                                                :: CURSOR,
                                                nbytes_ChangeCursorByName :: Word16,
                                                name_ChangeCursorByName :: [CChar]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ChangeCursorByName where
         extensionId _ = "XFIXES"
@@ -857,7 +857,7 @@
                                    destination_ExpandRegion :: REGION, left_ExpandRegion :: Word16,
                                    right_ExpandRegion :: Word16, top_ExpandRegion :: Word16,
                                    bottom_ExpandRegion :: Word16}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ExpandRegion where
         extensionId _ = "XFIXES"
@@ -881,7 +881,7 @@
                putSkip (requiredPadding size__)
  
 data HideCursor = MkHideCursor{window_HideCursor :: WINDOW}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest HideCursor where
         extensionId _ = "XFIXES"
@@ -894,7 +894,7 @@
                putSkip (requiredPadding size__)
  
 data ShowCursor = MkShowCursor{window_ShowCursor :: WINDOW}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ShowCursor where
         extensionId _ = "XFIXES"
diff --git a/patched/Graphics/XHB/Gen/XPrint/Types.hs b/patched/Graphics/XHB/Gen/XPrint/Types.hs
--- a/patched/Graphics/XHB/Gen/XPrint/Types.hs
+++ b/patched/Graphics/XHB/Gen/XPrint/Types.hs
@@ -51,7 +51,7 @@
 data PRINTER = MkPRINTER{nameLen_PRINTER :: Word32,
                          name_PRINTER :: [STRING8], descLen_PRINTER :: Word32,
                          description_PRINTER :: [STRING8]}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PRINTER where
         serialize x
@@ -77,7 +77,7 @@
  
 data GetDoc = GetDocFinished
             | GetDocSecondConsumer
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum GetDoc where
         toValue GetDocFinished{} = 0
@@ -87,7 +87,7 @@
  
 data EvMask = EvMaskPrintMask
             | EvMaskAttributeMask
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum EvMask where
         toBit EvMaskPrintMask{} = 0
@@ -101,7 +101,7 @@
             | DetailEndDocNotify
             | DetailStartPageNotify
             | DetailEndPageNotify
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Detail where
         toValue DetailStartJobNotify{} = 1
@@ -124,7 +124,7 @@
           | AttrServerAttr
           | AttrMediumAttr
           | AttrSpoolerAttr
-          deriving Show
+          deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Attr where
         toValue AttrJobAttr{} = 1
@@ -143,7 +143,7 @@
         fromValue 7 = AttrSpoolerAttr
  
 data PrintQueryVersion = MkPrintQueryVersion{}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintQueryVersion where
         extensionId _ = "XpExtension"
@@ -158,7 +158,7 @@
                                                        :: Word16,
                                                        minor_version_PrintQueryVersionReply ::
                                                        Word16}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintQueryVersionReply where
         deserialize
@@ -176,7 +176,7 @@
                                                  localeLen_PrintGetPrinterList :: Word32,
                                                  printer_name_PrintGetPrinterList :: [STRING8],
                                                  locale_PrintGetPrinterList :: [STRING8]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintGetPrinterList where
         extensionId _ = "XpExtension"
@@ -199,7 +199,7 @@
                                                            :: Word32,
                                                            printers_PrintGetPrinterListReply ::
                                                            [PRINTER]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintGetPrinterListReply where
         deserialize
@@ -214,7 +214,7 @@
                return (MkPrintGetPrinterListReply listCount printers)
  
 data PrintRehashPrinterList = MkPrintRehashPrinterList{}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintRehashPrinterList where
         extensionId _ = "XpExtension"
@@ -231,7 +231,7 @@
                                      localeLen_CreateContext :: Word32,
                                      printerName_CreateContext :: [STRING8],
                                      locale_CreateContext :: [STRING8]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateContext where
         extensionId _ = "XpExtension"
@@ -254,7 +254,7 @@
  
 data PrintSetContext = MkPrintSetContext{context_PrintSetContext ::
                                          Word32}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintSetContext where
         extensionId _ = "XpExtension"
@@ -267,7 +267,7 @@
                putSkip (requiredPadding size__)
  
 data PrintGetContext = MkPrintGetContext{}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintGetContext where
         extensionId _ = "XpExtension"
@@ -280,7 +280,7 @@
  
 data PrintGetContextReply = MkPrintGetContextReply{context_PrintGetContextReply
                                                    :: Word32}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintGetContextReply where
         deserialize
@@ -294,7 +294,7 @@
  
 data PrintDestroyContext = MkPrintDestroyContext{context_PrintDestroyContext
                                                  :: Word32}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintDestroyContext where
         extensionId _ = "XpExtension"
@@ -307,7 +307,7 @@
                putSkip (requiredPadding size__)
  
 data PrintGetScreenOfContext = MkPrintGetScreenOfContext{}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintGetScreenOfContext where
         extensionId _ = "XpExtension"
@@ -320,7 +320,7 @@
  
 data PrintGetScreenOfContextReply = MkPrintGetScreenOfContextReply{root_PrintGetScreenOfContextReply
                                                                    :: WINDOW}
-                                  deriving (Show, Typeable)
+                                  deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintGetScreenOfContextReply where
         deserialize
@@ -334,7 +334,7 @@
  
 data PrintStartJob = MkPrintStartJob{output_mode_PrintStartJob ::
                                      Word8}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintStartJob where
         extensionId _ = "XpExtension"
@@ -347,7 +347,7 @@
                putSkip (requiredPadding size__)
  
 data PrintEndJob = MkPrintEndJob{cancel_PrintEndJob :: Bool}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintEndJob where
         extensionId _ = "XpExtension"
@@ -361,7 +361,7 @@
  
 data PrintStartDoc = MkPrintStartDoc{driver_mode_PrintStartDoc ::
                                      Word8}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintStartDoc where
         extensionId _ = "XpExtension"
@@ -374,7 +374,7 @@
                putSkip (requiredPadding size__)
  
 data PrintEndDoc = MkPrintEndDoc{cancel_PrintEndDoc :: Bool}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintEndDoc where
         extensionId _ = "XpExtension"
@@ -394,7 +394,7 @@
                                                    data_PrintPutDocumentData :: [Word8],
                                                    doc_format_PrintPutDocumentData :: [STRING8],
                                                    options_PrintPutDocumentData :: [STRING8]}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintPutDocumentData where
         extensionId _ = "XpExtension"
@@ -422,7 +422,7 @@
 data PrintGetDocumentData = MkPrintGetDocumentData{context_PrintGetDocumentData
                                                    :: PCONTEXT,
                                                    max_bytes_PrintGetDocumentData :: Word32}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintGetDocumentData where
         extensionId _ = "XpExtension"
@@ -445,7 +445,7 @@
                                                              Word32,
                                                              data_PrintGetDocumentDataReply ::
                                                              [Word8]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintGetDocumentDataReply where
         deserialize
@@ -465,7 +465,7 @@
  
 data PrintStartPage = MkPrintStartPage{window_PrintStartPage ::
                                        WINDOW}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintStartPage where
         extensionId _ = "XpExtension"
@@ -478,7 +478,7 @@
                putSkip (requiredPadding size__)
  
 data PrintEndPage = MkPrintEndPage{cancel_PrintEndPage :: Bool}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintEndPage where
         extensionId _ = "XpExtension"
@@ -494,7 +494,7 @@
 data PrintSelectInput = MkPrintSelectInput{context_PrintSelectInput
                                            :: PCONTEXT,
                                            event_PrintSelectInput :: ValueParam Word32}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintSelectInput where
         extensionId _ = "XpExtension"
@@ -511,7 +511,7 @@
  
 data PrintInputSelected = MkPrintInputSelected{context_PrintInputSelected
                                                :: PCONTEXT}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintInputSelected where
         extensionId _ = "XpExtension"
@@ -527,7 +527,7 @@
                                                          :: ValueParam Word32,
                                                          all_events_PrintInputSelectedReply ::
                                                          ValueParam Word32}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintInputSelectedReply where
         deserialize
@@ -543,7 +543,7 @@
 data PrintGetAttributes = MkPrintGetAttributes{context_PrintGetAttributes
                                                :: PCONTEXT,
                                                pool_PrintGetAttributes :: Word8}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintGetAttributes where
         extensionId _ = "XpExtension"
@@ -564,7 +564,7 @@
                                                          :: Word32,
                                                          attributes_PrintGetAttributesReply ::
                                                          STRING8}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintGetAttributesReply where
         deserialize
@@ -583,7 +583,7 @@
                                                      nameLen_PrintGetOneAttributes :: Word32,
                                                      pool_PrintGetOneAttributes :: Word8,
                                                      name_PrintGetOneAttributes :: [STRING8]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintGetOneAttributes where
         extensionId _ = "XpExtension"
@@ -608,7 +608,7 @@
                                                                :: Word32,
                                                                value_PrintGetOneAttributesReply ::
                                                                [STRING8]}
-                                deriving (Show, Typeable)
+                                deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintGetOneAttributesReply where
         deserialize
@@ -628,7 +628,7 @@
                                                pool_PrintSetAttributes :: Word8,
                                                rule_PrintSetAttributes :: Word8,
                                                attributes_PrintSetAttributes :: [STRING8]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintSetAttributes where
         extensionId _ = "XpExtension"
@@ -653,7 +653,7 @@
  
 data PrintGetPageDimensions = MkPrintGetPageDimensions{context_PrintGetPageDimensions
                                                        :: PCONTEXT}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintGetPageDimensions where
         extensionId _ = "XpExtension"
@@ -677,7 +677,7 @@
                                                                  :: Word16,
                                                                  reproducible_height_PrintGetPageDimensionsReply
                                                                  :: Word16}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintGetPageDimensionsReply where
         deserialize
@@ -698,7 +698,7 @@
                     reproducible_height)
  
 data PrintQueryScreens = MkPrintQueryScreens{}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintQueryScreens where
         extensionId _ = "XpExtension"
@@ -712,7 +712,7 @@
 data PrintQueryScreensReply = MkPrintQueryScreensReply{listCount_PrintQueryScreensReply
                                                        :: Word32,
                                                        roots_PrintQueryScreensReply :: [WINDOW]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintQueryScreensReply where
         deserialize
@@ -730,7 +730,7 @@
                                                          :: PCONTEXT,
                                                          image_resolution_PrintSetImageResolution ::
                                                          Word16}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintSetImageResolution where
         extensionId _ = "XpExtension"
@@ -749,7 +749,7 @@
                                                                    :: Bool,
                                                                    previous_resolutions_PrintSetImageResolutionReply
                                                                    :: Word16}
-                                  deriving (Show, Typeable)
+                                  deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintSetImageResolutionReply where
         deserialize
@@ -763,7 +763,7 @@
  
 data PrintGetImageResolution = MkPrintGetImageResolution{context_PrintGetImageResolution
                                                          :: PCONTEXT}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PrintGetImageResolution where
         extensionId _ = "XpExtension"
@@ -777,7 +777,7 @@
  
 data PrintGetImageResolutionReply = MkPrintGetImageResolutionReply{image_resolution_PrintGetImageResolutionReply
                                                                    :: Word16}
-                                  deriving (Show, Typeable)
+                                  deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize PrintGetImageResolutionReply where
         deserialize
@@ -791,7 +791,7 @@
  
 data NotifyEvent = MkNotifyEvent{detail_NotifyEvent :: Word8,
                                  context_NotifyEvent :: PCONTEXT, cancel_NotifyEvent :: Bool}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event NotifyEvent
  
@@ -807,7 +807,7 @@
 data AttributNotifyEvent = MkAttributNotifyEvent{detail_AttributNotifyEvent
                                                  :: Word8,
                                                  context_AttributNotifyEvent :: PCONTEXT}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event AttributNotifyEvent
  
diff --git a/patched/Graphics/XHB/Gen/Xevie/Types.hs b/patched/Graphics/XHB/Gen/Xevie/Types.hs
--- a/patched/Graphics/XHB/Gen/Xevie/Types.hs
+++ b/patched/Graphics/XHB/Gen/Xevie/Types.hs
@@ -26,7 +26,7 @@
 data QueryVersion = MkQueryVersion{client_major_version_QueryVersion
                                    :: Word16,
                                    client_minor_version_QueryVersion :: Word16}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "XEVIE"
@@ -44,7 +44,7 @@
 data QueryVersionReply = MkQueryVersionReply{server_major_version_QueryVersionReply
                                              :: Word16,
                                              server_minor_version_QueryVersionReply :: Word16}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -60,7 +60,7 @@
                  (MkQueryVersionReply server_major_version server_minor_version)
  
 data Start = MkStart{screen_Start :: Word32}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Start where
         extensionId _ = "XEVIE"
@@ -73,7 +73,7 @@
                putSkip (requiredPadding size__)
  
 data StartReply = MkStartReply{}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize StartReply where
         deserialize
@@ -86,7 +86,7 @@
                return (MkStartReply)
  
 data End = MkEnd{cmap_End :: Word32}
-         deriving (Show, Typeable)
+         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest End where
         extensionId _ = "XEVIE"
@@ -99,7 +99,7 @@
                putSkip (requiredPadding size__)
  
 data EndReply = MkEndReply{}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize EndReply where
         deserialize
@@ -113,7 +113,7 @@
  
 data Datatype = DatatypeUnmodified
               | DatatypeModified
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Datatype where
         toValue DatatypeUnmodified{} = 0
@@ -122,7 +122,7 @@
         fromValue 1 = DatatypeModified
  
 data Event = MkEvent{}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Event where
         serialize x = do putSkip 32
@@ -134,7 +134,7 @@
                return (MkEvent)
  
 data Send = MkSend{event_Send :: Event, data_type_Send :: Word32}
-          deriving (Show, Typeable)
+          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest Send where
         extensionId _ = "XEVIE"
@@ -149,7 +149,7 @@
                putSkip (requiredPadding size__)
  
 data SendReply = MkSendReply{}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SendReply where
         deserialize
@@ -162,7 +162,7 @@
                return (MkSendReply)
  
 data SelectInput = MkSelectInput{event_mask_SelectInput :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SelectInput where
         extensionId _ = "XEVIE"
@@ -175,7 +175,7 @@
                putSkip (requiredPadding size__)
  
 data SelectInputReply = MkSelectInputReply{}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SelectInputReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/Xinerama/Types.hs b/patched/Graphics/XHB/Gen/Xinerama/Types.hs
--- a/patched/Graphics/XHB/Gen/Xinerama/Types.hs
+++ b/patched/Graphics/XHB/Gen/Xinerama/Types.hs
@@ -30,7 +30,7 @@
 data ScreenInfo = MkScreenInfo{x_org_ScreenInfo :: Int16,
                                y_org_ScreenInfo :: Int16, width_ScreenInfo :: Word16,
                                height_ScreenInfo :: Word16}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ScreenInfo where
         serialize x
@@ -53,7 +53,7 @@
  
 data QueryVersion = MkQueryVersion{major_QueryVersion :: Word8,
                                    minor_QueryVersion :: Word8}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "XINERAMA"
@@ -70,7 +70,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_QueryVersionReply
                                              :: Word16,
                                              minor_QueryVersionReply :: Word16}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -84,7 +84,7 @@
                return (MkQueryVersionReply major minor)
  
 data GetState = MkGetState{window_GetState :: WINDOW}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetState where
         extensionId _ = "XINERAMA"
@@ -98,7 +98,7 @@
  
 data GetStateReply = MkGetStateReply{state_GetStateReply :: Word8,
                                      window_GetStateReply :: WINDOW}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetStateReply where
         deserialize
@@ -112,7 +112,7 @@
  
 data GetScreenCount = MkGetScreenCount{window_GetScreenCount ::
                                        WINDOW}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetScreenCount where
         extensionId _ = "XINERAMA"
@@ -127,7 +127,7 @@
 data GetScreenCountReply = MkGetScreenCountReply{screen_count_GetScreenCountReply
                                                  :: Word8,
                                                  window_GetScreenCountReply :: WINDOW}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetScreenCountReply where
         deserialize
@@ -142,7 +142,7 @@
 data GetScreenSize = MkGetScreenSize{window_GetScreenSize ::
                                      WINDOW,
                                      screen_GetScreenSize :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetScreenSize where
         extensionId _ = "XINERAMA"
@@ -161,7 +161,7 @@
                                                height_GetScreenSizeReply :: Word32,
                                                window_GetScreenSizeReply :: WINDOW,
                                                screen_GetScreenSizeReply :: Word32}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetScreenSizeReply where
         deserialize
@@ -177,7 +177,7 @@
                return (MkGetScreenSizeReply width height window screen)
  
 data IsActive = MkIsActive{}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest IsActive where
         extensionId _ = "XINERAMA"
@@ -189,7 +189,7 @@
                putSkip (requiredPadding size__)
  
 data IsActiveReply = MkIsActiveReply{state_IsActiveReply :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize IsActiveReply where
         deserialize
@@ -202,7 +202,7 @@
                return (MkIsActiveReply state)
  
 data QueryScreens = MkQueryScreens{}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryScreens where
         extensionId _ = "XINERAMA"
@@ -216,7 +216,7 @@
 data QueryScreensReply = MkQueryScreensReply{number_QueryScreensReply
                                              :: Word32,
                                              screen_info_QueryScreensReply :: [ScreenInfo]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryScreensReply where
         deserialize
diff --git a/patched/Graphics/XHB/Gen/Xproto.hs b/patched/Graphics/XHB/Gen/Xproto.hs
--- a/patched/Graphics/XHB/Gen/Xproto.hs
+++ b/patched/Graphics/XHB/Gen/Xproto.hs
@@ -124,9 +124,10 @@
  
 configureWindow ::
                   Graphics.XHB.Connection.Types.Connection ->
-                    ConfigureWindow -> IO ()
-configureWindow c req
-  = do let chunk = runPut (serialize req)
+                    WINDOW -> ValueParam Word16 -> IO ()
+configureWindow c window value
+  = do let req = MkConfigureWindow window value
+       let chunk = runPut (serialize req)
        sendRequest c chunk
  
 circulateWindow ::
diff --git a/patched/Graphics/XHB/Gen/Xproto/Types.hs b/patched/Graphics/XHB/Gen/Xproto/Types.hs
--- a/patched/Graphics/XHB/Gen/Xproto/Types.hs
+++ b/patched/Graphics/XHB/Gen/Xproto/Types.hs
@@ -220,7 +220,7 @@
  
 data CHAR2B = MkCHAR2B{byte1_CHAR2B :: Word8,
                        byte2_CHAR2B :: Word8}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CHAR2B where
         serialize x
@@ -272,7 +272,7 @@
 type BUTTON = Word8
  
 data POINT = MkPOINT{x_POINT :: Int16, y_POINT :: Int16}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize POINT where
         serialize x
@@ -289,7 +289,7 @@
 data RECTANGLE = MkRECTANGLE{x_RECTANGLE :: Int16,
                              y_RECTANGLE :: Int16, width_RECTANGLE :: Word16,
                              height_RECTANGLE :: Word16}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize RECTANGLE where
         serialize x
@@ -313,7 +313,7 @@
 data ARC = MkARC{x_ARC :: Int16, y_ARC :: Int16,
                  width_ARC :: Word16, height_ARC :: Word16, angle1_ARC :: Int16,
                  angle2_ARC :: Int16}
-         deriving (Show, Typeable)
+         deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ARC where
         serialize x
@@ -341,7 +341,7 @@
  
 data FORMAT = MkFORMAT{depth_FORMAT :: Word8,
                        bits_per_pixel_FORMAT :: Word8, scanline_pad_FORMAT :: Word8}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize FORMAT where
         serialize x
@@ -368,7 +368,7 @@
                  | VisualClassPseudoColor
                  | VisualClassTrueColor
                  | VisualClassDirectColor
-                 deriving Show
+                 deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum VisualClass where
         toValue VisualClassStaticGray{} = 0
@@ -390,7 +390,7 @@
                                colormap_entries_VISUALTYPE :: Word16,
                                red_mask_VISUALTYPE :: Word32, green_mask_VISUALTYPE :: Word32,
                                blue_mask_VISUALTYPE :: Word32}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize VISUALTYPE where
         serialize x
@@ -429,7 +429,7 @@
  
 data DEPTH = MkDEPTH{depth_DEPTH :: Word8,
                      visuals_len_DEPTH :: Word16, visuals_DEPTH :: [VISUALTYPE]}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DEPTH where
         serialize x
@@ -476,7 +476,7 @@
                | EventMaskPropertyChange
                | EventMaskColorMapChange
                | EventMaskOwnerGrabButton
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum EventMask where
         toBit EventMaskKeyPress{} = 0
@@ -533,7 +533,7 @@
 data BackingStore = BackingStoreNotUseful
                   | BackingStoreWhenMapped
                   | BackingStoreAlways
-                  deriving Show
+                  deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum BackingStore where
         toValue BackingStoreNotUseful{} = 0
@@ -557,7 +557,7 @@
                        backing_stores_SCREEN :: BackingStore, save_unders_SCREEN :: Bool,
                        root_depth_SCREEN :: Word8, allowed_depths_len_SCREEN :: Word8,
                        allowed_depths_SCREEN :: [DEPTH]}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SCREEN where
         serialize x
@@ -639,7 +639,7 @@
                                    authorization_protocol_data_len_SetupRequest :: Word16,
                                    authorization_protocol_name_SetupRequest :: [CChar],
                                    authorization_protocol_data_SetupRequest :: [CChar]}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetupRequest where
         serialize x
@@ -688,7 +688,7 @@
                                  protocol_major_version_SetupFailed :: Word16,
                                  protocol_minor_version_SetupFailed :: Word16,
                                  length_SetupFailed :: Word16, reason_SetupFailed :: [CChar]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetupFailed where
         serialize x
@@ -723,7 +723,7 @@
                                              :: Word8,
                                              length_SetupAuthenticate :: Word16,
                                              reason_SetupAuthenticate :: [CChar]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetupAuthenticate where
         serialize x
@@ -747,7 +747,7 @@
  
 data ImageOrder = ImageOrderLSBFirst
                 | ImageOrderMSBFirst
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ImageOrder where
         toValue ImageOrderLSBFirst{} = 0
@@ -770,7 +770,7 @@
                      min_keycode_Setup :: KEYCODE, max_keycode_Setup :: KEYCODE,
                      vendor_Setup :: [CChar], pixmap_formats_Setup :: [FORMAT],
                      roots_Setup :: [SCREEN]}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Setup where
         serialize x
@@ -876,7 +876,7 @@
              | ModMask4
              | ModMask5
              | ModMaskAny
-             deriving Show
+             deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum ModMask where
         toBit ModMaskShift{} = 0
@@ -911,7 +911,7 @@
                 | KeyButMaskButton3
                 | KeyButMaskButton4
                 | KeyButMaskButton5
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum KeyButMask where
         toBit KeyButMaskShift{} = 0
@@ -942,7 +942,7 @@
         fromBit 12 = KeyButMaskButton5
  
 data Window = WindowNone
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Window where
         toValue WindowNone{} = 0
@@ -956,7 +956,7 @@
                                      event_x_KeyPressEvent :: Int16, event_y_KeyPressEvent :: Int16,
                                      state_KeyPressEvent :: [KeyButMask],
                                      same_screen_KeyPressEvent :: Bool}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event KeyPressEvent
  
@@ -994,7 +994,7 @@
                                          event_y_KeyReleaseEvent :: Int16,
                                          state_KeyReleaseEvent :: [KeyButMask],
                                          same_screen_KeyReleaseEvent :: Bool}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event KeyReleaseEvent
  
@@ -1027,7 +1027,7 @@
                 | ButtonMask4
                 | ButtonMask5
                 | ButtonMaskAny
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum ButtonMask where
         toBit ButtonMask1{} = 8
@@ -1055,7 +1055,7 @@
                                            event_y_ButtonPressEvent :: Int16,
                                            state_ButtonPressEvent :: [KeyButMask],
                                            same_screen_ButtonPressEvent :: Bool}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ButtonPressEvent
  
@@ -1094,7 +1094,7 @@
                                                event_y_ButtonReleaseEvent :: Int16,
                                                state_ButtonReleaseEvent :: [KeyButMask],
                                                same_screen_ButtonReleaseEvent :: Bool}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ButtonReleaseEvent
  
@@ -1123,7 +1123,7 @@
  
 data Motion = MotionNormal
             | MotionHint
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Motion where
         toValue MotionNormal{} = 0
@@ -1143,7 +1143,7 @@
                                              event_y_MotionNotifyEvent :: Int16,
                                              state_MotionNotifyEvent :: [KeyButMask],
                                              same_screen_MotionNotifyEvent :: Bool}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event MotionNotifyEvent
  
@@ -1178,7 +1178,7 @@
                   | NotifyDetailPointer
                   | NotifyDetailPointerRoot
                   | NotifyDetailNone
-                  deriving Show
+                  deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum NotifyDetail where
         toValue NotifyDetailAncestor{} = 0
@@ -1202,7 +1202,7 @@
                 | NotifyModeGrab
                 | NotifyModeUngrab
                 | NotifyModeWhileGrabbed
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum NotifyMode where
         toValue NotifyModeNormal{} = 0
@@ -1227,7 +1227,7 @@
                                            state_EnterNotifyEvent :: [KeyButMask],
                                            mode_EnterNotifyEvent :: NotifyMode,
                                            same_screen_focus_EnterNotifyEvent :: Word8}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event EnterNotifyEvent
  
@@ -1268,7 +1268,7 @@
                                            state_LeaveNotifyEvent :: [KeyButMask],
                                            mode_LeaveNotifyEvent :: NotifyMode,
                                            same_screen_focus_LeaveNotifyEvent :: Word8}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event LeaveNotifyEvent
  
@@ -1299,7 +1299,7 @@
 data FocusInEvent = MkFocusInEvent{detail_FocusInEvent ::
                                    NotifyDetail,
                                    event_FocusInEvent :: WINDOW, mode_FocusInEvent :: NotifyMode}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event FocusInEvent
  
@@ -1317,7 +1317,7 @@
                                      NotifyDetail,
                                      event_FocusOutEvent :: WINDOW,
                                      mode_FocusOutEvent :: NotifyMode}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event FocusOutEvent
  
@@ -1333,7 +1333,7 @@
  
 data KeymapNotifyEvent = MkKeymapNotifyEvent{keys_KeymapNotifyEvent
                                              :: [Word8]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event KeymapNotifyEvent
  
@@ -1347,7 +1347,7 @@
                                  x_ExposeEvent :: Word16, y_ExposeEvent :: Word16,
                                  width_ExposeEvent :: Word16, height_ExposeEvent :: Word16,
                                  count_ExposeEvent :: Word16}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ExposeEvent
  
@@ -1374,7 +1374,7 @@
                                                      minor_opcode_GraphicsExposureEvent :: Word16,
                                                      count_GraphicsExposureEvent :: Word16,
                                                      major_opcode_GraphicsExposureEvent :: Word8}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event GraphicsExposureEvent
  
@@ -1401,7 +1401,7 @@
                                          :: DRAWABLE,
                                          minor_opcode_NoExposureEvent :: Word16,
                                          major_opcode_NoExposureEvent :: Word8}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event NoExposureEvent
  
@@ -1419,7 +1419,7 @@
 data Visibility = VisibilityUnobscured
                 | VisibilityPartiallyObscured
                 | VisibilityFullyObscured
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Visibility where
         toValue VisibilityUnobscured{} = 0
@@ -1432,7 +1432,7 @@
 data VisibilityNotifyEvent = MkVisibilityNotifyEvent{window_VisibilityNotifyEvent
                                                      :: WINDOW,
                                                      state_VisibilityNotifyEvent :: Visibility}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event VisibilityNotifyEvent
  
@@ -1455,7 +1455,7 @@
                                              height_CreateNotifyEvent :: Word16,
                                              border_width_CreateNotifyEvent :: Word16,
                                              override_redirect_CreateNotifyEvent :: Bool}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event CreateNotifyEvent
  
@@ -1480,7 +1480,7 @@
 data DestroyNotifyEvent = MkDestroyNotifyEvent{event_DestroyNotifyEvent
                                                :: WINDOW,
                                                window_DestroyNotifyEvent :: WINDOW}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event DestroyNotifyEvent
  
@@ -1497,7 +1497,7 @@
                                            :: WINDOW,
                                            window_UnmapNotifyEvent :: WINDOW,
                                            from_configure_UnmapNotifyEvent :: Bool}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event UnmapNotifyEvent
  
@@ -1516,13 +1516,13 @@
                                        WINDOW,
                                        window_MapNotifyEvent :: WINDOW,
                                        override_redirect_MapNotifyEvent :: Bool}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
 
  
 data ClientMessageData = ClientData8  [Word8]  -- ^length 20
                        | ClientData16 [Word16] -- ^length 10
                        | ClientData32 [Word32] -- ^length 5
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
 
  
 data ClientMessageDataType = CDType8
@@ -1579,7 +1579,7 @@
 data MapRequestEvent = MkMapRequestEvent{parent_MapRequestEvent ::
                                          WINDOW,
                                          window_MapRequestEvent :: WINDOW}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event MapRequestEvent
  
@@ -1599,7 +1599,7 @@
                                                  x_ReparentNotifyEvent :: Int16,
                                                  y_ReparentNotifyEvent :: Int16,
                                                  override_redirect_ReparentNotifyEvent :: Bool}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ReparentNotifyEvent
  
@@ -1628,7 +1628,7 @@
                                                    height_ConfigureNotifyEvent :: Word16,
                                                    border_width_ConfigureNotifyEvent :: Word16,
                                                    override_redirect_ConfigureNotifyEvent :: Bool}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ConfigureNotifyEvent
  
@@ -1664,7 +1664,7 @@
                                                      border_width_ConfigureRequestEvent :: Word16,
                                                      value_mask_ConfigureRequestEvent ::
                                                      [ConfigWindow]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ConfigureRequestEvent
  
@@ -1693,7 +1693,7 @@
                                                window_GravityNotifyEvent :: WINDOW,
                                                x_GravityNotifyEvent :: Int16,
                                                y_GravityNotifyEvent :: Int16}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event GravityNotifyEvent
  
@@ -1712,7 +1712,7 @@
                                                :: WINDOW,
                                                width_ResizeRequestEvent :: Word16,
                                                height_ResizeRequestEvent :: Word16}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ResizeRequestEvent
  
@@ -1728,7 +1728,7 @@
  
 data Place = PlaceOnTop
            | PlaceOnBottom
-           deriving Show
+           deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Place where
         toValue PlaceOnTop{} = 0
@@ -1740,7 +1740,7 @@
                                                    :: WINDOW,
                                                    window_CirculateNotifyEvent :: WINDOW,
                                                    place_CirculateNotifyEvent :: Place}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event CirculateNotifyEvent
  
@@ -1760,7 +1760,7 @@
                                                      :: WINDOW,
                                                      window_CirculateRequestEvent :: WINDOW,
                                                      place_CirculateRequestEvent :: Place}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event CirculateRequestEvent
  
@@ -1778,7 +1778,7 @@
  
 data Property = PropertyNewValue
               | PropertyDelete
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Property where
         toValue PropertyNewValue{} = 0
@@ -1791,7 +1791,7 @@
                                                  atom_PropertyNotifyEvent :: ATOM,
                                                  time_PropertyNotifyEvent :: TIMESTAMP,
                                                  state_PropertyNotifyEvent :: Property}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event PropertyNotifyEvent
  
@@ -1811,7 +1811,7 @@
                                                  :: TIMESTAMP,
                                                  owner_SelectionClearEvent :: WINDOW,
                                                  selection_SelectionClearEvent :: ATOM}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event SelectionClearEvent
  
@@ -1826,7 +1826,7 @@
                return (MkSelectionClearEvent time owner selection)
  
 data Time = TimeCurrentTime
-          deriving Show
+          deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Time where
         toValue TimeCurrentTime{} = 0
@@ -1902,7 +1902,7 @@
           | AtomCAP_HEIGHT
           | AtomWM_CLASS
           | AtomWM_TRANSIENT_FOR
-          deriving Show
+          deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Atom where
         toValue AtomNone{} = 0
@@ -2053,7 +2053,7 @@
                                                      selection_SelectionRequestEvent :: ATOM,
                                                      target_SelectionRequestEvent :: ATOM,
                                                      property_SelectionRequestEvent :: ATOM}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event SelectionRequestEvent
  
@@ -2078,7 +2078,7 @@
                                                    selection_SelectionNotifyEvent :: ATOM,
                                                    target_SelectionNotifyEvent :: ATOM,
                                                    property_SelectionNotifyEvent :: ATOM}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event SelectionNotifyEvent
  
@@ -2097,7 +2097,7 @@
  
 data ColormapState = ColormapStateUninstalled
                    | ColormapStateInstalled
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ColormapState where
         toValue ColormapStateUninstalled{} = 0
@@ -2106,7 +2106,7 @@
         fromValue 1 = ColormapStateInstalled
  
 data Colormap = ColormapNone
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Colormap where
         toValue ColormapNone{} = 0
@@ -2117,7 +2117,7 @@
                                                  colormap_ColormapNotifyEvent :: COLORMAP,
                                                  new_ColormapNotifyEvent :: Bool,
                                                  state_ColormapNotifyEvent :: ColormapState}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ColormapNotifyEvent
  
@@ -2138,7 +2138,7 @@
                                                window_ClientMessageEvent :: WINDOW,
                                                type_ClientMessageEvent :: ATOM,
                                                data_ClientMessageEvent :: ClientMessageData}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event ClientMessageEvent
  
@@ -2155,7 +2155,7 @@
 data Mapping = MappingModifier
              | MappingKeyboard
              | MappingPointer
-             deriving Show
+             deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Mapping where
         toValue MappingModifier{} = 0
@@ -2169,7 +2169,7 @@
                                                :: Mapping,
                                                first_keycode_MappingNotifyEvent :: KEYCODE,
                                                count_MappingNotifyEvent :: Word8}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event MappingNotifyEvent
  
@@ -2188,7 +2188,7 @@
                                    Word32,
                                    minor_opcode_RequestError :: Word16,
                                    major_opcode_RequestError :: Word8}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error RequestError
  
@@ -2204,7 +2204,7 @@
 data ValueError = MkValueError{bad_value_ValueError :: Word32,
                                minor_opcode_ValueError :: Word16,
                                major_opcode_ValueError :: Word8}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error ValueError
  
@@ -2220,7 +2220,7 @@
 data WindowError = MkWindowError{bad_value_WindowError :: Word32,
                                  minor_opcode_WindowError :: Word16,
                                  major_opcode_WindowError :: Word8}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error WindowError
  
@@ -2236,7 +2236,7 @@
 data PixmapError = MkPixmapError{bad_value_PixmapError :: Word32,
                                  minor_opcode_PixmapError :: Word16,
                                  major_opcode_PixmapError :: Word8}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error PixmapError
  
@@ -2251,7 +2251,7 @@
  
 data AtomError = MkAtomError{bad_value_AtomError :: Word32,
                              minor_opcode_AtomError :: Word16, major_opcode_AtomError :: Word8}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error AtomError
  
@@ -2267,7 +2267,7 @@
 data CursorError = MkCursorError{bad_value_CursorError :: Word32,
                                  minor_opcode_CursorError :: Word16,
                                  major_opcode_CursorError :: Word8}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error CursorError
  
@@ -2282,7 +2282,7 @@
  
 data FontError = MkFontError{bad_value_FontError :: Word32,
                              minor_opcode_FontError :: Word16, major_opcode_FontError :: Word8}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error FontError
  
@@ -2298,7 +2298,7 @@
 data MatchError = MkMatchError{bad_value_MatchError :: Word32,
                                minor_opcode_MatchError :: Word16,
                                major_opcode_MatchError :: Word8}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error MatchError
  
@@ -2315,7 +2315,7 @@
                                      Word32,
                                      minor_opcode_DrawableError :: Word16,
                                      major_opcode_DrawableError :: Word8}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error DrawableError
  
@@ -2331,7 +2331,7 @@
 data AccessError = MkAccessError{bad_value_AccessError :: Word32,
                                  minor_opcode_AccessError :: Word16,
                                  major_opcode_AccessError :: Word8}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error AccessError
  
@@ -2347,7 +2347,7 @@
 data AllocError = MkAllocError{bad_value_AllocError :: Word32,
                                minor_opcode_AllocError :: Word16,
                                major_opcode_AllocError :: Word8}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error AllocError
  
@@ -2364,7 +2364,7 @@
                                      Word32,
                                      minor_opcode_ColormapError :: Word16,
                                      major_opcode_ColormapError :: Word8}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error ColormapError
  
@@ -2381,7 +2381,7 @@
                                      Word32,
                                      minor_opcode_GContextError :: Word16,
                                      major_opcode_GContextError :: Word8}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error GContextError
  
@@ -2398,7 +2398,7 @@
                                      Word32,
                                      minor_opcode_IDChoiceError :: Word16,
                                      major_opcode_IDChoiceError :: Word8}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error IDChoiceError
  
@@ -2413,7 +2413,7 @@
  
 data NameError = MkNameError{bad_value_NameError :: Word32,
                              minor_opcode_NameError :: Word16, major_opcode_NameError :: Word8}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error NameError
  
@@ -2429,7 +2429,7 @@
 data LengthError = MkLengthError{bad_value_LengthError :: Word32,
                                  minor_opcode_LengthError :: Word16,
                                  major_opcode_LengthError :: Word8}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error LengthError
  
@@ -2446,7 +2446,7 @@
                                                  :: Word32,
                                                  minor_opcode_ImplementationError :: Word16,
                                                  major_opcode_ImplementationError :: Word8}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Error ImplementationError
  
@@ -2462,7 +2462,7 @@
 data WindowClass = WindowClassCopyFromParent
                  | WindowClassInputOutput
                  | WindowClassInputOnly
-                 deriving Show
+                 deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum WindowClass where
         toValue WindowClassCopyFromParent{} = 0
@@ -2487,7 +2487,7 @@
         | CWDontPropagate
         | CWColormap
         | CWCursor
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum CW where
         toBit CWBackPixmap{} = 0
@@ -2523,7 +2523,7 @@
  
 data BackPixmap = BackPixmapNone
                 | BackPixmapParentRelative
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum BackPixmap where
         toValue BackPixmapNone{} = 0
@@ -2543,7 +2543,7 @@
              | GravitySouth
              | GravitySouthEast
              | GravityStatic
-             deriving Show
+             deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Gravity where
         toValue GravityBitForget{} = 0
@@ -2579,7 +2579,7 @@
                                    class_CreateWindow :: WindowClass,
                                    visual_CreateWindow :: VISUALID,
                                    value_CreateWindow :: ValueParam Word32}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CreateWindow where
         serialize x
@@ -2613,7 +2613,7 @@
                                                        :: WINDOW,
                                                        value_ChangeWindowAttributes ::
                                                        ValueParam Word32}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ChangeWindowAttributes where
         serialize x
@@ -2630,7 +2630,7 @@
 data MapState = MapStateUnmapped
               | MapStateUnviewable
               | MapStateViewable
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum MapState where
         toValue MapStateUnmapped{} = 0
@@ -2642,7 +2642,7 @@
  
 data GetWindowAttributes = MkGetWindowAttributes{window_GetWindowAttributes
                                                  :: WINDOW}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetWindowAttributes where
         serialize x
@@ -2683,7 +2683,7 @@
                                                            :: [EventMask],
                                                            do_not_propagate_mask_GetWindowAttributesReply
                                                            :: [EventMask]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetWindowAttributesReply where
         deserialize
@@ -2723,7 +2723,7 @@
  
 data DestroyWindow = MkDestroyWindow{window_DestroyWindow ::
                                      WINDOW}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DestroyWindow where
         serialize x
@@ -2736,7 +2736,7 @@
  
 data DestroySubwindows = MkDestroySubwindows{window_DestroySubwindows
                                              :: WINDOW}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DestroySubwindows where
         serialize x
@@ -2749,7 +2749,7 @@
  
 data SetMode = SetModeInsert
              | SetModeDelete
-             deriving Show
+             deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SetMode where
         toValue SetModeInsert{} = 0
@@ -2759,7 +2759,7 @@
  
 data ChangeSaveSet = MkChangeSaveSet{mode_ChangeSaveSet :: SetMode,
                                      window_ChangeSaveSet :: WINDOW}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ChangeSaveSet where
         serialize x
@@ -2775,7 +2775,7 @@
                                        WINDOW,
                                        parent_ReparentWindow :: WINDOW, x_ReparentWindow :: Int16,
                                        y_ReparentWindow :: Int16}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ReparentWindow where
         serialize x
@@ -2794,7 +2794,7 @@
               + size (y_ReparentWindow x)
  
 data MapWindow = MkMapWindow{window_MapWindow :: WINDOW}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize MapWindow where
         serialize x
@@ -2807,7 +2807,7 @@
  
 data MapSubwindows = MkMapSubwindows{window_MapSubwindows ::
                                      WINDOW}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize MapSubwindows where
         serialize x
@@ -2819,7 +2819,7 @@
         size x = 3 + 1 + size (window_MapSubwindows x)
  
 data UnmapWindow = MkUnmapWindow{window_UnmapWindow :: WINDOW}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize UnmapWindow where
         serialize x
@@ -2832,7 +2832,7 @@
  
 data UnmapSubwindows = MkUnmapSubwindows{window_UnmapSubwindows ::
                                          WINDOW}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize UnmapSubwindows where
         serialize x
@@ -2850,7 +2850,7 @@
                   | ConfigWindowBorderWidth
                   | ConfigWindowSibling
                   | ConfigWindowStackMode
-                  deriving Show
+                  deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum ConfigWindow where
         toBit ConfigWindowX{} = 0
@@ -2873,7 +2873,7 @@
                | StackModeTopIf
                | StackModeBottomIf
                | StackModeOpposite
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum StackMode where
         toValue StackModeAbove{} = 0
@@ -2889,9 +2889,8 @@
  
 data ConfigureWindow = MkConfigureWindow{window_ConfigureWindow ::
                                          WINDOW,
-                                         value_mask_ConfigureWindow :: Word16,
                                          value_ConfigureWindow :: ValueParam Word16}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ConfigureWindow where
         serialize x
@@ -2899,19 +2898,15 @@
                putSkip 1
                serialize (convertBytesToRequestSize (size x) :: Int16)
                serialize (window_ConfigureWindow x)
-               serialize (value_mask_ConfigureWindow x)
-               putSkip 2
-               serialize (value_ConfigureWindow x)
+               serializeValueParam 2 (value_ConfigureWindow x)
                putSkip (requiredPadding (size x))
         size x
           = 3 + 1 + size (window_ConfigureWindow x) +
-              size (value_mask_ConfigureWindow x)
-              + 2
-              + size (value_ConfigureWindow x)
+              (size (value_ConfigureWindow x) + 2)
  
 data Circulate = CirculateRaiseLowest
                | CirculateLowerHighest
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Circulate where
         toValue CirculateRaiseLowest{} = 0
@@ -2922,7 +2917,7 @@
 data CirculateWindow = MkCirculateWindow{direction_CirculateWindow
                                          :: Circulate,
                                          window_CirculateWindow :: WINDOW}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CirculateWindow where
         serialize x
@@ -2935,7 +2930,7 @@
           = 3 + size (undefined :: Word8) + size (window_CirculateWindow x)
  
 data GetGeometry = MkGetGeometry{drawable_GetGeometry :: DRAWABLE}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetGeometry where
         serialize x
@@ -2953,7 +2948,7 @@
                                            width_GetGeometryReply :: Word16,
                                            height_GetGeometryReply :: Word16,
                                            border_width_GetGeometryReply :: Word16}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetGeometryReply where
         deserialize
@@ -2973,7 +2968,7 @@
                  (MkGetGeometryReply depth root x y width height border_width)
  
 data QueryTree = MkQueryTree{window_QueryTree :: WINDOW}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize QueryTree where
         serialize x
@@ -2989,7 +2984,7 @@
                                        parent_QueryTreeReply :: WINDOW,
                                        children_len_QueryTreeReply :: Word16,
                                        children_QueryTreeReply :: [WINDOW]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryTreeReply where
         deserialize
@@ -3007,7 +3002,7 @@
  
 data InternAtom = MkInternAtom{only_if_exists_InternAtom :: Bool,
                                name_len_InternAtom :: Word16, name_InternAtom :: [CChar]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize InternAtom where
         serialize x
@@ -3026,7 +3021,7 @@
  
 data InternAtomReply = MkInternAtomReply{atom_InternAtomReply ::
                                          ATOM}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize InternAtomReply where
         deserialize
@@ -3039,7 +3034,7 @@
                return (MkInternAtomReply atom)
  
 data GetAtomName = MkGetAtomName{atom_GetAtomName :: ATOM}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetAtomName where
         serialize x
@@ -3053,7 +3048,7 @@
 data GetAtomNameReply = MkGetAtomNameReply{name_len_GetAtomNameReply
                                            :: Word16,
                                            name_GetAtomNameReply :: [CChar]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetAtomNameReply where
         deserialize
@@ -3070,7 +3065,7 @@
 data PropMode = PropModeReplace
               | PropModePrepend
               | PropModeAppend
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum PropMode where
         toValue PropModeReplace{} = 0
@@ -3087,7 +3082,7 @@
                                        format_ChangeProperty :: Word8,
                                        data_len_ChangeProperty :: Word32,
                                        data_ChangeProperty :: [Word8]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ChangeProperty where
         serialize x
@@ -3114,7 +3109,7 @@
 data DeleteProperty = MkDeleteProperty{window_DeleteProperty ::
                                        WINDOW,
                                        property_DeleteProperty :: ATOM}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize DeleteProperty where
         serialize x
@@ -3129,7 +3124,7 @@
               size (property_DeleteProperty x)
  
 data GetPropertyType = GetPropertyTypeAny
-                     deriving Show
+                     deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum GetPropertyType where
         toValue GetPropertyTypeAny{} = 0
@@ -3139,7 +3134,7 @@
                                  window_GetProperty :: WINDOW, property_GetProperty :: ATOM,
                                  type_GetProperty :: ATOM, long_offset_GetProperty :: Word32,
                                  long_length_GetProperty :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetProperty where
         serialize x
@@ -3165,7 +3160,7 @@
                                            bytes_after_GetPropertyReply :: Word32,
                                            value_len_GetPropertyReply :: Word32,
                                            value_GetPropertyReply :: [Word8]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPropertyReply where
         deserialize
@@ -3186,7 +3181,7 @@
  
 data ListProperties = MkListProperties{window_ListProperties ::
                                        WINDOW}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ListProperties where
         serialize x
@@ -3200,7 +3195,7 @@
 data ListPropertiesReply = MkListPropertiesReply{atoms_len_ListPropertiesReply
                                                  :: Word16,
                                                  atoms_ListPropertiesReply :: [ATOM]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListPropertiesReply where
         deserialize
@@ -3218,7 +3213,7 @@
                                              :: WINDOW,
                                              selection_SetSelectionOwner :: ATOM,
                                              time_SetSelectionOwner :: TIMESTAMP}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetSelectionOwner where
         serialize x
@@ -3236,7 +3231,7 @@
  
 data GetSelectionOwner = MkGetSelectionOwner{selection_GetSelectionOwner
                                              :: ATOM}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetSelectionOwner where
         serialize x
@@ -3249,7 +3244,7 @@
  
 data GetSelectionOwnerReply = MkGetSelectionOwnerReply{owner_GetSelectionOwnerReply
                                                        :: WINDOW}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetSelectionOwnerReply where
         deserialize
@@ -3267,7 +3262,7 @@
                                            target_ConvertSelection :: ATOM,
                                            property_ConvertSelection :: ATOM,
                                            time_ConvertSelection :: TIMESTAMP}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ConvertSelection where
         serialize x
@@ -3289,7 +3284,7 @@
  
 data SendEventDest = SendEventDestPointerWindow
                    | SendEventDestItemFocus
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SendEventDest where
         toValue SendEventDestPointerWindow{} = 0
@@ -3300,7 +3295,7 @@
 data SendEvent = MkSendEvent{propagate_SendEvent :: Bool,
                              destination_SendEvent :: WINDOW,
                              event_mask_SendEvent :: [EventMask], event_SendEvent :: [CChar]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SendEvent where
         serialize x
@@ -3318,7 +3313,7 @@
  
 data GrabMode = GrabModeSync
               | GrabModeAsync
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum GrabMode where
         toValue GrabModeSync{} = 0
@@ -3331,7 +3326,7 @@
                 | GrabStatusInvalidTime
                 | GrabStatusNotViewable
                 | GrabStatusFrozen
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum GrabStatus where
         toValue GrabStatusSuccess{} = 0
@@ -3346,7 +3341,7 @@
         fromValue 4 = GrabStatusFrozen
  
 data Cursor = CursorNone
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Cursor where
         toValue CursorNone{} = 0
@@ -3359,7 +3354,7 @@
                                  keyboard_mode_GrabPointer :: GrabMode,
                                  confine_to_GrabPointer :: WINDOW, cursor_GrabPointer :: CURSOR,
                                  time_GrabPointer :: TIMESTAMP}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GrabPointer where
         serialize x
@@ -3386,7 +3381,7 @@
  
 data GrabPointerReply = MkGrabPointerReply{status_GrabPointerReply
                                            :: GrabStatus}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GrabPointerReply where
         deserialize
@@ -3399,7 +3394,7 @@
  
 data UngrabPointer = MkUngrabPointer{time_UngrabPointer ::
                                      TIMESTAMP}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize UngrabPointer where
         serialize x
@@ -3416,7 +3411,7 @@
                  | ButtonIndex3
                  | ButtonIndex4
                  | ButtonIndex5
-                 deriving Show
+                 deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ButtonIndex where
         toValue ButtonIndexAny{} = 0
@@ -3440,7 +3435,7 @@
                                confine_to_GrabButton :: WINDOW, cursor_GrabButton :: CURSOR,
                                button_GrabButton :: ButtonIndex,
                                modifiers_GrabButton :: [ModMask]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GrabButton where
         serialize x
@@ -3473,7 +3468,7 @@
                                    ButtonIndex,
                                    grab_window_UngrabButton :: WINDOW,
                                    modifiers_UngrabButton :: [ModMask]}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize UngrabButton where
         serialize x
@@ -3494,7 +3489,7 @@
                                                          time_ChangeActivePointerGrab :: TIMESTAMP,
                                                          event_mask_ChangeActivePointerGrab ::
                                                          [EventMask]}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ChangeActivePointerGrab where
         serialize x
@@ -3518,7 +3513,7 @@
                                    time_GrabKeyboard :: TIMESTAMP,
                                    pointer_mode_GrabKeyboard :: GrabMode,
                                    keyboard_mode_GrabKeyboard :: GrabMode}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GrabKeyboard where
         serialize x
@@ -3541,7 +3536,7 @@
  
 data GrabKeyboardReply = MkGrabKeyboardReply{status_GrabKeyboardReply
                                              :: GrabStatus}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GrabKeyboardReply where
         deserialize
@@ -3554,7 +3549,7 @@
  
 data UngrabKeyboard = MkUngrabKeyboard{time_UngrabKeyboard ::
                                        TIMESTAMP}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize UngrabKeyboard where
         serialize x
@@ -3566,7 +3561,7 @@
         size x = 3 + 1 + size (time_UngrabKeyboard x)
  
 data Grab = GrabAny
-          deriving Show
+          deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Grab where
         toValue GrabAny{} = 0
@@ -3576,7 +3571,7 @@
                          grab_window_GrabKey :: WINDOW, modifiers_GrabKey :: [ModMask],
                          key_GrabKey :: KEYCODE, pointer_mode_GrabKey :: GrabMode,
                          keyboard_mode_GrabKey :: GrabMode}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GrabKey where
         serialize x
@@ -3600,7 +3595,7 @@
  
 data UngrabKey = MkUngrabKey{key_UngrabKey :: KEYCODE,
                              grab_window_UngrabKey :: WINDOW, modifiers_UngrabKey :: [ModMask]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize UngrabKey where
         serialize x
@@ -3624,7 +3619,7 @@
            | AllowReplayKeyboard
            | AllowAsyncBoth
            | AllowSyncBoth
-           deriving Show
+           deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Allow where
         toValue AllowAsyncPointer{} = 0
@@ -3646,7 +3641,7 @@
  
 data AllowEvents = MkAllowEvents{mode_AllowEvents :: Allow,
                                  time_AllowEvents :: TIMESTAMP}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize AllowEvents where
         serialize x
@@ -3658,7 +3653,7 @@
         size x = 3 + size (undefined :: Word8) + size (time_AllowEvents x)
  
 data GrabServer = MkGrabServer{}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GrabServer where
         serialize x
@@ -3669,7 +3664,7 @@
         size x = 4
  
 data UngrabServer = MkUngrabServer{}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize UngrabServer where
         serialize x
@@ -3680,7 +3675,7 @@
         size x = 4
  
 data QueryPointer = MkQueryPointer{window_QueryPointer :: WINDOW}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize QueryPointer where
         serialize x
@@ -3700,7 +3695,7 @@
                                              win_x_QueryPointerReply :: Int16,
                                              win_y_QueryPointerReply :: Int16,
                                              mask_QueryPointerReply :: [KeyButMask]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryPointerReply where
         deserialize
@@ -3724,7 +3719,7 @@
  
 data TIMECOORD = MkTIMECOORD{time_TIMECOORD :: TIMESTAMP,
                              x_TIMECOORD :: Int16, y_TIMECOORD :: Int16}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize TIMECOORD where
         serialize x
@@ -3746,7 +3741,7 @@
                                          WINDOW,
                                          start_GetMotionEvents :: TIMESTAMP,
                                          stop_GetMotionEvents :: TIMESTAMP}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetMotionEvents where
         serialize x
@@ -3765,7 +3760,7 @@
 data GetMotionEventsReply = MkGetMotionEventsReply{events_len_GetMotionEventsReply
                                                    :: Word32,
                                                    events_GetMotionEventsReply :: [TIMECOORD]}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetMotionEventsReply where
         deserialize
@@ -3784,7 +3779,7 @@
                                                    dst_window_TranslateCoordinates :: WINDOW,
                                                    src_x_TranslateCoordinates :: Int16,
                                                    src_y_TranslateCoordinates :: Int16}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize TranslateCoordinates where
         serialize x
@@ -3810,7 +3805,7 @@
                                                              Word16,
                                                              dst_y_TranslateCoordinatesReply ::
                                                              Word16}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize TranslateCoordinatesReply where
         deserialize
@@ -3829,7 +3824,7 @@
                                  src_y_WarpPointer :: Int16, src_width_WarpPointer :: Word16,
                                  src_height_WarpPointer :: Word16, dst_x_WarpPointer :: Int16,
                                  dst_y_WarpPointer :: Int16}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize WarpPointer where
         serialize x
@@ -3859,7 +3854,7 @@
                 | InputFocusPointerRoot
                 | InputFocusParent
                 | InputFocusFollowKeyboard
-                deriving Show
+                deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum InputFocus where
         toValue InputFocusNone{} = 0
@@ -3874,7 +3869,7 @@
 data SetInputFocus = MkSetInputFocus{revert_to_SetInputFocus ::
                                      InputFocus,
                                      focus_SetInputFocus :: WINDOW, time_SetInputFocus :: TIMESTAMP}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetInputFocus where
         serialize x
@@ -3889,7 +3884,7 @@
               size (time_SetInputFocus x)
  
 data GetInputFocus = MkGetInputFocus{}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetInputFocus where
         serialize x
@@ -3902,7 +3897,7 @@
 data GetInputFocusReply = MkGetInputFocusReply{revert_to_GetInputFocusReply
                                                :: InputFocus,
                                                focus_GetInputFocusReply :: WINDOW}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetInputFocusReply where
         deserialize
@@ -3915,7 +3910,7 @@
                return (MkGetInputFocusReply revert_to focus)
  
 data QueryKeymap = MkQueryKeymap{}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize QueryKeymap where
         serialize x
@@ -3927,7 +3922,7 @@
  
 data QueryKeymapReply = MkQueryKeymapReply{keys_QueryKeymapReply ::
                                            [Word8]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryKeymapReply where
         deserialize
@@ -3941,7 +3936,7 @@
  
 data OpenFont = MkOpenFont{fid_OpenFont :: FONT,
                            name_len_OpenFont :: Word16, name_OpenFont :: [CChar]}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize OpenFont where
         serialize x
@@ -3958,7 +3953,7 @@
               sum (map size (name_OpenFont x))
  
 data CloseFont = MkCloseFont{font_CloseFont :: FONT}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CloseFont where
         serialize x
@@ -3971,7 +3966,7 @@
  
 data FontDraw = FontDrawLeftToRight
               | FontDrawRightToLeft
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum FontDraw where
         toValue FontDrawLeftToRight{} = 0
@@ -3981,7 +3976,7 @@
  
 data FONTPROP = MkFONTPROP{name_FONTPROP :: ATOM,
                            value_FONTPROP :: Word32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize FONTPROP where
         serialize x
@@ -3999,7 +3994,7 @@
                            right_side_bearing_CHARINFO :: Int16,
                            character_width_CHARINFO :: Int16, ascent_CHARINFO :: Int16,
                            descent_CHARINFO :: Int16, attributes_CHARINFO :: Word16}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CHARINFO where
         serialize x
@@ -4032,7 +4027,7 @@
                     attributes)
  
 data QueryFont = MkQueryFont{font_QueryFont :: FONTABLE}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize QueryFont where
         serialize x
@@ -4059,7 +4054,7 @@
                                        char_infos_len_QueryFontReply :: Word32,
                                        properties_QueryFontReply :: [FONTPROP],
                                        char_infos_QueryFontReply :: [CHARINFO]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryFontReply where
         deserialize
@@ -4103,7 +4098,7 @@
 data QueryTextExtents = MkQueryTextExtents{font_QueryTextExtents ::
                                            FONTABLE,
                                            string_QueryTextExtents :: [CHAR2B]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 odd_length_QueryTextExtents :: QueryTextExtents -> Bool
 odd_length_QueryTextExtents x
@@ -4134,7 +4129,7 @@
                                                      overall_width_QueryTextExtentsReply :: Int32,
                                                      overall_left_QueryTextExtentsReply :: Int32,
                                                      overall_right_QueryTextExtentsReply :: Int32}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryTextExtentsReply where
         deserialize
@@ -4159,7 +4154,7 @@
                     overall_right)
  
 data STR = MkSTR{name_len_STR :: Word8, name_STR :: [CChar]}
-         deriving (Show, Typeable)
+         deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize STR where
         serialize x
@@ -4175,7 +4170,7 @@
  
 data ListFonts = MkListFonts{max_names_ListFonts :: Word16,
                              pattern_len_ListFonts :: Word16, pattern_ListFonts :: [CChar]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ListFonts where
         serialize x
@@ -4194,7 +4189,7 @@
 data ListFontsReply = MkListFontsReply{names_len_ListFontsReply ::
                                        Word16,
                                        names_ListFontsReply :: [STR]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListFontsReply where
         deserialize
@@ -4212,7 +4207,7 @@
                                              :: Word16,
                                              pattern_len_ListFontsWithInfo :: Word16,
                                              pattern_ListFontsWithInfo :: [CChar]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ListFontsWithInfo where
         serialize x
@@ -4255,7 +4250,7 @@
                                                        properties_ListFontsWithInfoReply ::
                                                        [FONTPROP],
                                                        name_ListFontsWithInfoReply :: [CChar]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListFontsWithInfoReply where
         deserialize
@@ -4299,7 +4294,7 @@
  
 data SetFontPath = MkSetFontPath{font_qty_SetFontPath :: Word16,
                                  path_SetFontPath :: [CChar]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetFontPath where
         serialize x
@@ -4314,7 +4309,7 @@
               sum (map size (path_SetFontPath x))
  
 data GetFontPath = MkGetFontPath{}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetFontPath where
         serialize x
@@ -4327,7 +4322,7 @@
 data GetFontPathReply = MkGetFontPathReply{path_len_GetFontPathReply
                                            :: Word16,
                                            path_GetFontPathReply :: [STR]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetFontPathReply where
         deserialize
@@ -4344,7 +4339,7 @@
 data CreatePixmap = MkCreatePixmap{depth_CreatePixmap :: Word8,
                                    pid_CreatePixmap :: PIXMAP, drawable_CreatePixmap :: DRAWABLE,
                                    width_CreatePixmap :: Word16, height_CreatePixmap :: Word16}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CreatePixmap where
         serialize x
@@ -4363,7 +4358,7 @@
               + size (height_CreatePixmap x)
  
 data FreePixmap = MkFreePixmap{pixmap_FreePixmap :: PIXMAP}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize FreePixmap where
         serialize x
@@ -4397,7 +4392,7 @@
         | GCDashOffset
         | GCDashList
         | GCArcMode
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum GC where
         toBit GCFunction{} = 0
@@ -4463,7 +4458,7 @@
         | GXorInverted
         | GXnand
         | GXset
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum GX where
         toValue GXclear{} = 0
@@ -4502,7 +4497,7 @@
 data LineStyle = LineStyleSolid
                | LineStyleOnOffDash
                | LineStyleDoubleDash
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum LineStyle where
         toValue LineStyleSolid{} = 0
@@ -4516,7 +4511,7 @@
               | CapStyleButt
               | CapStyleRound
               | CapStyleProjecting
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum CapStyle where
         toValue CapStyleNotLast{} = 0
@@ -4531,7 +4526,7 @@
 data JoinStyle = JoinStyleMiter
                | JoinStyleRound
                | JoinStyleBevel
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum JoinStyle where
         toValue JoinStyleMiter{} = 0
@@ -4545,7 +4540,7 @@
                | FillStyleTiled
                | FillStyleStippled
                | FillStyleOpaqueStippled
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum FillStyle where
         toValue FillStyleSolid{} = 0
@@ -4559,7 +4554,7 @@
  
 data FillRule = FillRuleEvenOdd
               | FillRuleWinding
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum FillRule where
         toValue FillRuleEvenOdd{} = 0
@@ -4569,7 +4564,7 @@
  
 data SubwindowMode = SubwindowModeClipByChildren
                    | SubwindowModeIncludeInferiors
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum SubwindowMode where
         toValue SubwindowModeClipByChildren{} = 0
@@ -4579,7 +4574,7 @@
  
 data ArcMode = ArcModeChord
              | ArcModePieSlice
-             deriving Show
+             deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ArcMode where
         toValue ArcModeChord{} = 0
@@ -4589,7 +4584,7 @@
  
 data CreateGC = MkCreateGC{cid_CreateGC :: GCONTEXT,
                            drawable_CreateGC :: DRAWABLE, value_CreateGC :: ValueParam Word32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CreateGC where
         serialize x
@@ -4606,7 +4601,7 @@
  
 data ChangeGC = MkChangeGC{gc_ChangeGC :: GCONTEXT,
                            value_ChangeGC :: ValueParam Word32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ChangeGC where
         serialize x
@@ -4620,7 +4615,7 @@
  
 data CopyGC = MkCopyGC{src_gc_CopyGC :: GCONTEXT,
                        dst_gc_CopyGC :: GCONTEXT, value_mask_CopyGC :: [GC]}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CopyGC where
         serialize x
@@ -4638,7 +4633,7 @@
 data SetDashes = MkSetDashes{gc_SetDashes :: GCONTEXT,
                              dash_offset_SetDashes :: Word16, dashes_len_SetDashes :: Word16,
                              dashes_SetDashes :: [Word8]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetDashes where
         serialize x
@@ -4659,7 +4654,7 @@
                   | ClipOrderingYSorted
                   | ClipOrderingYXSorted
                   | ClipOrderingYXBanded
-                  deriving Show
+                  deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ClipOrdering where
         toValue ClipOrderingUnsorted{} = 0
@@ -4677,7 +4672,7 @@
                                              clip_x_origin_SetClipRectangles :: Int16,
                                              clip_y_origin_SetClipRectangles :: Int16,
                                              rectangles_SetClipRectangles :: [RECTANGLE]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetClipRectangles where
         serialize x
@@ -4696,7 +4691,7 @@
               + sum (map size (rectangles_SetClipRectangles x))
  
 data FreeGC = MkFreeGC{gc_FreeGC :: GCONTEXT}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize FreeGC where
         serialize x
@@ -4711,7 +4706,7 @@
                              window_ClearArea :: WINDOW, x_ClearArea :: Int16,
                              y_ClearArea :: Int16, width_ClearArea :: Word16,
                              height_ClearArea :: Word16}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ClearArea where
         serialize x
@@ -4736,7 +4731,7 @@
                            src_x_CopyArea :: Int16, src_y_CopyArea :: Int16,
                            dst_x_CopyArea :: Int16, dst_y_CopyArea :: Int16,
                            width_CopyArea :: Word16, height_CopyArea :: Word16}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CopyArea where
         serialize x
@@ -4770,7 +4765,7 @@
                              dst_x_CopyPlane :: Int16, dst_y_CopyPlane :: Int16,
                              width_CopyPlane :: Word16, height_CopyPlane :: Word16,
                              bit_plane_CopyPlane :: Word32}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CopyPlane where
         serialize x
@@ -4802,7 +4797,7 @@
  
 data CoordMode = CoordModeOrigin
                | CoordModePrevious
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum CoordMode where
         toValue CoordModeOrigin{} = 0
@@ -4814,7 +4809,7 @@
                              CoordMode,
                              drawable_PolyPoint :: DRAWABLE, gc_PolyPoint :: GCONTEXT,
                              points_PolyPoint :: [POINT]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PolyPoint where
         serialize x
@@ -4833,7 +4828,7 @@
 data PolyLine = MkPolyLine{coordinate_mode_PolyLine :: CoordMode,
                            drawable_PolyLine :: DRAWABLE, gc_PolyLine :: GCONTEXT,
                            points_PolyLine :: [POINT]}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PolyLine where
         serialize x
@@ -4851,7 +4846,7 @@
  
 data SEGMENT = MkSEGMENT{x1_SEGMENT :: Int16, y1_SEGMENT :: Int16,
                          x2_SEGMENT :: Int16, y2_SEGMENT :: Int16}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SEGMENT where
         serialize x
@@ -4873,7 +4868,7 @@
  
 data PolySegment = MkPolySegment{drawable_PolySegment :: DRAWABLE,
                                  gc_PolySegment :: GCONTEXT, segments_PolySegment :: [SEGMENT]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PolySegment where
         serialize x
@@ -4892,7 +4887,7 @@
                                      DRAWABLE,
                                      gc_PolyRectangle :: GCONTEXT,
                                      rectangles_PolyRectangle :: [RECTANGLE]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PolyRectangle where
         serialize x
@@ -4910,7 +4905,7 @@
  
 data PolyArc = MkPolyArc{drawable_PolyArc :: DRAWABLE,
                          gc_PolyArc :: GCONTEXT, arcs_PolyArc :: [ARC]}
-             deriving (Show, Typeable)
+             deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PolyArc where
         serialize x
@@ -4928,7 +4923,7 @@
 data PolyShape = PolyShapeComplex
                | PolyShapeNonconvex
                | PolyShapeConvex
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum PolyShape where
         toValue PolyShapeComplex{} = 0
@@ -4941,7 +4936,7 @@
 data FillPoly = MkFillPoly{drawable_FillPoly :: DRAWABLE,
                            gc_FillPoly :: GCONTEXT, shape_FillPoly :: PolyShape,
                            coordinate_mode_FillPoly :: CoordMode, points_FillPoly :: [POINT]}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize FillPoly where
         serialize x
@@ -4966,7 +4961,7 @@
                                              :: DRAWABLE,
                                              gc_PolyFillRectangle :: GCONTEXT,
                                              rectangles_PolyFillRectangle :: [RECTANGLE]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PolyFillRectangle where
         serialize x
@@ -4984,7 +4979,7 @@
  
 data PolyFillArc = MkPolyFillArc{drawable_PolyFillArc :: DRAWABLE,
                                  gc_PolyFillArc :: GCONTEXT, arcs_PolyFillArc :: [ARC]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PolyFillArc where
         serialize x
@@ -5002,7 +4997,7 @@
 data ImageFormat = ImageFormatXYBitmap
                  | ImageFormatXYPixmap
                  | ImageFormatZPixmap
-                 deriving Show
+                 deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ImageFormat where
         toValue ImageFormatXYBitmap{} = 0
@@ -5018,7 +5013,7 @@
                            dst_x_PutImage :: Int16, dst_y_PutImage :: Int16,
                            left_pad_PutImage :: Word8, depth_PutImage :: Word8,
                            data_PutImage :: [Word8]}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PutImage where
         serialize x
@@ -5052,7 +5047,7 @@
                            drawable_GetImage :: DRAWABLE, x_GetImage :: Int16,
                            y_GetImage :: Int16, width_GetImage :: Word16,
                            height_GetImage :: Word16, plane_mask_GetImage :: Word32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetImage where
         serialize x
@@ -5077,7 +5072,7 @@
 data GetImageReply = MkGetImageReply{depth_GetImageReply :: Word8,
                                      visual_GetImageReply :: VISUALID,
                                      data_GetImageReply :: [Word8]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetImageReply where
         deserialize
@@ -5094,7 +5089,7 @@
 data PolyText8 = MkPolyText8{drawable_PolyText8 :: DRAWABLE,
                              gc_PolyText8 :: GCONTEXT, x_PolyText8 :: Int16,
                              y_PolyText8 :: Int16, items_PolyText8 :: [Word8]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PolyText8 where
         serialize x
@@ -5116,7 +5111,7 @@
 data PolyText16 = MkPolyText16{drawable_PolyText16 :: DRAWABLE,
                                gc_PolyText16 :: GCONTEXT, x_PolyText16 :: Int16,
                                y_PolyText16 :: Int16, items_PolyText16 :: [Word8]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize PolyText16 where
         serialize x
@@ -5139,7 +5134,7 @@
                                drawable_ImageText8 :: DRAWABLE, gc_ImageText8 :: GCONTEXT,
                                x_ImageText8 :: Int16, y_ImageText8 :: Int16,
                                string_ImageText8 :: [CChar]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ImageText8 where
         serialize x
@@ -5163,7 +5158,7 @@
                                  drawable_ImageText16 :: DRAWABLE, gc_ImageText16 :: GCONTEXT,
                                  x_ImageText16 :: Int16, y_ImageText16 :: Int16,
                                  string_ImageText16 :: [CHAR2B]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ImageText16 where
         serialize x
@@ -5186,7 +5181,7 @@
  
 data ColormapAlloc = ColormapAllocNone
                    | ColormapAllocAll
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ColormapAlloc where
         toValue ColormapAllocNone{} = 0
@@ -5199,7 +5194,7 @@
                                        mid_CreateColormap :: COLORMAP,
                                        window_CreateColormap :: WINDOW,
                                        visual_CreateColormap :: VISUALID}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CreateColormap where
         serialize x
@@ -5216,7 +5211,7 @@
               + size (visual_CreateColormap x)
  
 data FreeColormap = MkFreeColormap{cmap_FreeColormap :: COLORMAP}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize FreeColormap where
         serialize x
@@ -5230,7 +5225,7 @@
 data CopyColormapAndFree = MkCopyColormapAndFree{mid_CopyColormapAndFree
                                                  :: COLORMAP,
                                                  src_cmap_CopyColormapAndFree :: COLORMAP}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CopyColormapAndFree where
         serialize x
@@ -5246,7 +5241,7 @@
  
 data InstallColormap = MkInstallColormap{cmap_InstallColormap ::
                                          COLORMAP}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize InstallColormap where
         serialize x
@@ -5259,7 +5254,7 @@
  
 data UninstallColormap = MkUninstallColormap{cmap_UninstallColormap
                                              :: COLORMAP}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize UninstallColormap where
         serialize x
@@ -5272,7 +5267,7 @@
  
 data ListInstalledColormaps = MkListInstalledColormaps{window_ListInstalledColormaps
                                                        :: WINDOW}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ListInstalledColormaps where
         serialize x
@@ -5287,7 +5282,7 @@
                                                                  :: Word16,
                                                                  cmaps_ListInstalledColormapsReply
                                                                  :: [COLORMAP]}
-                                 deriving (Show, Typeable)
+                                 deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListInstalledColormapsReply where
         deserialize
@@ -5304,7 +5299,7 @@
 data AllocColor = MkAllocColor{cmap_AllocColor :: COLORMAP,
                                red_AllocColor :: Word16, green_AllocColor :: Word16,
                                blue_AllocColor :: Word16}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize AllocColor where
         serialize x
@@ -5328,7 +5323,7 @@
                                          green_AllocColorReply :: Word16,
                                          blue_AllocColorReply :: Word16,
                                          pixel_AllocColorReply :: Word32}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize AllocColorReply where
         deserialize
@@ -5348,7 +5343,7 @@
                                          COLORMAP,
                                          name_len_AllocNamedColor :: Word16,
                                          name_AllocNamedColor :: [CChar]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize AllocNamedColor where
         serialize x
@@ -5374,7 +5369,7 @@
                                                    visual_red_AllocNamedColorReply :: Word16,
                                                    visual_green_AllocNamedColorReply :: Word16,
                                                    visual_blue_AllocNamedColorReply :: Word16}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize AllocNamedColorReply where
         deserialize
@@ -5401,7 +5396,7 @@
                                          cmap_AllocColorCells :: COLORMAP,
                                          colors_AllocColorCells :: Word16,
                                          planes_AllocColorCells :: Word16}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize AllocColorCells where
         serialize x
@@ -5423,7 +5418,7 @@
                                                    masks_len_AllocColorCellsReply :: Word16,
                                                    pixels_AllocColorCellsReply :: [Word32],
                                                    masks_AllocColorCellsReply :: [Word32]}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize AllocColorCellsReply where
         deserialize
@@ -5446,7 +5441,7 @@
                                            reds_AllocColorPlanes :: Word16,
                                            greens_AllocColorPlanes :: Word16,
                                            blues_AllocColorPlanes :: Word16}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize AllocColorPlanes where
         serialize x
@@ -5473,7 +5468,7 @@
                                                      green_mask_AllocColorPlanesReply :: Word32,
                                                      blue_mask_AllocColorPlanesReply :: Word32,
                                                      pixels_AllocColorPlanesReply :: [Word32]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize AllocColorPlanesReply where
         deserialize
@@ -5495,7 +5490,7 @@
  
 data FreeColors = MkFreeColors{cmap_FreeColors :: COLORMAP,
                                plane_mask_FreeColors :: Word32, pixels_FreeColors :: [Word32]}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize FreeColors where
         serialize x
@@ -5513,7 +5508,7 @@
 data ColorFlag = ColorFlagRed
                | ColorFlagGreen
                | ColorFlagBlue
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum ColorFlag where
         toBit ColorFlagRed{} = 0
@@ -5526,7 +5521,7 @@
 data COLORITEM = MkCOLORITEM{pixel_COLORITEM :: Word32,
                              red_COLORITEM :: Word16, green_COLORITEM :: Word16,
                              blue_COLORITEM :: Word16, flags_COLORITEM :: [ColorFlag]}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize COLORITEM where
         serialize x
@@ -5555,7 +5550,7 @@
  
 data StoreColors = MkStoreColors{cmap_StoreColors :: COLORMAP,
                                  items_StoreColors :: [COLORITEM]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize StoreColors where
         serialize x
@@ -5575,7 +5570,7 @@
                                          pixel_StoreNamedColor :: Word32,
                                          name_len_StoreNamedColor :: Word16,
                                          name_StoreNamedColor :: [CChar]}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize StoreNamedColor where
         serialize x
@@ -5597,7 +5592,7 @@
  
 data RGB = MkRGB{red_RGB :: Word16, green_RGB :: Word16,
                  blue_RGB :: Word16}
-         deriving (Show, Typeable)
+         deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize RGB where
         serialize x
@@ -5618,7 +5613,7 @@
  
 data QueryColors = MkQueryColors{cmap_QueryColors :: COLORMAP,
                                  pixels_QueryColors :: [Word32]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize QueryColors where
         serialize x
@@ -5635,7 +5630,7 @@
 data QueryColorsReply = MkQueryColorsReply{colors_len_QueryColorsReply
                                            :: Word16,
                                            colors_QueryColorsReply :: [RGB]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryColorsReply where
         deserialize
@@ -5651,7 +5646,7 @@
  
 data LookupColor = MkLookupColor{cmap_LookupColor :: COLORMAP,
                                  name_len_LookupColor :: Word16, name_LookupColor :: [CChar]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize LookupColor where
         serialize x
@@ -5675,7 +5670,7 @@
                                            visual_red_LookupColorReply :: Word16,
                                            visual_green_LookupColorReply :: Word16,
                                            visual_blue_LookupColorReply :: Word16}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize LookupColorReply where
         deserialize
@@ -5696,7 +5691,7 @@
                     visual_blue)
  
 data Pixmap = PixmapNone
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Pixmap where
         toValue PixmapNone{} = 0
@@ -5711,7 +5706,7 @@
                                    back_green_CreateCursor :: Word16,
                                    back_blue_CreateCursor :: Word16, x_CreateCursor :: Word16,
                                    y_CreateCursor :: Word16}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CreateCursor where
         serialize x
@@ -5743,7 +5738,7 @@
               + size (y_CreateCursor x)
  
 data Font = FontNone
-          deriving Show
+          deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Font where
         toValue FontNone{} = 0
@@ -5761,7 +5756,7 @@
                                              back_red_CreateGlyphCursor :: Word16,
                                              back_green_CreateGlyphCursor :: Word16,
                                              back_blue_CreateGlyphCursor :: Word16}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize CreateGlyphCursor where
         serialize x
@@ -5794,7 +5789,7 @@
               + size (back_blue_CreateGlyphCursor x)
  
 data FreeCursor = MkFreeCursor{cursor_FreeCursor :: CURSOR}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize FreeCursor where
         serialize x
@@ -5813,7 +5808,7 @@
                                      back_red_RecolorCursor :: Word16,
                                      back_green_RecolorCursor :: Word16,
                                      back_blue_RecolorCursor :: Word16}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize RecolorCursor where
         serialize x
@@ -5840,7 +5835,7 @@
 data QueryShapeOf = QueryShapeOfLargestCursor
                   | QueryShapeOfFastestTile
                   | QueryShapeOfFastestStipple
-                  deriving Show
+                  deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum QueryShapeOf where
         toValue QueryShapeOfLargestCursor{} = 0
@@ -5854,7 +5849,7 @@
                                      QueryShapeOf,
                                      drawable_QueryBestSize :: DRAWABLE,
                                      width_QueryBestSize :: Word16, height_QueryBestSize :: Word16}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize QueryBestSize where
         serialize x
@@ -5873,7 +5868,7 @@
 data QueryBestSizeReply = MkQueryBestSizeReply{width_QueryBestSizeReply
                                                :: Word16,
                                                height_QueryBestSizeReply :: Word16}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryBestSizeReply where
         deserialize
@@ -5889,7 +5884,7 @@
 data QueryExtension = MkQueryExtension{name_len_QueryExtension ::
                                        Word16,
                                        name_QueryExtension :: [CChar]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize QueryExtension where
         serialize x
@@ -5909,7 +5904,7 @@
                                                  major_opcode_QueryExtensionReply :: Word8,
                                                  first_event_QueryExtensionReply :: Word8,
                                                  first_error_QueryExtensionReply :: Word8}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryExtensionReply where
         deserialize
@@ -5927,7 +5922,7 @@
                     first_error)
  
 data ListExtensions = MkListExtensions{}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ListExtensions where
         serialize x
@@ -5940,7 +5935,7 @@
 data ListExtensionsReply = MkListExtensionsReply{names_len_ListExtensionsReply
                                                  :: Word8,
                                                  names_ListExtensionsReply :: [STR]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListExtensionsReply where
         deserialize
@@ -5959,7 +5954,7 @@
                                                      keysyms_per_keycode_ChangeKeyboardMapping ::
                                                      Word8,
                                                      keysyms_ChangeKeyboardMapping :: [KEYSYM]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ChangeKeyboardMapping where
         serialize x
@@ -5979,7 +5974,7 @@
 data GetKeyboardMapping = MkGetKeyboardMapping{first_keycode_GetKeyboardMapping
                                                :: KEYCODE,
                                                count_GetKeyboardMapping :: Word8}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetKeyboardMapping where
         serialize x
@@ -5997,7 +5992,7 @@
                                                          :: Word8,
                                                          keysyms_GetKeyboardMappingReply ::
                                                          [KEYSYM]}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetKeyboardMappingReply where
         deserialize
@@ -6018,7 +6013,7 @@
         | KBLedMode
         | KBKey
         | KBAutoRepeatMode
-        deriving Show
+        deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum KB where
         toBit KBKeyClickPercent{} = 0
@@ -6040,7 +6035,7 @@
  
 data LedMode = LedModeOff
              | LedModeOn
-             deriving Show
+             deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum LedMode where
         toValue LedModeOff{} = 0
@@ -6051,7 +6046,7 @@
 data AutoRepeatMode = AutoRepeatModeOff
                     | AutoRepeatModeOn
                     | AutoRepeatModeDefault
-                    deriving Show
+                    deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum AutoRepeatMode where
         toValue AutoRepeatModeOff{} = 0
@@ -6063,7 +6058,7 @@
  
 data ChangeKeyboardControl = MkChangeKeyboardControl{value_ChangeKeyboardControl
                                                      :: ValueParam Word32}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ChangeKeyboardControl where
         serialize x
@@ -6075,7 +6070,7 @@
         size x = 3 + 1 + size (value_ChangeKeyboardControl x)
  
 data GetKeyboardControl = MkGetKeyboardControl{}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetKeyboardControl where
         serialize x
@@ -6098,7 +6093,7 @@
                                                          Word16,
                                                          auto_repeats_GetKeyboardControlReply ::
                                                          [Word8]}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetKeyboardControlReply where
         deserialize
@@ -6123,7 +6118,7 @@
                     auto_repeats)
  
 data Bell = MkBell{percent_Bell :: Int8}
-          deriving (Show, Typeable)
+          deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Bell where
         serialize x
@@ -6140,7 +6135,7 @@
                                                    threshold_ChangePointerControl :: Int16,
                                                    do_acceleration_ChangePointerControl :: Bool,
                                                    do_threshold_ChangePointerControl :: Bool}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ChangePointerControl where
         serialize x
@@ -6161,7 +6156,7 @@
               + size (do_threshold_ChangePointerControl x)
  
 data GetPointerControl = MkGetPointerControl{}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetPointerControl where
         serialize x
@@ -6176,7 +6171,7 @@
                                                        acceleration_denominator_GetPointerControlReply
                                                        :: Word16,
                                                        threshold_GetPointerControlReply :: Word16}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPointerControlReply where
         deserialize
@@ -6197,7 +6192,7 @@
 data Blanking = BlankingNotPreferred
               | BlankingPreferred
               | BlankingDefault
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Blanking where
         toValue BlankingNotPreferred{} = 0
@@ -6210,7 +6205,7 @@
 data Exposures = ExposuresNotAllowed
                | ExposuresAllowed
                | ExposuresDefault
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Exposures where
         toValue ExposuresNotAllowed{} = 0
@@ -6225,7 +6220,7 @@
                                        interval_SetScreenSaver :: Int16,
                                        prefer_blanking_SetScreenSaver :: Blanking,
                                        allow_exposures_SetScreenSaver :: Exposures}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetScreenSaver where
         serialize x
@@ -6244,7 +6239,7 @@
               + size (undefined :: Word8)
  
 data GetScreenSaver = MkGetScreenSaver{}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetScreenSaver where
         serialize x
@@ -6259,7 +6254,7 @@
                                                  interval_GetScreenSaverReply :: Word16,
                                                  prefer_blanking_GetScreenSaverReply :: Blanking,
                                                  allow_exposures_GetScreenSaverReply :: Exposures}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetScreenSaverReply where
         deserialize
@@ -6279,7 +6274,7 @@
  
 data HostMode = HostModeInsert
               | HostModeDelete
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum HostMode where
         toValue HostModeInsert{} = 0
@@ -6292,7 +6287,7 @@
             | FamilyChaos
             | FamilyServerInterpreted
             | FamilyInternet6
-            deriving Show
+            deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Family where
         toValue FamilyInternet{} = 0
@@ -6309,7 +6304,7 @@
 data ChangeHosts = MkChangeHosts{mode_ChangeHosts :: HostMode,
                                  family_ChangeHosts :: Family, address_len_ChangeHosts :: Word16,
                                  address_ChangeHosts :: [CChar]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ChangeHosts where
         serialize x
@@ -6328,7 +6323,7 @@
  
 data HOST = MkHOST{family_HOST :: Family,
                    address_len_HOST :: Word16, address_HOST :: [Word8]}
-          deriving (Show, Typeable)
+          deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize HOST where
         serialize x
@@ -6349,7 +6344,7 @@
                return (MkHOST family address_len address)
  
 data ListHosts = MkListHosts{}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ListHosts where
         serialize x
@@ -6363,7 +6358,7 @@
                                        AccessControl,
                                        hosts_len_ListHostsReply :: Word16,
                                        hosts_ListHostsReply :: [HOST]}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListHostsReply where
         deserialize
@@ -6379,7 +6374,7 @@
  
 data AccessControl = AccessControlDisable
                    | AccessControlEnable
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum AccessControl where
         toValue AccessControlDisable{} = 0
@@ -6389,7 +6384,7 @@
  
 data SetAccessControl = MkSetAccessControl{mode_SetAccessControl ::
                                            AccessControl}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetAccessControl where
         serialize x
@@ -6402,7 +6397,7 @@
 data CloseDown = CloseDownDestroyAll
                | CloseDownRetainPermanent
                | CloseDownRetainTemporary
-               deriving Show
+               deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum CloseDown where
         toValue CloseDownDestroyAll{} = 0
@@ -6414,7 +6409,7 @@
  
 data SetCloseDownMode = MkSetCloseDownMode{mode_SetCloseDownMode ::
                                            CloseDown}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetCloseDownMode where
         serialize x
@@ -6425,14 +6420,14 @@
         size x = 3 + size (undefined :: Word8)
  
 data Kill = KillAllTemporary
-          deriving Show
+          deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum Kill where
         toValue KillAllTemporary{} = 0
         fromValue 0 = KillAllTemporary
  
 data KillClient = MkKillClient{resource_KillClient :: Word32}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize KillClient where
         serialize x
@@ -6448,7 +6443,7 @@
                                            atoms_len_RotateProperties :: Word16,
                                            delta_RotateProperties :: Int16,
                                            atoms_RotateProperties :: [ATOM]}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize RotateProperties where
         serialize x
@@ -6468,7 +6463,7 @@
  
 data ScreenSaver = ScreenSaverReset
                  | ScreenSaverActive
-                 deriving Show
+                 deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ScreenSaver where
         toValue ScreenSaverReset{} = 0
@@ -6478,7 +6473,7 @@
  
 data ForceScreenSaver = MkForceScreenSaver{mode_ForceScreenSaver ::
                                            ScreenSaver}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ForceScreenSaver where
         serialize x
@@ -6491,7 +6486,7 @@
 data MappingStatus = MappingStatusSuccess
                    | MappingStatusBusy
                    | MappingStatusFailure
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum MappingStatus where
         toValue MappingStatusSuccess{} = 0
@@ -6504,7 +6499,7 @@
 data SetPointerMapping = MkSetPointerMapping{map_len_SetPointerMapping
                                              :: Word8,
                                              map_SetPointerMapping :: [Word8]}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetPointerMapping where
         serialize x
@@ -6519,7 +6514,7 @@
  
 data SetPointerMappingReply = MkSetPointerMappingReply{status_SetPointerMappingReply
                                                        :: MappingStatus}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SetPointerMappingReply where
         deserialize
@@ -6531,7 +6526,7 @@
                return (MkSetPointerMappingReply status)
  
 data GetPointerMapping = MkGetPointerMapping{}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetPointerMapping where
         serialize x
@@ -6544,7 +6539,7 @@
 data GetPointerMappingReply = MkGetPointerMappingReply{map_len_GetPointerMappingReply
                                                        :: Word8,
                                                        map_GetPointerMappingReply :: [Word8]}
-                            deriving (Show, Typeable)
+                            deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPointerMappingReply where
         deserialize
@@ -6565,7 +6560,7 @@
               | MapIndex3
               | MapIndex4
               | MapIndex5
-              deriving Show
+              deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum MapIndex where
         toValue MapIndexShift{} = 0
@@ -6588,7 +6583,7 @@
 data SetModifierMapping = MkSetModifierMapping{keycodes_per_modifier_SetModifierMapping
                                                :: Word8,
                                                keycodes_SetModifierMapping :: [KEYCODE]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SetModifierMapping where
         serialize x
@@ -6603,7 +6598,7 @@
  
 data SetModifierMappingReply = MkSetModifierMappingReply{status_SetModifierMappingReply
                                                          :: MappingStatus}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize SetModifierMappingReply where
         deserialize
@@ -6615,7 +6610,7 @@
                return (MkSetModifierMappingReply status)
  
 data GetModifierMapping = MkGetModifierMapping{}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize GetModifierMapping where
         serialize x
@@ -6629,7 +6624,7 @@
                                                          :: Word8,
                                                          keycodes_GetModifierMappingReply ::
                                                          [KEYCODE]}
-                             deriving (Show, Typeable)
+                             deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetModifierMappingReply where
         deserialize
@@ -6644,7 +6639,7 @@
                return (MkGetModifierMappingReply keycodes_per_modifier keycodes)
  
 data NoOperation = MkNoOperation{}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize NoOperation where
         serialize x
diff --git a/patched/Graphics/XHB/Gen/Xv/Types.hs b/patched/Graphics/XHB/Gen/Xv/Types.hs
--- a/patched/Graphics/XHB/Gen/Xv/Types.hs
+++ b/patched/Graphics/XHB/Gen/Xv/Types.hs
@@ -60,7 +60,7 @@
           | TypeVideoMask
           | TypeStillMask
           | TypeImageMask
-          deriving Show
+          deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum Type where
         toBit TypeInputMask{} = 0
@@ -76,7 +76,7 @@
  
 data ImageFormatInfoType = ImageFormatInfoTypeRGB
                          | ImageFormatInfoTypeYUV
-                         deriving Show
+                         deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ImageFormatInfoType where
         toValue ImageFormatInfoTypeRGB{} = 0
@@ -86,7 +86,7 @@
  
 data ImageFormatInfoFormat = ImageFormatInfoFormatPacked
                            | ImageFormatInfoFormatPlanar
-                           deriving Show
+                           deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ImageFormatInfoFormat where
         toValue ImageFormatInfoFormatPacked{} = 0
@@ -96,7 +96,7 @@
  
 data AttributeFlag = AttributeFlagGettable
                    | AttributeFlagSettable
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance BitEnum AttributeFlag where
         toBit AttributeFlagGettable{} = 0
@@ -109,7 +109,7 @@
                        | VideoNotifyReasonBusy
                        | VideoNotifyReasonPreempted
                        | VideoNotifyReasonHardError
-                       deriving Show
+                       deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum VideoNotifyReason where
         toValue VideoNotifyReasonStarted{} = 0
@@ -125,7 +125,7 @@
  
 data ScanlineOrder = ScanlineOrderTopToBottom
                    | ScanlineOrderBottomToTop
-                   deriving Show
+                   deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum ScanlineOrder where
         toValue ScanlineOrderTopToBottom{} = 0
@@ -139,7 +139,7 @@
                     | GrabPortStatusInvalidTime
                     | GrabPortStatusBadReply
                     | GrabPortStatusBadAlloc
-                    deriving Show
+                    deriving (Show, Eq, Ord, Enum, Typeable)
  
 instance SimpleEnum GrabPortStatus where
         toValue GrabPortStatusSuccess{} = 0
@@ -157,7 +157,7 @@
  
 data Rational = MkRational{numerator_Rational :: Int32,
                            denominator_Rational :: Int32}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Rational where
         serialize x
@@ -174,7 +174,7 @@
  
 data Format = MkFormat{visual_Format :: VISUALID,
                        depth_Format :: Word8}
-            deriving (Show, Typeable)
+            deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Format where
         serialize x
@@ -194,7 +194,7 @@
                                  name_size_AdaptorInfo :: Word16, num_ports_AdaptorInfo :: Word16,
                                  num_formats_AdaptorInfo :: Word16, type_AdaptorInfo :: [Type],
                                  name_AdaptorInfo :: [CChar], formats_AdaptorInfo :: [Format]}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize AdaptorInfo where
         serialize x
@@ -234,7 +234,7 @@
                                    name_size_EncodingInfo :: Word16, width_EncodingInfo :: Word16,
                                    height_EncodingInfo :: Word16, rate_EncodingInfo :: Rational,
                                    name_EncodingInfo :: [CChar]}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize EncodingInfo where
         serialize x
@@ -268,7 +268,7 @@
                      height_Image :: Word16, data_size_Image :: Word32,
                      num_planes_Image :: Word32, pitches_Image :: [Word32],
                      offsets_Image :: [Word32], data_Image :: [Word8]}
-           deriving (Show, Typeable)
+           deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize Image where
         serialize x
@@ -306,7 +306,7 @@
                                      [AttributeFlag],
                                      min_AttributeInfo :: Int32, max_AttributeInfo :: Int32,
                                      size_AttributeInfo :: Word32, name_AttributeInfo :: [CChar]}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize AttributeInfo where
         serialize x
@@ -353,7 +353,7 @@
                                          vvert_v_period_ImageFormatInfo :: Word32,
                                          vcomp_order_ImageFormatInfo :: [Word8],
                                          vscanline_order_ImageFormatInfo :: ScanlineOrder}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize ImageFormatInfo where
         serialize x
@@ -464,7 +464,7 @@
                                            time_VideoNotifyEvent :: TIMESTAMP,
                                            drawable_VideoNotifyEvent :: DRAWABLE,
                                            port_VideoNotifyEvent :: PORT}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event VideoNotifyEvent
  
@@ -483,7 +483,7 @@
                                          port_PortNotifyEvent :: PORT,
                                          attribute_PortNotifyEvent :: ATOM,
                                          value_PortNotifyEvent :: Int32}
-                     deriving (Show, Typeable)
+                     deriving (Show, Typeable, Eq, Ord)
  
 instance Graphics.XHB.Shared.Event PortNotifyEvent
  
@@ -499,7 +499,7 @@
                return (MkPortNotifyEvent time port attribute value)
  
 data QueryExtension = MkQueryExtension{}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryExtension where
         extensionId _ = "XVideo"
@@ -513,7 +513,7 @@
 data QueryExtensionReply = MkQueryExtensionReply{major_QueryExtensionReply
                                                  :: Word16,
                                                  minor_QueryExtensionReply :: Word16}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryExtensionReply where
         deserialize
@@ -528,7 +528,7 @@
  
 data QueryAdaptors = MkQueryAdaptors{window_QueryAdaptors ::
                                      WINDOW}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryAdaptors where
         extensionId _ = "XVideo"
@@ -543,7 +543,7 @@
 data QueryAdaptorsReply = MkQueryAdaptorsReply{num_adaptors_QueryAdaptorsReply
                                                :: Word16,
                                                info_QueryAdaptorsReply :: [AdaptorInfo]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryAdaptorsReply where
         deserialize
@@ -558,7 +558,7 @@
                return (MkQueryAdaptorsReply num_adaptors info)
  
 data QueryEncodings = MkQueryEncodings{port_QueryEncodings :: PORT}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryEncodings where
         extensionId _ = "XVideo"
@@ -573,7 +573,7 @@
 data QueryEncodingsReply = MkQueryEncodingsReply{num_encodings_QueryEncodingsReply
                                                  :: Word16,
                                                  info_QueryEncodingsReply :: [EncodingInfo]}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryEncodingsReply where
         deserialize
@@ -589,7 +589,7 @@
  
 data GrabPort = MkGrabPort{port_GrabPort :: PORT,
                            time_GrabPort :: TIMESTAMP}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GrabPort where
         extensionId _ = "XVideo"
@@ -604,7 +604,7 @@
  
 data GrabPortReply = MkGrabPortReply{result_GrabPortReply ::
                                      GrabPortStatus}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GrabPortReply where
         deserialize
@@ -617,7 +617,7 @@
  
 data UngrabPort = MkUngrabPort{port_UngrabPort :: PORT,
                                time_UngrabPort :: TIMESTAMP}
-                deriving (Show, Typeable)
+                deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest UngrabPort where
         extensionId _ = "XVideo"
@@ -637,7 +637,7 @@
                            vid_w_PutVideo :: Word16, vid_h_PutVideo :: Word16,
                            drw_x_PutVideo :: Int16, drw_y_PutVideo :: Int16,
                            drw_w_PutVideo :: Word16, drw_h_PutVideo :: Word16}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PutVideo where
         extensionId _ = "XVideo"
@@ -675,7 +675,7 @@
                            vid_w_PutStill :: Word16, vid_h_PutStill :: Word16,
                            drw_x_PutStill :: Int16, drw_y_PutStill :: Int16,
                            drw_w_PutStill :: Word16, drw_h_PutStill :: Word16}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PutStill where
         extensionId _ = "XVideo"
@@ -713,7 +713,7 @@
                            vid_w_GetVideo :: Word16, vid_h_GetVideo :: Word16,
                            drw_x_GetVideo :: Int16, drw_y_GetVideo :: Int16,
                            drw_w_GetVideo :: Word16, drw_h_GetVideo :: Word16}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetVideo where
         extensionId _ = "XVideo"
@@ -751,7 +751,7 @@
                            vid_w_GetStill :: Word16, vid_h_GetStill :: Word16,
                            drw_x_GetStill :: Int16, drw_y_GetStill :: Int16,
                            drw_w_GetStill :: Word16, drw_h_GetStill :: Word16}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetStill where
         extensionId _ = "XVideo"
@@ -785,7 +785,7 @@
  
 data StopVideo = MkStopVideo{port_StopVideo :: PORT,
                              drawable_StopVideo :: DRAWABLE}
-               deriving (Show, Typeable)
+               deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest StopVideo where
         extensionId _ = "XVideo"
@@ -802,7 +802,7 @@
 data SelectVideoNotify = MkSelectVideoNotify{drawable_SelectVideoNotify
                                              :: DRAWABLE,
                                              onoff_SelectVideoNotify :: Bool}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SelectVideoNotify where
         extensionId _ = "XVideo"
@@ -822,7 +822,7 @@
 data SelectPortNotify = MkSelectPortNotify{port_SelectPortNotify ::
                                            PORT,
                                            onoff_SelectPortNotify :: Bool}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SelectPortNotify where
         extensionId _ = "XVideo"
@@ -843,7 +843,7 @@
                                      vid_w_QueryBestSize :: Word16, vid_h_QueryBestSize :: Word16,
                                      drw_w_QueryBestSize :: Word16, drw_h_QueryBestSize :: Word16,
                                      motion_QueryBestSize :: Bool}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryBestSize where
         extensionId _ = "XVideo"
@@ -870,7 +870,7 @@
 data QueryBestSizeReply = MkQueryBestSizeReply{actual_width_QueryBestSizeReply
                                                :: Word16,
                                                actual_height_QueryBestSizeReply :: Word16}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryBestSizeReply where
         deserialize
@@ -887,7 +887,7 @@
                                            PORT,
                                            attribute_SetPortAttribute :: ATOM,
                                            value_SetPortAttribute :: Int32}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest SetPortAttribute where
         extensionId _ = "XVideo"
@@ -907,7 +907,7 @@
 data GetPortAttribute = MkGetPortAttribute{port_GetPortAttribute ::
                                            PORT,
                                            attribute_GetPortAttribute :: ATOM}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest GetPortAttribute where
         extensionId _ = "XVideo"
@@ -924,7 +924,7 @@
  
 data GetPortAttributeReply = MkGetPortAttributeReply{value_GetPortAttributeReply
                                                      :: Int32}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize GetPortAttributeReply where
         deserialize
@@ -938,7 +938,7 @@
  
 data QueryPortAttributes = MkQueryPortAttributes{port_QueryPortAttributes
                                                  :: PORT}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryPortAttributes where
         extensionId _ = "XVideo"
@@ -956,7 +956,7 @@
                                                            Word32,
                                                            attributes_QueryPortAttributesReply ::
                                                            [AttributeInfo]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryPortAttributesReply where
         deserialize
@@ -974,7 +974,7 @@
  
 data ListImageFormats = MkListImageFormats{port_ListImageFormats ::
                                            PORT}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ListImageFormats where
         extensionId _ = "XVideo"
@@ -990,7 +990,7 @@
                                                      :: Word32,
                                                      format_ListImageFormatsReply ::
                                                      [ImageFormatInfo]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListImageFormatsReply where
         deserialize
@@ -1009,7 +1009,7 @@
                                                    id_QueryImageAttributes :: Word32,
                                                    width_QueryImageAttributes :: Word16,
                                                    height_QueryImageAttributes :: Word16}
-                          deriving (Show, Typeable)
+                          deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryImageAttributes where
         extensionId _ = "XVideo"
@@ -1040,7 +1040,7 @@
                                                              [Word32],
                                                              offsets_QueryImageAttributesReply ::
                                                              [Word32]}
-                               deriving (Show, Typeable)
+                               deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryImageAttributesReply where
         deserialize
@@ -1069,7 +1069,7 @@
                            drw_y_PutImage :: Int16, drw_w_PutImage :: Word16,
                            drw_h_PutImage :: Word16, width_PutImage :: Word16,
                            height_PutImage :: Word16, data_PutImage :: [Word8]}
-              deriving (Show, Typeable)
+              deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest PutImage where
         extensionId _ = "XVideo"
@@ -1118,7 +1118,7 @@
                                  drw_y_ShmPutImage :: Int16, drw_w_ShmPutImage :: Word16,
                                  drw_h_ShmPutImage :: Word16, width_ShmPutImage :: Word16,
                                  height_ShmPutImage :: Word16, send_event_ShmPutImage :: Word8}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ShmPutImage where
         extensionId _ = "XVideo"
diff --git a/patched/Graphics/XHB/Gen/XvMC/Types.hs b/patched/Graphics/XHB/Gen/XvMC/Types.hs
--- a/patched/Graphics/XHB/Gen/XvMC/Types.hs
+++ b/patched/Graphics/XHB/Gen/XvMC/Types.hs
@@ -44,7 +44,7 @@
                                  subpicture_max_width_SurfaceInfo :: Word16,
                                  subpicture_max_height_SurfaceInfo :: Word16,
                                  mc_type_SurfaceInfo :: Word32, flags_SurfaceInfo :: Word32}
-                 deriving (Show, Typeable)
+                 deriving (Show, Typeable, Eq, Ord)
  
 instance Serialize SurfaceInfo where
         serialize x
@@ -86,7 +86,7 @@
                     flags)
  
 data QueryVersion = MkQueryVersion{}
-                  deriving (Show, Typeable)
+                  deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest QueryVersion where
         extensionId _ = "XVideo-MotionCompensation"
@@ -100,7 +100,7 @@
 data QueryVersionReply = MkQueryVersionReply{major_QueryVersionReply
                                              :: Word32,
                                              minor_QueryVersionReply :: Word32}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize QueryVersionReply where
         deserialize
@@ -115,7 +115,7 @@
  
 data ListSurfaceTypes = MkListSurfaceTypes{port_id_ListSurfaceTypes
                                            :: PORT}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ListSurfaceTypes where
         extensionId _ = "XVideo-MotionCompensation"
@@ -131,7 +131,7 @@
                                                      :: Word32,
                                                      surfaces_ListSurfaceTypesReply ::
                                                      [SurfaceInfo]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListSurfaceTypesReply where
         deserialize
@@ -151,7 +151,7 @@
                                      surface_id_CreateContext :: SURFACE,
                                      width_CreateContext :: Word16, height_CreateContext :: Word16,
                                      flags_CreateContext :: Word32}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateContext where
         extensionId _ = "XVideo-MotionCompensation"
@@ -179,7 +179,7 @@
                                                height_actual_CreateContextReply :: Word16,
                                                flags_return_CreateContextReply :: Word32,
                                                priv_data_CreateContextReply :: [Word32]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize CreateContextReply where
         deserialize
@@ -199,7 +199,7 @@
  
 data DestroyContext = MkDestroyContext{context_id_DestroyContext ::
                                        CONTEXT}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroyContext where
         extensionId _ = "XVideo-MotionCompensation"
@@ -214,7 +214,7 @@
 data CreateSurface = MkCreateSurface{surface_id_CreateSurface ::
                                      SURFACE,
                                      context_id_CreateSurface :: CONTEXT}
-                   deriving (Show, Typeable)
+                   deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateSurface where
         extensionId _ = "XVideo-MotionCompensation"
@@ -231,7 +231,7 @@
  
 data CreateSurfaceReply = MkCreateSurfaceReply{priv_data_CreateSurfaceReply
                                                :: [Word32]}
-                        deriving (Show, Typeable)
+                        deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize CreateSurfaceReply where
         deserialize
@@ -246,7 +246,7 @@
  
 data DestroySurface = MkDestroySurface{surface_id_DestroySurface ::
                                        SURFACE}
-                    deriving (Show, Typeable)
+                    deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroySurface where
         extensionId _ = "XVideo-MotionCompensation"
@@ -264,7 +264,7 @@
                                            xvimage_id_CreateSubpicture :: Word32,
                                            width_CreateSubpicture :: Word16,
                                            height_CreateSubpicture :: Word16}
-                      deriving (Show, Typeable)
+                      deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest CreateSubpicture where
         extensionId _ = "XVideo-MotionCompensation"
@@ -294,7 +294,7 @@
                                                      component_order_CreateSubpictureReply ::
                                                      [Word8],
                                                      priv_data_CreateSubpictureReply :: [Word32]}
-                           deriving (Show, Typeable)
+                           deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize CreateSubpictureReply where
         deserialize
@@ -319,7 +319,7 @@
  
 data DestroySubpicture = MkDestroySubpicture{subpicture_id_DestroySubpicture
                                              :: SUBPICTURE}
-                       deriving (Show, Typeable)
+                       deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest DestroySubpicture where
         extensionId _ = "XVideo-MotionCompensation"
@@ -334,7 +334,7 @@
 data ListSubpictureTypes = MkListSubpictureTypes{port_id_ListSubpictureTypes
                                                  :: PORT,
                                                  surface_id_ListSubpictureTypes :: SURFACE}
-                         deriving (Show, Typeable)
+                         deriving (Show, Typeable, Eq, Ord)
  
 instance ExtensionRequest ListSubpictureTypes where
         extensionId _ = "XVideo-MotionCompensation"
@@ -353,7 +353,7 @@
                                                            :: Word32,
                                                            types_ListSubpictureTypesReply ::
                                                            [ImageFormatInfo]}
-                              deriving (Show, Typeable)
+                              deriving (Show, Typeable, Eq, Ord)
  
 instance Deserialize ListSubpictureTypesReply where
         deserialize
diff --git a/xhb.cabal b/xhb.cabal
--- a/xhb.cabal
+++ b/xhb.cabal
@@ -1,5 +1,5 @@
 Name:         xhb
-Version:      0.5.2014.4.10
+Version:      0.6.2015.8.1
 Cabal-Version:  >= 1.2.3
 Synopsis:     X Haskell Bindings
 Description:
@@ -30,7 +30,8 @@
 
  Extensions: ExistentialQuantification,
              DeriveDataTypeable,
-             GeneralizedNewtypeDeriving
+             GeneralizedNewtypeDeriving,
+             FlexibleContexts
 
  Exposed-modules:
    Graphics.XHB,
@@ -61,8 +62,8 @@
    Graphics.XHB.Gen.Xproto,
    Graphics.XHB.Gen.SELinux,
    Graphics.XHB.Gen.Test,
-   Graphics.XHB.Gen.Xv,
-   Graphics.XHB.Gen.XvMC
+   Graphics.XHB.Gen.XvMC,
+   Graphics.XHB.Gen.Xv
 
  Other-modules:
    Graphics.XHB.Shared,
@@ -93,8 +94,8 @@
    Graphics.XHB.Gen.Xproto.Types,
    Graphics.XHB.Gen.SELinux.Types,
    Graphics.XHB.Gen.Test.Types,
-   Graphics.XHB.Gen.Xv.Types,
    Graphics.XHB.Gen.XvMC.Types,
+   Graphics.XHB.Gen.Xv.Types,
    Graphics.XHB.Gen.Extension
 
  hs-source-dirs: . patched
