diff --git a/generator/Data/XCB/Python/Parse.hs b/generator/Data/XCB/Python/Parse.hs
--- a/generator/Data/XCB/Python/Parse.hs
+++ b/generator/Data/XCB/Python/Parse.hs
@@ -96,9 +96,8 @@
           globals = [mkDict "_events", mkDict "_errors"]
           name = xheader_header header
           add = [mkAddExt header]
-      partsList <- mapM (processXDecl name) $ xheader_decls header
-      let parts = concat partsList
-          (requests, decls) = collectBindings parts
+      parts <- mapM (processXDecl name) $ xheader_decls header
+      let (requests, decls) = collectBindings parts
           ext = if length requests > 0
                 then [mkClass (name ++ "Extension") "xcffib.Extension" requests]
                 else []
@@ -675,18 +674,18 @@
 
 processXDecl :: String
              -> XDecl
-             -> State TypeInfoMap [BindingPart]
+             -> State TypeInfoMap BindingPart
 processXDecl ext (XTypeDef name typ) =
   do modify $ \m -> mkModify ext name (m M.! typ) m
-     return [Noop]
+     return Noop
 processXDecl ext (XidType name) =
   -- http://www.markwitmer.com/guile-xcb/doc/guile-xcb/XIDs.html
   do modify $ mkModify ext name (BaseType "I")
-     return [Noop]
+     return Noop
 processXDecl _ (XImport n) =
-  return [Declaration [ mkRelImport n]]
+  return $ Declaration [ mkRelImport n]
 processXDecl _ (XEnum name membs) =
-  return [Declaration [mkEnum name $ xEnumElemsToPyEnum id membs]]
+  return $ Declaration [mkEnum name $ xEnumElemsToPyEnum id membs]
 processXDecl ext (XStruct n _ membs) = do
   m <- get
   let (statements, len) = mkStructStyleUnpack "" ext m membs
@@ -697,7 +696,7 @@
         let rhs = Int theLen
         return $ mkAssign "fixed_size" rhs
   modify $ mkModify ext n (CompositeType ext n)
-  return [Declaration [mkXClass n "xcffib.Struct" False statements (pack : fixedLength ++ synthetic)]]
+  return $ Declaration [mkXClass n "xcffib.Struct" False statements (pack : fixedLength ++ synthetic)]
 processXDecl ext (XEvent name opcode _ xge membs noSequence) = do
   m <- get
   let cname = name ++ "Event"
@@ -708,9 +707,9 @@
       eventsUpd = mkDictUpdate "_events" opcode cname
       isxge = fromMaybe False xge
       -- xgeexp = mkAssign "xge" (if fromMaybe False xge then (mkName "True") else (mkName "False"))
-  return [Declaration [ mkXClass cname "xcffib.Event" isxge statements (pack : synthetic)
+  return $ Declaration [ mkXClass cname "xcffib.Event" isxge statements (pack : synthetic)
                        , eventsUpd
-                       ]]
+                       ]
 processXDecl ext (XError name opcode _ membs) = do
   m <- get
   let cname = name ++ "Error"
@@ -719,10 +718,10 @@
       (statements, _) = mkStructStyleUnpack prefix ext m membs
       errorsUpd = mkDictUpdate "_errors" opcode cname
       alias = mkAssign ("Bad" ++ name) (mkName cname)
-  return [Declaration [ mkXClass cname "xcffib.Error" False statements [pack]
+  return $ Declaration [ mkXClass cname "xcffib.Error" False statements [pack]
                        , alias
                        , errorsUpd
-                       ]]
+                       ]
 processXDecl ext (XRequest name opcode _ membs reply) = do
   m <- get
   let
@@ -757,17 +756,7 @@
                                                    ++ [argChecked])
       requestBody = buf ++ packStmts ++ [ret]
       request = mkMethod name allArgs requestBody
-
-      -- Generate the non-default variant method
-      baseArgs = ("self" : (filter (not . null) args))
-      isCheckedDefault = isJust reply
-      (variantName, variantCall) =
-        if isCheckedDefault
-        then ("Unchecked", mkReturn $ mkCall ("self." ++ name) (map mkName (tail baseArgs) ++ [mkName "is_checked=False"]))
-        else ("Checked", mkReturn $ mkCall ("self." ++ name) (map mkName (tail baseArgs) ++ [mkName "is_checked=True"]))
-      variantMethod = mkMethod (name ++ variantName) baseArgs [variantCall]
-
-  return [Request request replyDecl, Request variantMethod []]
+  return $ Request request replyDecl
 processXDecl ext (XUnion name _ membs) = do
   m <- get
   let unpackF = structElemToPyUnpack unpackerCopy ext m
@@ -783,7 +772,7 @@
       pack = mkPackMethod ext name m Nothing [head membs] Nothing
       decl = [mkXClass name "xcffib.Union" False initMethodStmts [pack]]
   modify $ mkModify ext name (CompositeType ext name)
-  return [Declaration decl]
+  return $ Declaration decl
   where
     unpackerCopy = mkCall "unpacker.copy" []
     mkUnionUnpack :: (Maybe String, String)
@@ -799,7 +788,7 @@
 processXDecl ext (XidUnion name _) =
   -- These are always unions of only XIDs.
   do modify $ mkModify ext name (BaseType "I")
-     return [Noop]
+     return Noop
 
 -- EventStruct basically describes a set of possible events that could be
 -- represented by this one member. Slated to land in 1.13, it is only used in
@@ -814,7 +803,7 @@
 -- again.
 processXDecl ext (XEventStruct name _) = do
   modify $ mkModify ext name (CompositeType ext name)
-  return [Declaration $ [mkXClass name "xcffib.Buffer" False [] []]]
+  return $ Declaration $ [mkXClass name "xcffib.Buffer" False [] []]
 
 mkVersion :: XHeader -> Suite
 mkVersion header =
diff --git a/test/generator/eventstruct.py b/test/generator/eventstruct.py
--- a/test/generator/eventstruct.py
+++ b/test/generator/eventstruct.py
@@ -12,6 +12,4 @@
         buf.write(xcffib.pack_list(events, EventForSend))
         buf.write(xcffib.pack_list(classes, "B"))
         return self.send_request(31, buf, is_checked=is_checked)
-    def SendExtensionEventChecked(self, device_id, propagate, num_classes, num_events, events, classes):
-        return self.SendExtensionEvent(device_id, propagate, num_classes, num_events, events, classes, is_checked=True)
 xcffib._add_ext(key, eventstructExtension, _events, _errors)
diff --git a/test/generator/randr.py b/test/generator/randr.py
--- a/test/generator/randr.py
+++ b/test/generator/randr.py
@@ -62,6 +62,4 @@
         buf = io.BytesIO()
         buf.write(struct.pack("=xx2xI", crtc))
         return self.send_request(27, buf, GetCrtcTransformCookie, is_checked=is_checked)
-    def GetCrtcTransformUnchecked(self, crtc):
-        return self.GetCrtcTransform(crtc, is_checked=False)
 xcffib._add_ext(key, randrExtension, _events, _errors)
diff --git a/test/generator/render.py b/test/generator/render.py
--- a/test/generator/render.py
+++ b/test/generator/render.py
@@ -57,6 +57,4 @@
         buf.write(color.pack() if hasattr(color, "pack") else COLOR.synthetic(*color).pack())
         buf.write(xcffib.pack_list(rects, RECTANGLE))
         return self.send_request(26, buf, is_checked=is_checked)
-    def FillRectanglesChecked(self, op, dst, color, rects_len, rects):
-        return self.FillRectangles(op, dst, color, rects_len, rects, is_checked=True)
 xcffib._add_ext(key, renderExtension, _events, _errors)
diff --git a/test/generator/request.py b/test/generator/request.py
--- a/test/generator/request.py
+++ b/test/generator/request.py
@@ -10,6 +10,4 @@
         buf.write(struct.pack("=I", value_mask))
         buf.write(xcffib.pack_list(value_list, "I"))
         return self.send_request(1, buf, is_checked=is_checked)
-    def CreateWindowChecked(self, depth, wid, parent, x, y, width, height, border_width, _class, visual, value_mask, value_list):
-        return self.CreateWindow(depth, wid, parent, x, y, width, height, border_width, _class, visual, value_mask, value_list, is_checked=True)
 xcffib._add_ext(key, requestExtension, _events, _errors)
diff --git a/test/generator/request_reply.py b/test/generator/request_reply.py
--- a/test/generator/request_reply.py
+++ b/test/generator/request_reply.py
@@ -41,6 +41,4 @@
         buf = io.BytesIO()
         buf.write(struct.pack("=xx2x"))
         return self.send_request(99, buf, ListExtensionsCookie, is_checked=is_checked)
-    def ListExtensionsUnchecked(self):
-        return self.ListExtensions(is_checked=False)
 xcffib._add_ext(key, request_replyExtension, _events, _errors)
diff --git a/test/generator/switch.py b/test/generator/switch.py
--- a/test/generator/switch.py
+++ b/test/generator/switch.py
@@ -78,12 +78,8 @@
             events = items.pop(0)
             buf.write(struct.pack("=I", events))
         return self.send_request(59, buf, GetPropertyCookie, is_checked=is_checked)
-    def GetPropertyUnchecked(self, value_mask, items):
-        return self.GetProperty(value_mask, items, is_checked=False)
     def GetPropertyWithPad(self, is_checked=True):
         buf = io.BytesIO()
         buf.write(struct.pack("=xx2x"))
         return self.send_request(60, buf, GetPropertyWithPadCookie, is_checked=is_checked)
-    def GetPropertyWithPadUnchecked(self):
-        return self.GetPropertyWithPad(is_checked=False)
 xcffib._add_ext(key, switchExtension, _events, _errors)
diff --git a/test/generator/type_pad.py b/test/generator/type_pad.py
--- a/test/generator/type_pad.py
+++ b/test/generator/type_pad.py
@@ -73,6 +73,4 @@
         buf.write(struct.pack("=xx2xxHH", max_names, pattern_len))
         buf.write(xcffib.pack_list(pattern, "c"))
         return self.send_request(50, buf, ListFontsWithInfoCookie, is_checked=is_checked)
-    def ListFontsWithInfoUnchecked(self, max_names, pattern_len, pattern):
-        return self.ListFontsWithInfo(max_names, pattern_len, pattern, is_checked=False)
 xcffib._add_ext(key, type_padExtension, _events, _errors)
diff --git a/xcffib.cabal b/xcffib.cabal
--- a/xcffib.cabal
+++ b/xcffib.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 name:                xcffib
-version:             1.11.0
+version:             1.11.1
 synopsis:            A cffi-based python binding for X
 homepage:            http://github.com/tych0/xcffib
 license:             Apache-2.0
