diff --git a/GI/Atk.hs b/GI/Atk.hs
--- a/GI/Atk.hs
+++ b/GI/Atk.hs
@@ -32,9 +32,9 @@
 import GI.Atk.Objects
 import GI.Atk.Structs
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Callbacks.hs b/GI/Atk/Callbacks.hs
--- a/GI/Atk/Callbacks.hs
+++ b/GI/Atk/Callbacks.hs
@@ -68,9 +68,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Constants.hs b/GI/Atk/Constants.hs
--- a/GI/Atk/Constants.hs
+++ b/GI/Atk/Constants.hs
@@ -18,9 +18,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Enums.hs b/GI/Atk/Enums.hs
--- a/GI/Atk/Enums.hs
+++ b/GI/Atk/Enums.hs
@@ -25,9 +25,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Flags.hs b/GI/Atk/Flags.hs
--- a/GI/Atk/Flags.hs
+++ b/GI/Atk/Flags.hs
@@ -15,9 +15,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -42,8 +42,8 @@
 foreign import ccall "atk_hyperlink_state_flags_get_type" c_atk_hyperlink_state_flags_get_type :: 
     IO GType
 
-instance BoxedEnum HyperlinkStateFlags where
-    boxedEnumType _ = c_atk_hyperlink_state_flags_get_type
+instance BoxedFlags HyperlinkStateFlags where
+    boxedFlagsType _ = c_atk_hyperlink_state_flags_get_type
 
 instance IsGFlag HyperlinkStateFlags
 
diff --git a/GI/Atk/Functions.hs b/GI/Atk/Functions.hs
--- a/GI/Atk/Functions.hs
+++ b/GI/Atk/Functions.hs
@@ -74,9 +74,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -85,14 +85,14 @@
 import GI.Atk.Callbacks
 
 -- function atk_remove_key_event_listener
--- Args : [Arg {argCName = "listener_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "listener_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_remove_key_event_listener" atk_remove_key_event_listener :: 
-    Word32 ->                               -- listener_id : TBasicType TUInt32
+    Word32 ->                               -- listener_id : TBasicType TUInt
     IO ()
 
 
@@ -106,14 +106,14 @@
 
 
 -- function atk_remove_global_event_listener
--- Args : [Arg {argCName = "listener_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "listener_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_remove_global_event_listener" atk_remove_global_event_listener :: 
-    Word32 ->                               -- listener_id : TBasicType TUInt32
+    Word32 ->                               -- listener_id : TBasicType TUInt
     IO ()
 
 
@@ -127,14 +127,14 @@
 
 
 -- function atk_remove_focus_tracker
--- Args : [Arg {argCName = "tracker_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "tracker_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_remove_focus_tracker" atk_remove_focus_tracker :: 
-    Word32 ->                               -- tracker_id : TBasicType TUInt32
+    Word32 ->                               -- tracker_id : TBasicType TUInt
     IO ()
 
 {-# DEPRECATED removeFocusTracker ["(Since version 2.9.4)","Focus tracking has been dropped as a feature","to be implemented by ATK itself. If you need focus tracking on your","implementation, subscribe to the #AtkObject::state-change \"focused\" signal.","","Removes the specified focus tracker from the list of functions","to be called when any object receives focus."]#-}
@@ -150,7 +150,7 @@
 -- function atk_get_version
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -171,7 +171,7 @@
 -- function atk_get_toolkit_version
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -192,7 +192,7 @@
 -- function atk_get_toolkit_name
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -213,7 +213,7 @@
 -- function atk_get_root
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
@@ -234,7 +234,7 @@
 -- function atk_get_minor_version
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -253,7 +253,7 @@
 -- function atk_get_micro_version
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -272,7 +272,7 @@
 -- function atk_get_major_version
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -291,7 +291,7 @@
 -- function atk_get_interface_age
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -310,7 +310,7 @@
 -- function atk_get_focus_object
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
@@ -331,7 +331,7 @@
 -- function atk_get_default_registry
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Atk" "Registry"
+-- returnType : Just (TInterface "Atk" "Registry")
 -- throws : False
 -- Skip return : False
 
@@ -352,7 +352,7 @@
 -- function atk_get_binary_age
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -371,7 +371,7 @@
 -- function atk_focus_tracker_notify
 -- Args : [Arg {argCName = "object", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces.hs b/GI/Atk/Interfaces.hs
--- a/GI/Atk/Interfaces.hs
+++ b/GI/Atk/Interfaces.hs
@@ -42,9 +42,9 @@
 import GI.Atk.Interfaces.Value
 import GI.Atk.Interfaces.Window
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Action.hs b/GI/Atk/Interfaces/Action.hs
--- a/GI/Atk/Interfaces/Action.hs
+++ b/GI/Atk/Interfaces/Action.hs
@@ -55,9 +55,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -102,15 +102,15 @@
 
 -- method Action::do_action
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_action_do_action" atk_action_do_action :: 
     Ptr Action ->                           -- _obj : TInterface "Atk" "Action"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO CInt
 
 
@@ -132,15 +132,15 @@
 
 -- method Action::get_description
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_action_get_description" atk_action_get_description :: 
     Ptr Action ->                           -- _obj : TInterface "Atk" "Action"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO CString
 
 
@@ -148,30 +148,31 @@
     (MonadIO m, ActionK a) =>
     a                                       -- _obj
     -> Int32                                -- i
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 actionGetDescription _obj i = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_action_get_description _obj' i
-    checkUnexpectedReturnNULL "atk_action_get_description" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ActionGetDescriptionMethodInfo
-instance (signature ~ (Int32 -> m T.Text), MonadIO m, ActionK a) => MethodInfo ActionGetDescriptionMethodInfo a signature where
+instance (signature ~ (Int32 -> m (Maybe T.Text)), MonadIO m, ActionK a) => MethodInfo ActionGetDescriptionMethodInfo a signature where
     overloadedMethod _ = actionGetDescription
 
 -- method Action::get_keybinding
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_action_get_keybinding" atk_action_get_keybinding :: 
     Ptr Action ->                           -- _obj : TInterface "Atk" "Action"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO CString
 
 
@@ -179,30 +180,31 @@
     (MonadIO m, ActionK a) =>
     a                                       -- _obj
     -> Int32                                -- i
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 actionGetKeybinding _obj i = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_action_get_keybinding _obj' i
-    checkUnexpectedReturnNULL "atk_action_get_keybinding" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ActionGetKeybindingMethodInfo
-instance (signature ~ (Int32 -> m T.Text), MonadIO m, ActionK a) => MethodInfo ActionGetKeybindingMethodInfo a signature where
+instance (signature ~ (Int32 -> m (Maybe T.Text)), MonadIO m, ActionK a) => MethodInfo ActionGetKeybindingMethodInfo a signature where
     overloadedMethod _ = actionGetKeybinding
 
 -- method Action::get_localized_name
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_action_get_localized_name" atk_action_get_localized_name :: 
     Ptr Action ->                           -- _obj : TInterface "Atk" "Action"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO CString
 
 
@@ -210,24 +212,25 @@
     (MonadIO m, ActionK a) =>
     a                                       -- _obj
     -> Int32                                -- i
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 actionGetLocalizedName _obj i = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_action_get_localized_name _obj' i
-    checkUnexpectedReturnNULL "atk_action_get_localized_name" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ActionGetLocalizedNameMethodInfo
-instance (signature ~ (Int32 -> m T.Text), MonadIO m, ActionK a) => MethodInfo ActionGetLocalizedNameMethodInfo a signature where
+instance (signature ~ (Int32 -> m (Maybe T.Text)), MonadIO m, ActionK a) => MethodInfo ActionGetLocalizedNameMethodInfo a signature where
     overloadedMethod _ = actionGetLocalizedName
 
 -- method Action::get_n_actions
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -252,15 +255,15 @@
 
 -- method Action::get_name
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_action_get_name" atk_action_get_name :: 
     Ptr Action ->                           -- _obj : TInterface "Atk" "Action"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO CString
 
 
@@ -268,30 +271,31 @@
     (MonadIO m, ActionK a) =>
     a                                       -- _obj
     -> Int32                                -- i
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 actionGetName _obj i = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_action_get_name _obj' i
-    checkUnexpectedReturnNULL "atk_action_get_name" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ActionGetNameMethodInfo
-instance (signature ~ (Int32 -> m T.Text), MonadIO m, ActionK a) => MethodInfo ActionGetNameMethodInfo a signature where
+instance (signature ~ (Int32 -> m (Maybe T.Text)), MonadIO m, ActionK a) => MethodInfo ActionGetNameMethodInfo a signature where
     overloadedMethod _ = actionGetName
 
 -- method Action::set_description
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "desc", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "desc", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_action_set_description" atk_action_set_description :: 
     Ptr Action ->                           -- _obj : TInterface "Atk" "Action"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     CString ->                              -- desc : TBasicType TUTF8
     IO CInt
 
diff --git a/GI/Atk/Interfaces/Action.hs-boot b/GI/Atk/Interfaces/Action.hs-boot
--- a/GI/Atk/Interfaces/Action.hs-boot
+++ b/GI/Atk/Interfaces/Action.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.Action where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Component.hs b/GI/Atk/Interfaces/Component.hs
--- a/GI/Atk/Interfaces/Component.hs
+++ b/GI/Atk/Interfaces/Component.hs
@@ -100,9 +100,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -200,16 +200,16 @@
 
 -- method Component::contains
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_component_contains" atk_component_contains :: 
     Ptr Component ->                        -- _obj : TInterface "Atk" "Component"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
+    Int32 ->                                -- x : TBasicType TInt
+    Int32 ->                                -- y : TBasicType TInt
     CUInt ->                                -- coord_type : TInterface "Atk" "CoordType"
     IO CInt
 
@@ -237,7 +237,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TDouble
+-- returnType : Just (TBasicType TDouble)
 -- throws : False
 -- Skip return : False
 
@@ -263,18 +263,18 @@
 
 -- method Component::get_extents
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_component_get_extents" atk_component_get_extents :: 
     Ptr Component ->                        -- _obj : TInterface "Atk" "Component"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
+    Int32 ->                                -- x : TBasicType TInt
+    Int32 ->                                -- y : TBasicType TInt
+    Int32 ->                                -- width : TBasicType TInt
+    Int32 ->                                -- height : TBasicType TInt
     CUInt ->                                -- coord_type : TInterface "Atk" "CoordType"
     IO ()
 
@@ -303,7 +303,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Layer"
+-- returnType : Just (TInterface "Atk" "Layer")
 -- throws : False
 -- Skip return : False
 
@@ -331,7 +331,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -356,16 +356,16 @@
 
 -- method Component::get_position
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_component_get_position" atk_component_get_position :: 
     Ptr Component ->                        -- _obj : TInterface "Atk" "Component"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
+    Int32 ->                                -- x : TBasicType TInt
+    Int32 ->                                -- y : TBasicType TInt
     CUInt ->                                -- coord_type : TInterface "Atk" "CoordType"
     IO ()
 
@@ -390,16 +390,16 @@
 
 -- method Component::get_size
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_component_get_size" atk_component_get_size :: 
     Ptr Component ->                        -- _obj : TInterface "Atk" "Component"
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt
+    Int32 ->                                -- height : TBasicType TInt
     IO ()
 
 {-# DEPRECATED componentGetSize ["Since 2.12. Use atk_component_get_extents() instead."]#-}
@@ -423,7 +423,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -449,16 +449,16 @@
 
 -- method Component::ref_accessible_at_point
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_component_ref_accessible_at_point" atk_component_ref_accessible_at_point :: 
     Ptr Component ->                        -- _obj : TInterface "Atk" "Component"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
+    Int32 ->                                -- x : TBasicType TInt
+    Int32 ->                                -- y : TBasicType TInt
     CUInt ->                                -- coord_type : TInterface "Atk" "CoordType"
     IO (Ptr Object)
 
@@ -469,31 +469,32 @@
     -> Int32                                -- x
     -> Int32                                -- y
     -> CoordType                            -- coordType
-    -> m Object                             -- result
+    -> m (Maybe Object)                     -- result
 componentRefAccessibleAtPoint _obj x y coordType = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let coordType' = (fromIntegral . fromEnum) coordType
     result <- atk_component_ref_accessible_at_point _obj' x y coordType'
-    checkUnexpectedReturnNULL "atk_component_ref_accessible_at_point" result
-    result' <- (wrapObject Object) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapObject Object) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ComponentRefAccessibleAtPointMethodInfo
-instance (signature ~ (Int32 -> Int32 -> CoordType -> m Object), MonadIO m, ComponentK a) => MethodInfo ComponentRefAccessibleAtPointMethodInfo a signature where
+instance (signature ~ (Int32 -> Int32 -> CoordType -> m (Maybe Object)), MonadIO m, ComponentK a) => MethodInfo ComponentRefAccessibleAtPointMethodInfo a signature where
     overloadedMethod _ = componentRefAccessibleAtPoint
 
 -- method Component::remove_focus_handler
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_component_remove_focus_handler" atk_component_remove_focus_handler :: 
     Ptr Component ->                        -- _obj : TInterface "Atk" "Component"
-    Word32 ->                               -- handler_id : TBasicType TUInt32
+    Word32 ->                               -- handler_id : TBasicType TUInt
     IO ()
 
 {-# DEPRECATED componentRemoveFocusHandler ["(Since version 2.9.4)","If you need to track when an object gains or","lose the focus, use the #AtkObject::state-change \"focused\" notification instead."]#-}
@@ -514,18 +515,18 @@
 
 -- method Component::set_extents
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_component_set_extents" atk_component_set_extents :: 
     Ptr Component ->                        -- _obj : TInterface "Atk" "Component"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
+    Int32 ->                                -- x : TBasicType TInt
+    Int32 ->                                -- y : TBasicType TInt
+    Int32 ->                                -- width : TBasicType TInt
+    Int32 ->                                -- height : TBasicType TInt
     CUInt ->                                -- coord_type : TInterface "Atk" "CoordType"
     IO CInt
 
@@ -553,16 +554,16 @@
 
 -- method Component::set_position
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_component_set_position" atk_component_set_position :: 
     Ptr Component ->                        -- _obj : TInterface "Atk" "Component"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
+    Int32 ->                                -- x : TBasicType TInt
+    Int32 ->                                -- y : TBasicType TInt
     CUInt ->                                -- coord_type : TInterface "Atk" "CoordType"
     IO CInt
 
@@ -588,16 +589,16 @@
 
 -- method Component::set_size
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Component", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_component_set_size" atk_component_set_size :: 
     Ptr Component ->                        -- _obj : TInterface "Atk" "Component"
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt
+    Int32 ->                                -- height : TBasicType TInt
     IO CInt
 
 
diff --git a/GI/Atk/Interfaces/Component.hs-boot b/GI/Atk/Interfaces/Component.hs-boot
--- a/GI/Atk/Interfaces/Component.hs-boot
+++ b/GI/Atk/Interfaces/Component.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.Component where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Document.hs b/GI/Atk/Interfaces/Document.hs
--- a/GI/Atk/Interfaces/Document.hs
+++ b/GI/Atk/Interfaces/Document.hs
@@ -111,9 +111,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -336,7 +336,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -350,26 +350,27 @@
     (MonadIO m, DocumentK a) =>
     a                                       -- _obj
     -> T.Text                               -- attributeName
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 documentGetAttributeValue _obj attributeName = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     attributeName' <- textToCString attributeName
     result <- atk_document_get_attribute_value _obj' attributeName'
-    checkUnexpectedReturnNULL "atk_document_get_attribute_value" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
     freeMem attributeName'
-    return result'
+    return maybeResult
 
 data DocumentGetAttributeValueMethodInfo
-instance (signature ~ (T.Text -> m T.Text), MonadIO m, DocumentK a) => MethodInfo DocumentGetAttributeValueMethodInfo a signature where
+instance (signature ~ (T.Text -> m (Maybe T.Text)), MonadIO m, DocumentK a) => MethodInfo DocumentGetAttributeValueMethodInfo a signature where
     overloadedMethod _ = documentGetAttributeValue
 
 -- method Document::get_attributes
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TBasicType TVoid)
+-- returnType : Just (TGSList (TBasicType TPtr))
 -- throws : False
 -- Skip return : False
 
@@ -385,7 +386,6 @@
 documentGetAttributes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_document_get_attributes _obj'
-    checkUnexpectedReturnNULL "atk_document_get_attributes" result
     result' <- unpackGSList result
     touchManagedPtr _obj
     return result'
@@ -398,7 +398,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -425,34 +425,34 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Just (TBasicType TPtr)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_document_get_document" atk_document_get_document :: 
     Ptr Document ->                         -- _obj : TInterface "Atk" "Document"
-    IO ()
+    IO (Ptr ())
 
 {-# DEPRECATED documentGetDocument ["Since 2.12. @document is already a representation of","the document. Use it directly, or one of its children, as an","instance of the DOM."]#-}
 documentGetDocument ::
     (MonadIO m, DocumentK a) =>
     a                                       -- _obj
-    -> m ()                                 -- result
+    -> m (Ptr ())                           -- result
 documentGetDocument _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    atk_document_get_document _obj'
+    result <- atk_document_get_document _obj'
     touchManagedPtr _obj
-    return ()
+    return result
 
 data DocumentGetDocumentMethodInfo
-instance (signature ~ (m ()), MonadIO m, DocumentK a) => MethodInfo DocumentGetDocumentMethodInfo a signature where
+instance (signature ~ (m (Ptr ())), MonadIO m, DocumentK a) => MethodInfo DocumentGetDocumentMethodInfo a signature where
     overloadedMethod _ = documentGetDocument
 
 -- method Document::get_document_type
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -481,7 +481,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -510,7 +510,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -537,7 +537,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attribute_value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces/Document.hs-boot b/GI/Atk/Interfaces/Document.hs-boot
--- a/GI/Atk/Interfaces/Document.hs-boot
+++ b/GI/Atk/Interfaces/Document.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.Document where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/EditableText.hs b/GI/Atk/Interfaces/EditableText.hs
--- a/GI/Atk/Interfaces/EditableText.hs
+++ b/GI/Atk/Interfaces/EditableText.hs
@@ -55,9 +55,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -102,16 +102,16 @@
 
 -- method EditableText::copy_text
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_pos", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_pos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_editable_text_copy_text" atk_editable_text_copy_text :: 
     Ptr EditableText ->                     -- _obj : TInterface "Atk" "EditableText"
-    Int32 ->                                -- start_pos : TBasicType TInt32
-    Int32 ->                                -- end_pos : TBasicType TInt32
+    Int32 ->                                -- start_pos : TBasicType TInt
+    Int32 ->                                -- end_pos : TBasicType TInt
     IO ()
 
 
@@ -133,16 +133,16 @@
 
 -- method EditableText::cut_text
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_pos", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_pos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_editable_text_cut_text" atk_editable_text_cut_text :: 
     Ptr EditableText ->                     -- _obj : TInterface "Atk" "EditableText"
-    Int32 ->                                -- start_pos : TBasicType TInt32
-    Int32 ->                                -- end_pos : TBasicType TInt32
+    Int32 ->                                -- start_pos : TBasicType TInt
+    Int32 ->                                -- end_pos : TBasicType TInt
     IO ()
 
 
@@ -164,16 +164,16 @@
 
 -- method EditableText::delete_text
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_pos", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_pos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_editable_text_delete_text" atk_editable_text_delete_text :: 
     Ptr EditableText ->                     -- _obj : TInterface "Atk" "EditableText"
-    Int32 ->                                -- start_pos : TBasicType TInt32
-    Int32 ->                                -- end_pos : TBasicType TInt32
+    Int32 ->                                -- start_pos : TBasicType TInt
+    Int32 ->                                -- end_pos : TBasicType TInt
     IO ()
 
 
@@ -195,17 +195,17 @@
 
 -- method EditableText::insert_text
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_editable_text_insert_text" atk_editable_text_insert_text :: 
     Ptr EditableText ->                     -- _obj : TInterface "Atk" "EditableText"
     CString ->                              -- string : TBasicType TUTF8
-    Int32 ->                                -- length : TBasicType TInt32
-    Int32 ->                                -- position : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
+    Int32 ->                                -- position : TBasicType TInt
     IO ()
 
 
@@ -230,15 +230,15 @@
 
 -- method EditableText::paste_text
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_editable_text_paste_text" atk_editable_text_paste_text :: 
     Ptr EditableText ->                     -- _obj : TInterface "Atk" "EditableText"
-    Int32 ->                                -- position : TBasicType TInt32
+    Int32 ->                                -- position : TBasicType TInt
     IO ()
 
 
@@ -259,17 +259,17 @@
 
 -- method EditableText::set_run_attributes
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attrib_set", argType = TGSList (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attrib_set", argType = TGSList (TBasicType TPtr), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_editable_text_set_run_attributes" atk_editable_text_set_run_attributes :: 
     Ptr EditableText ->                     -- _obj : TInterface "Atk" "EditableText"
-    Ptr (GSList (Ptr ())) ->                -- attrib_set : TGSList (TBasicType TVoid)
-    Int32 ->                                -- start_offset : TBasicType TInt32
-    Int32 ->                                -- end_offset : TBasicType TInt32
+    Ptr (GSList (Ptr ())) ->                -- attrib_set : TGSList (TBasicType TPtr)
+    Int32 ->                                -- start_offset : TBasicType TInt
+    Int32 ->                                -- end_offset : TBasicType TInt
     IO CInt
 
 
@@ -297,7 +297,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "EditableText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces/EditableText.hs-boot b/GI/Atk/Interfaces/EditableText.hs-boot
--- a/GI/Atk/Interfaces/EditableText.hs-boot
+++ b/GI/Atk/Interfaces/EditableText.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.EditableText where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/HyperlinkImpl.hs b/GI/Atk/Interfaces/HyperlinkImpl.hs
--- a/GI/Atk/Interfaces/HyperlinkImpl.hs
+++ b/GI/Atk/Interfaces/HyperlinkImpl.hs
@@ -25,9 +25,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -68,7 +68,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "HyperlinkImpl", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Hyperlink"
+-- returnType : Just (TInterface "Atk" "Hyperlink")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces/HyperlinkImpl.hs-boot b/GI/Atk/Interfaces/HyperlinkImpl.hs-boot
--- a/GI/Atk/Interfaces/HyperlinkImpl.hs-boot
+++ b/GI/Atk/Interfaces/HyperlinkImpl.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.HyperlinkImpl where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Hypertext.hs b/GI/Atk/Interfaces/Hypertext.hs
--- a/GI/Atk/Interfaces/Hypertext.hs
+++ b/GI/Atk/Interfaces/Hypertext.hs
@@ -50,9 +50,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -139,15 +139,15 @@
 
 -- method Hypertext::get_link
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hypertext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "link_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hypertext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "link_index", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Hyperlink"
+-- returnType : Just (TInterface "Atk" "Hyperlink")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_hypertext_get_link" atk_hypertext_get_link :: 
     Ptr Hypertext ->                        -- _obj : TInterface "Atk" "Hypertext"
-    Int32 ->                                -- link_index : TBasicType TInt32
+    Int32 ->                                -- link_index : TBasicType TInt
     IO (Ptr Hyperlink)
 
 
@@ -170,15 +170,15 @@
 
 -- method Hypertext::get_link_index
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hypertext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "char_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hypertext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "char_index", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_hypertext_get_link_index" atk_hypertext_get_link_index :: 
     Ptr Hypertext ->                        -- _obj : TInterface "Atk" "Hypertext"
-    Int32 ->                                -- char_index : TBasicType TInt32
+    Int32 ->                                -- char_index : TBasicType TInt
     IO Int32
 
 
@@ -201,7 +201,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hypertext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces/Hypertext.hs-boot b/GI/Atk/Interfaces/Hypertext.hs-boot
--- a/GI/Atk/Interfaces/Hypertext.hs-boot
+++ b/GI/Atk/Interfaces/Hypertext.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.Hypertext where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Image.hs b/GI/Atk/Interfaces/Image.hs
--- a/GI/Atk/Interfaces/Image.hs
+++ b/GI/Atk/Interfaces/Image.hs
@@ -45,9 +45,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -92,7 +92,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Image", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -121,7 +121,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Image", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -133,31 +133,32 @@
 imageGetImageLocale ::
     (MonadIO m, ImageK a) =>
     a                                       -- _obj
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 imageGetImageLocale _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_image_get_image_locale _obj'
-    checkUnexpectedReturnNULL "atk_image_get_image_locale" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ImageGetImageLocaleMethodInfo
-instance (signature ~ (m T.Text), MonadIO m, ImageK a) => MethodInfo ImageGetImageLocaleMethodInfo a signature where
+instance (signature ~ (m (Maybe T.Text)), MonadIO m, ImageK a) => MethodInfo ImageGetImageLocaleMethodInfo a signature where
     overloadedMethod _ = imageGetImageLocale
 
 -- method Image::get_image_position
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Image", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Image", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_image_get_image_position" atk_image_get_image_position :: 
     Ptr Image ->                            -- _obj : TInterface "Atk" "Image"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
+    Int32 ->                                -- x : TBasicType TInt
+    Int32 ->                                -- y : TBasicType TInt
     CUInt ->                                -- coord_type : TInterface "Atk" "CoordType"
     IO ()
 
@@ -182,16 +183,16 @@
 
 -- method Image::get_image_size
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Image", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Image", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_image_get_image_size" atk_image_get_image_size :: 
     Ptr Image ->                            -- _obj : TInterface "Atk" "Image"
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt
+    Int32 ->                                -- height : TBasicType TInt
     IO ()
 
 
@@ -215,7 +216,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Image", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces/Image.hs-boot b/GI/Atk/Interfaces/Image.hs-boot
--- a/GI/Atk/Interfaces/Image.hs-boot
+++ b/GI/Atk/Interfaces/Image.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.Image where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/ImplementorIface.hs b/GI/Atk/Interfaces/ImplementorIface.hs
--- a/GI/Atk/Interfaces/ImplementorIface.hs
+++ b/GI/Atk/Interfaces/ImplementorIface.hs
@@ -17,9 +17,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/ImplementorIface.hs-boot b/GI/Atk/Interfaces/ImplementorIface.hs-boot
--- a/GI/Atk/Interfaces/ImplementorIface.hs-boot
+++ b/GI/Atk/Interfaces/ImplementorIface.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.ImplementorIface where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Selection.hs b/GI/Atk/Interfaces/Selection.hs
--- a/GI/Atk/Interfaces/Selection.hs
+++ b/GI/Atk/Interfaces/Selection.hs
@@ -70,9 +70,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -160,15 +160,15 @@
 
 -- method Selection::add_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_selection_add_selection" atk_selection_add_selection :: 
     Ptr Selection ->                        -- _obj : TInterface "Atk" "Selection"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO CInt
 
 
@@ -192,7 +192,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -220,7 +220,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -245,15 +245,15 @@
 
 -- method Selection::is_child_selected
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_selection_is_child_selected" atk_selection_is_child_selected :: 
     Ptr Selection ->                        -- _obj : TInterface "Atk" "Selection"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO CInt
 
 
@@ -275,15 +275,15 @@
 
 -- method Selection::ref_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_selection_ref_selection" atk_selection_ref_selection :: 
     Ptr Selection ->                        -- _obj : TInterface "Atk" "Selection"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO (Ptr Object)
 
 
@@ -291,30 +291,31 @@
     (MonadIO m, SelectionK a) =>
     a                                       -- _obj
     -> Int32                                -- i
-    -> m Object                             -- result
+    -> m (Maybe Object)                     -- result
 selectionRefSelection _obj i = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_selection_ref_selection _obj' i
-    checkUnexpectedReturnNULL "atk_selection_ref_selection" result
-    result' <- (wrapObject Object) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapObject Object) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data SelectionRefSelectionMethodInfo
-instance (signature ~ (Int32 -> m Object), MonadIO m, SelectionK a) => MethodInfo SelectionRefSelectionMethodInfo a signature where
+instance (signature ~ (Int32 -> m (Maybe Object)), MonadIO m, SelectionK a) => MethodInfo SelectionRefSelectionMethodInfo a signature where
     overloadedMethod _ = selectionRefSelection
 
 -- method Selection::remove_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_selection_remove_selection" atk_selection_remove_selection :: 
     Ptr Selection ->                        -- _obj : TInterface "Atk" "Selection"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO CInt
 
 
@@ -338,7 +339,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Selection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces/Selection.hs-boot b/GI/Atk/Interfaces/Selection.hs-boot
--- a/GI/Atk/Interfaces/Selection.hs-boot
+++ b/GI/Atk/Interfaces/Selection.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.Selection where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/StreamableContent.hs b/GI/Atk/Interfaces/StreamableContent.hs
--- a/GI/Atk/Interfaces/StreamableContent.hs
+++ b/GI/Atk/Interfaces/StreamableContent.hs
@@ -40,9 +40,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -85,15 +85,15 @@
 
 -- method StreamableContent::get_mime_type
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StreamableContent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StreamableContent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_streamable_content_get_mime_type" atk_streamable_content_get_mime_type :: 
     Ptr StreamableContent ->                -- _obj : TInterface "Atk" "StreamableContent"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO CString
 
 
@@ -118,7 +118,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StreamableContent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -145,7 +145,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StreamableContent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOChannel"
+-- returnType : Just (TInterface "GLib" "IOChannel")
 -- throws : False
 -- Skip return : False
 
@@ -178,7 +178,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StreamableContent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -192,19 +192,20 @@
     (MonadIO m, StreamableContentK a) =>
     a                                       -- _obj
     -> T.Text                               -- mimeType
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 streamableContentGetUri _obj mimeType = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     mimeType' <- textToCString mimeType
     result <- atk_streamable_content_get_uri _obj' mimeType'
-    checkUnexpectedReturnNULL "atk_streamable_content_get_uri" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
     freeMem mimeType'
-    return result'
+    return maybeResult
 
 data StreamableContentGetUriMethodInfo
-instance (signature ~ (T.Text -> m T.Text), MonadIO m, StreamableContentK a) => MethodInfo StreamableContentGetUriMethodInfo a signature where
+instance (signature ~ (T.Text -> m (Maybe T.Text)), MonadIO m, StreamableContentK a) => MethodInfo StreamableContentGetUriMethodInfo a signature where
     overloadedMethod _ = streamableContentGetUri
 
 
diff --git a/GI/Atk/Interfaces/StreamableContent.hs-boot b/GI/Atk/Interfaces/StreamableContent.hs-boot
--- a/GI/Atk/Interfaces/StreamableContent.hs-boot
+++ b/GI/Atk/Interfaces/StreamableContent.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.StreamableContent where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Table.hs b/GI/Atk/Interfaces/Table.hs
--- a/GI/Atk/Interfaces/Table.hs
+++ b/GI/Atk/Interfaces/Table.hs
@@ -252,9 +252,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -646,15 +646,15 @@
 
 -- method Table::add_column_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_add_column_selection" atk_table_add_column_selection :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- column : TBasicType TInt
     IO CInt
 
 
@@ -676,15 +676,15 @@
 
 -- method Table::add_row_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_add_row_selection" atk_table_add_row_selection :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
     IO CInt
 
 
@@ -708,7 +708,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
@@ -720,41 +720,42 @@
 tableGetCaption ::
     (MonadIO m, TableK a) =>
     a                                       -- _obj
-    -> m Object                             -- result
+    -> m (Maybe Object)                     -- result
 tableGetCaption _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_table_get_caption _obj'
-    checkUnexpectedReturnNULL "atk_table_get_caption" result
-    result' <- (newObject Object) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newObject Object) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data TableGetCaptionMethodInfo
-instance (signature ~ (m Object), MonadIO m, TableK a) => MethodInfo TableGetCaptionMethodInfo a signature where
+instance (signature ~ (m (Maybe Object)), MonadIO m, TableK a) => MethodInfo TableGetCaptionMethodInfo a signature where
     overloadedMethod _ = tableGetCaption
 
 -- method Table::get_column_at_index
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index_", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_column_at_index" atk_table_get_column_at_index :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- index_ : TBasicType TInt32
+    Int32 ->                                -- index_ : TBasicType TInt
     IO Int32
 
 {-# DEPRECATED tableGetColumnAtIndex ["Since 2.12."]#-}
 tableGetColumnAtIndex ::
     (MonadIO m, TableK a) =>
     a                                       -- _obj
-    -> Int32                                -- index
+    -> Int32                                -- index_
     -> m Int32                              -- result
-tableGetColumnAtIndex _obj index = liftIO $ do
+tableGetColumnAtIndex _obj index_ = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- atk_table_get_column_at_index _obj' index
+    result <- atk_table_get_column_at_index _obj' index_
     touchManagedPtr _obj
     return result
 
@@ -764,15 +765,15 @@
 
 -- method Table::get_column_description
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_column_description" atk_table_get_column_description :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- column : TBasicType TInt
     IO CString
 
 
@@ -795,16 +796,16 @@
 
 -- method Table::get_column_extent_at
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_column_extent_at" atk_table_get_column_extent_at :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
+    Int32 ->                                -- column : TBasicType TInt
     IO Int32
 
 
@@ -826,15 +827,15 @@
 
 -- method Table::get_column_header
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_column_header" atk_table_get_column_header :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- column : TBasicType TInt
     IO (Ptr Object)
 
 
@@ -842,31 +843,32 @@
     (MonadIO m, TableK a) =>
     a                                       -- _obj
     -> Int32                                -- column
-    -> m Object                             -- result
+    -> m (Maybe Object)                     -- result
 tableGetColumnHeader _obj column = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_table_get_column_header _obj' column
-    checkUnexpectedReturnNULL "atk_table_get_column_header" result
-    result' <- (newObject Object) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newObject Object) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data TableGetColumnHeaderMethodInfo
-instance (signature ~ (Int32 -> m Object), MonadIO m, TableK a) => MethodInfo TableGetColumnHeaderMethodInfo a signature where
+instance (signature ~ (Int32 -> m (Maybe Object)), MonadIO m, TableK a) => MethodInfo TableGetColumnHeaderMethodInfo a signature where
     overloadedMethod _ = tableGetColumnHeader
 
 -- method Table::get_index_at
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_index_at" atk_table_get_index_at :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
+    Int32 ->                                -- column : TBasicType TInt
     IO Int32
 
 {-# DEPRECATED tableGetIndexAt ["Since 2.12. Use atk_table_ref_at() in order to get the","accessible that represents the cell at (@row, @column)"]#-}
@@ -890,7 +892,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -917,7 +919,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -942,26 +944,26 @@
 
 -- method Table::get_row_at_index
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index_", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_row_at_index" atk_table_get_row_at_index :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- index_ : TBasicType TInt32
+    Int32 ->                                -- index_ : TBasicType TInt
     IO Int32
 
 {-# DEPRECATED tableGetRowAtIndex ["since 2.12."]#-}
 tableGetRowAtIndex ::
     (MonadIO m, TableK a) =>
     a                                       -- _obj
-    -> Int32                                -- index
+    -> Int32                                -- index_
     -> m Int32                              -- result
-tableGetRowAtIndex _obj index = liftIO $ do
+tableGetRowAtIndex _obj index_ = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- atk_table_get_row_at_index _obj' index
+    result <- atk_table_get_row_at_index _obj' index_
     touchManagedPtr _obj
     return result
 
@@ -971,15 +973,15 @@
 
 -- method Table::get_row_description
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_row_description" atk_table_get_row_description :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
     IO CString
 
 
@@ -987,31 +989,32 @@
     (MonadIO m, TableK a) =>
     a                                       -- _obj
     -> Int32                                -- row
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 tableGetRowDescription _obj row = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_table_get_row_description _obj' row
-    checkUnexpectedReturnNULL "atk_table_get_row_description" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data TableGetRowDescriptionMethodInfo
-instance (signature ~ (Int32 -> m T.Text), MonadIO m, TableK a) => MethodInfo TableGetRowDescriptionMethodInfo a signature where
+instance (signature ~ (Int32 -> m (Maybe T.Text)), MonadIO m, TableK a) => MethodInfo TableGetRowDescriptionMethodInfo a signature where
     overloadedMethod _ = tableGetRowDescription
 
 -- method Table::get_row_extent_at
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_row_extent_at" atk_table_get_row_extent_at :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
+    Int32 ->                                -- column : TBasicType TInt
     IO Int32
 
 
@@ -1033,15 +1036,15 @@
 
 -- method Table::get_row_header
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_row_header" atk_table_get_row_header :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
     IO (Ptr Object)
 
 
@@ -1049,30 +1052,31 @@
     (MonadIO m, TableK a) =>
     a                                       -- _obj
     -> Int32                                -- row
-    -> m Object                             -- result
+    -> m (Maybe Object)                     -- result
 tableGetRowHeader _obj row = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_table_get_row_header _obj' row
-    checkUnexpectedReturnNULL "atk_table_get_row_header" result
-    result' <- (newObject Object) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newObject Object) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data TableGetRowHeaderMethodInfo
-instance (signature ~ (Int32 -> m Object), MonadIO m, TableK a) => MethodInfo TableGetRowHeaderMethodInfo a signature where
+instance (signature ~ (Int32 -> m (Maybe Object)), MonadIO m, TableK a) => MethodInfo TableGetRowHeaderMethodInfo a signature where
     overloadedMethod _ = tableGetRowHeader
 
 -- method Table::get_selected_columns
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selected", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selected", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_selected_columns" atk_table_get_selected_columns :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- selected : TBasicType TInt32
+    Int32 ->                                -- selected : TBasicType TInt
     IO Int32
 
 
@@ -1093,15 +1097,15 @@
 
 -- method Table::get_selected_rows
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selected", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selected", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_get_selected_rows" atk_table_get_selected_rows :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- selected : TBasicType TInt32
+    Int32 ->                                -- selected : TBasicType TInt
     IO Int32
 
 
@@ -1124,7 +1128,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
@@ -1151,15 +1155,15 @@
 
 -- method Table::is_column_selected
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_is_column_selected" atk_table_is_column_selected :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- column : TBasicType TInt
     IO CInt
 
 
@@ -1181,15 +1185,15 @@
 
 -- method Table::is_row_selected
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_is_row_selected" atk_table_is_row_selected :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
     IO CInt
 
 
@@ -1211,16 +1215,16 @@
 
 -- method Table::is_selected
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_is_selected" atk_table_is_selected :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
+    Int32 ->                                -- column : TBasicType TInt
     IO CInt
 
 
@@ -1243,16 +1247,16 @@
 
 -- method Table::ref_at
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_ref_at" atk_table_ref_at :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
+    Int32 ->                                -- column : TBasicType TInt
     IO (Ptr Object)
 
 
@@ -1276,15 +1280,15 @@
 
 -- method Table::remove_column_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_remove_column_selection" atk_table_remove_column_selection :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- column : TBasicType TInt
     IO CInt
 
 
@@ -1306,15 +1310,15 @@
 
 -- method Table::remove_row_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_remove_row_selection" atk_table_remove_row_selection :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
     IO CInt
 
 
@@ -1338,7 +1342,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caption", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1367,15 +1371,15 @@
 
 -- method Table::set_column_description
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_set_column_description" atk_table_set_column_description :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- column : TBasicType TInt
     CString ->                              -- description : TBasicType TUTF8
     IO ()
 
@@ -1400,15 +1404,15 @@
 
 -- method Table::set_column_header
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "header", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "header", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_set_column_header" atk_table_set_column_header :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- column : TBasicType TInt32
+    Int32 ->                                -- column : TBasicType TInt
     Ptr Object ->                           -- header : TInterface "Atk" "Object"
     IO ()
 
@@ -1433,15 +1437,15 @@
 
 -- method Table::set_row_description
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_set_row_description" atk_table_set_row_description :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
     CString ->                              -- description : TBasicType TUTF8
     IO ()
 
@@ -1466,15 +1470,15 @@
 
 -- method Table::set_row_header
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "header", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "header", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_set_row_header" atk_table_set_row_header :: 
     Ptr Table ->                            -- _obj : TInterface "Atk" "Table"
-    Int32 ->                                -- row : TBasicType TInt32
+    Int32 ->                                -- row : TBasicType TInt
     Ptr Object ->                           -- header : TInterface "Atk" "Object"
     IO ()
 
@@ -1501,7 +1505,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Table", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accessible", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces/Table.hs-boot b/GI/Atk/Interfaces/Table.hs-boot
--- a/GI/Atk/Interfaces/Table.hs-boot
+++ b/GI/Atk/Interfaces/Table.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.Table where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/TableCell.hs b/GI/Atk/Interfaces/TableCell.hs
--- a/GI/Atk/Interfaces/TableCell.hs
+++ b/GI/Atk/Interfaces/TableCell.hs
@@ -56,9 +56,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -163,7 +163,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "TableCell", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TPtrArray (TInterface "Atk" "Object")
+-- returnType : Just (TPtrArray (TInterface "Atk" "Object"))
 -- throws : False
 -- Skip return : False
 
@@ -194,7 +194,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "TableCell", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -219,16 +219,16 @@
 
 -- method TableCell::get_position
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "TableCell", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "TableCell", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_cell_get_position" atk_table_cell_get_position :: 
     Ptr TableCell ->                        -- _obj : TInterface "Atk" "TableCell"
-    Ptr Int32 ->                            -- row : TBasicType TInt32
-    Ptr Int32 ->                            -- column : TBasicType TInt32
+    Ptr Int32 ->                            -- row : TBasicType TInt
+    Ptr Int32 ->                            -- column : TBasicType TInt
     IO CInt
 
 
@@ -255,18 +255,18 @@
 
 -- method TableCell::get_row_column_span
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "TableCell", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "row_span", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "column_span", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "TableCell", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "row_span", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "column_span", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_table_cell_get_row_column_span" atk_table_cell_get_row_column_span :: 
     Ptr TableCell ->                        -- _obj : TInterface "Atk" "TableCell"
-    Ptr Int32 ->                            -- row : TBasicType TInt32
-    Ptr Int32 ->                            -- column : TBasicType TInt32
-    Ptr Int32 ->                            -- row_span : TBasicType TInt32
-    Ptr Int32 ->                            -- column_span : TBasicType TInt32
+    Ptr Int32 ->                            -- row : TBasicType TInt
+    Ptr Int32 ->                            -- column : TBasicType TInt
+    Ptr Int32 ->                            -- row_span : TBasicType TInt
+    Ptr Int32 ->                            -- column_span : TBasicType TInt
     IO CInt
 
 
@@ -301,7 +301,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "TableCell", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TPtrArray (TInterface "Atk" "Object")
+-- returnType : Just (TPtrArray (TInterface "Atk" "Object"))
 -- throws : False
 -- Skip return : False
 
@@ -332,7 +332,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "TableCell", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -359,7 +359,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "TableCell", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces/TableCell.hs-boot b/GI/Atk/Interfaces/TableCell.hs-boot
--- a/GI/Atk/Interfaces/TableCell.hs-boot
+++ b/GI/Atk/Interfaces/TableCell.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.TableCell where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Text.hs b/GI/Atk/Interfaces/Text.hs
--- a/GI/Atk/Interfaces/Text.hs
+++ b/GI/Atk/Interfaces/Text.hs
@@ -199,9 +199,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -546,16 +546,16 @@
 
 -- method Text::add_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_add_selection" atk_text_add_selection :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- start_offset : TBasicType TInt32
-    Int32 ->                                -- end_offset : TBasicType TInt32
+    Int32 ->                                -- start_offset : TBasicType TInt
+    Int32 ->                                -- end_offset : TBasicType TInt
     IO CInt
 
 
@@ -580,7 +580,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Atk" "TextRectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x_clip_type", argType = TInterface "Atk" "TextClipType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y_clip_type", argType = TInterface "Atk" "TextClipType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TCArray True (-1) (-1) (TInterface "Atk" "TextRange")
+-- returnType : Just (TCArray True (-1) (-1) (TInterface "Atk" "TextRange"))
 -- throws : False
 -- Skip return : False
 
@@ -624,7 +624,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -649,15 +649,15 @@
 
 -- method Text::get_character_at_offset
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUniChar
+-- returnType : Just (TBasicType TUniChar)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_character_at_offset" atk_text_get_character_at_offset :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- offset : TBasicType TInt32
+    Int32 ->                                -- offset : TBasicType TInt
     IO CInt
 
 
@@ -681,7 +681,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -706,19 +706,19 @@
 
 -- method Text::get_character_extents
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coords", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coords", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_character_extents" atk_text_get_character_extents :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- offset : TBasicType TInt32
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
+    Int32 ->                                -- offset : TBasicType TInt
+    Int32 ->                                -- x : TBasicType TInt
+    Int32 ->                                -- y : TBasicType TInt
+    Int32 ->                                -- width : TBasicType TInt
+    Int32 ->                                -- height : TBasicType TInt
     CUInt ->                                -- coords : TInterface "Atk" "CoordType"
     IO ()
 
@@ -748,7 +748,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TBasicType TVoid)
+-- returnType : Just (TGSList (TBasicType TPtr))
 -- throws : False
 -- Skip return : False
 
@@ -764,7 +764,6 @@
 textGetDefaultAttributes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_text_get_default_attributes _obj'
-    checkUnexpectedReturnNULL "atk_text_get_default_attributes" result
     result' <- unpackGSList result
     g_slist_free result
     touchManagedPtr _obj
@@ -778,7 +777,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -803,16 +802,16 @@
 
 -- method Text::get_offset_at_point
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coords", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coords", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_offset_at_point" atk_text_get_offset_at_point :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
+    Int32 ->                                -- x : TBasicType TInt
+    Int32 ->                                -- y : TBasicType TInt
     CUInt ->                                -- coords : TInterface "Atk" "CoordType"
     IO Int32
 
@@ -837,16 +836,16 @@
 
 -- method Text::get_range_extents
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Atk" "TextRectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface "Atk" "CoordType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Atk" "TextRectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_range_extents" atk_text_get_range_extents :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- start_offset : TBasicType TInt32
-    Int32 ->                                -- end_offset : TBasicType TInt32
+    Int32 ->                                -- start_offset : TBasicType TInt
+    Int32 ->                                -- end_offset : TBasicType TInt
     CUInt ->                                -- coord_type : TInterface "Atk" "CoordType"
     Ptr TextRectangle ->                    -- rect : TInterface "Atk" "TextRectangle"
     IO ()
@@ -875,17 +874,17 @@
 
 -- method Text::get_run_attributes
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TGSList (TBasicType TVoid)
+-- returnType : Just (TGSList (TBasicType TPtr))
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_run_attributes" atk_text_get_run_attributes :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- offset : TBasicType TInt32
-    Ptr Int32 ->                            -- start_offset : TBasicType TInt32
-    Ptr Int32 ->                            -- end_offset : TBasicType TInt32
+    Int32 ->                                -- offset : TBasicType TInt
+    Ptr Int32 ->                            -- start_offset : TBasicType TInt
+    Ptr Int32 ->                            -- end_offset : TBasicType TInt
     IO (Ptr (GSList (Ptr ())))
 
 
@@ -899,7 +898,6 @@
     startOffset <- allocMem :: IO (Ptr Int32)
     endOffset <- allocMem :: IO (Ptr Int32)
     result <- atk_text_get_run_attributes _obj' offset startOffset endOffset
-    checkUnexpectedReturnNULL "atk_text_get_run_attributes" result
     result' <- unpackGSList result
     g_slist_free result
     startOffset' <- peek startOffset
@@ -915,17 +913,17 @@
 
 -- method Text::get_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_num", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_selection" atk_text_get_selection :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- selection_num : TBasicType TInt32
-    Ptr Int32 ->                            -- start_offset : TBasicType TInt32
-    Ptr Int32 ->                            -- end_offset : TBasicType TInt32
+    Int32 ->                                -- selection_num : TBasicType TInt
+    Ptr Int32 ->                            -- start_offset : TBasicType TInt
+    Ptr Int32 ->                            -- end_offset : TBasicType TInt
     IO CString
 
 
@@ -955,18 +953,18 @@
 
 -- method Text::get_string_at_offset
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "granularity", argType = TInterface "Atk" "TextGranularity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "granularity", argType = TInterface "Atk" "TextGranularity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_string_at_offset" atk_text_get_string_at_offset :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- offset : TBasicType TInt32
+    Int32 ->                                -- offset : TBasicType TInt
     CUInt ->                                -- granularity : TInterface "Atk" "TextGranularity"
-    Ptr Int32 ->                            -- start_offset : TBasicType TInt32
-    Ptr Int32 ->                            -- end_offset : TBasicType TInt32
+    Ptr Int32 ->                            -- start_offset : TBasicType TInt
+    Ptr Int32 ->                            -- end_offset : TBasicType TInt
     IO CString
 
 
@@ -975,39 +973,40 @@
     a                                       -- _obj
     -> Int32                                -- offset
     -> TextGranularity                      -- granularity
-    -> m (T.Text,Int32,Int32)               -- result
+    -> m ((Maybe T.Text),Int32,Int32)       -- result
 textGetStringAtOffset _obj offset granularity = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let granularity' = (fromIntegral . fromEnum) granularity
     startOffset <- allocMem :: IO (Ptr Int32)
     endOffset <- allocMem :: IO (Ptr Int32)
     result <- atk_text_get_string_at_offset _obj' offset granularity' startOffset endOffset
-    checkUnexpectedReturnNULL "atk_text_get_string_at_offset" result
-    result' <- cstringToText result
-    freeMem result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        freeMem result'
+        return result''
     startOffset' <- peek startOffset
     endOffset' <- peek endOffset
     touchManagedPtr _obj
     freeMem startOffset
     freeMem endOffset
-    return (result', startOffset', endOffset')
+    return (maybeResult, startOffset', endOffset')
 
 data TextGetStringAtOffsetMethodInfo
-instance (signature ~ (Int32 -> TextGranularity -> m (T.Text,Int32,Int32)), MonadIO m, TextK a) => MethodInfo TextGetStringAtOffsetMethodInfo a signature where
+instance (signature ~ (Int32 -> TextGranularity -> m ((Maybe T.Text),Int32,Int32)), MonadIO m, TextK a) => MethodInfo TextGetStringAtOffsetMethodInfo a signature where
     overloadedMethod _ = textGetStringAtOffset
 
 -- method Text::get_text
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_text" atk_text_get_text :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- start_offset : TBasicType TInt32
-    Int32 ->                                -- end_offset : TBasicType TInt32
+    Int32 ->                                -- start_offset : TBasicType TInt
+    Int32 ->                                -- end_offset : TBasicType TInt
     IO CString
 
 
@@ -1032,18 +1031,18 @@
 
 -- method Text::get_text_after_offset
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boundary_type", argType = TInterface "Atk" "TextBoundary", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boundary_type", argType = TInterface "Atk" "TextBoundary", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_text_after_offset" atk_text_get_text_after_offset :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- offset : TBasicType TInt32
+    Int32 ->                                -- offset : TBasicType TInt
     CUInt ->                                -- boundary_type : TInterface "Atk" "TextBoundary"
-    Ptr Int32 ->                            -- start_offset : TBasicType TInt32
-    Ptr Int32 ->                            -- end_offset : TBasicType TInt32
+    Ptr Int32 ->                            -- start_offset : TBasicType TInt
+    Ptr Int32 ->                            -- end_offset : TBasicType TInt
     IO CString
 
 {-# DEPRECATED textGetTextAfterOffset ["(Since version 2.9.3)","Please use atk_text_get_string_at_offset() instead."]#-}
@@ -1075,18 +1074,18 @@
 
 -- method Text::get_text_at_offset
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boundary_type", argType = TInterface "Atk" "TextBoundary", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boundary_type", argType = TInterface "Atk" "TextBoundary", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_text_at_offset" atk_text_get_text_at_offset :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- offset : TBasicType TInt32
+    Int32 ->                                -- offset : TBasicType TInt
     CUInt ->                                -- boundary_type : TInterface "Atk" "TextBoundary"
-    Ptr Int32 ->                            -- start_offset : TBasicType TInt32
-    Ptr Int32 ->                            -- end_offset : TBasicType TInt32
+    Ptr Int32 ->                            -- start_offset : TBasicType TInt
+    Ptr Int32 ->                            -- end_offset : TBasicType TInt
     IO CString
 
 {-# DEPRECATED textGetTextAtOffset ["This method is deprecated since ATK version","2.9.4. Please use atk_text_get_string_at_offset() instead."]#-}
@@ -1118,18 +1117,18 @@
 
 -- method Text::get_text_before_offset
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boundary_type", argType = TInterface "Atk" "TextBoundary", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boundary_type", argType = TInterface "Atk" "TextBoundary", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_get_text_before_offset" atk_text_get_text_before_offset :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- offset : TBasicType TInt32
+    Int32 ->                                -- offset : TBasicType TInt
     CUInt ->                                -- boundary_type : TInterface "Atk" "TextBoundary"
-    Ptr Int32 ->                            -- start_offset : TBasicType TInt32
-    Ptr Int32 ->                            -- end_offset : TBasicType TInt32
+    Ptr Int32 ->                            -- start_offset : TBasicType TInt
+    Ptr Int32 ->                            -- end_offset : TBasicType TInt
     IO CString
 
 {-# DEPRECATED textGetTextBeforeOffset ["(Since version 2.9.3)","Please use atk_text_get_string_at_offset() instead."]#-}
@@ -1161,15 +1160,15 @@
 
 -- method Text::remove_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_num", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_remove_selection" atk_text_remove_selection :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- selection_num : TBasicType TInt32
+    Int32 ->                                -- selection_num : TBasicType TInt
     IO CInt
 
 
@@ -1191,15 +1190,15 @@
 
 -- method Text::set_caret_offset
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_set_caret_offset" atk_text_set_caret_offset :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- offset : TBasicType TInt32
+    Int32 ->                                -- offset : TBasicType TInt
     IO CInt
 
 
@@ -1221,17 +1220,17 @@
 
 -- method Text::set_selection
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Text", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_num", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_text_set_selection" atk_text_set_selection :: 
     Ptr Text ->                             -- _obj : TInterface "Atk" "Text"
-    Int32 ->                                -- selection_num : TBasicType TInt32
-    Int32 ->                                -- start_offset : TBasicType TInt32
-    Int32 ->                                -- end_offset : TBasicType TInt32
+    Int32 ->                                -- selection_num : TBasicType TInt
+    Int32 ->                                -- start_offset : TBasicType TInt
+    Int32 ->                                -- end_offset : TBasicType TInt
     IO CInt
 
 
@@ -1257,7 +1256,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "ranges", argType = TCArray False (-1) (-1) (TInterface "Atk" "TextRange"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces/Text.hs-boot b/GI/Atk/Interfaces/Text.hs-boot
--- a/GI/Atk/Interfaces/Text.hs-boot
+++ b/GI/Atk/Interfaces/Text.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.Text where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Value.hs b/GI/Atk/Interfaces/Value.hs
--- a/GI/Atk/Interfaces/Value.hs
+++ b/GI/Atk/Interfaces/Value.hs
@@ -85,9 +85,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -188,7 +188,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -219,7 +219,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TDouble
+-- returnType : Just (TBasicType TDouble)
 -- throws : False
 -- Skip return : False
 
@@ -247,7 +247,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -278,7 +278,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -309,7 +309,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -340,7 +340,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Range"
+-- returnType : Just (TInterface "Atk" "Range")
 -- throws : False
 -- Skip return : False
 
@@ -352,24 +352,25 @@
 valueGetRange ::
     (MonadIO m, ValueK a) =>
     a                                       -- _obj
-    -> m Range                              -- result
+    -> m (Maybe Range)                      -- result
 valueGetRange _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_value_get_range _obj'
-    checkUnexpectedReturnNULL "atk_value_get_range" result
-    result' <- (wrapBoxed Range) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapBoxed Range) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ValueGetRangeMethodInfo
-instance (signature ~ (m Range), MonadIO m, ValueK a) => MethodInfo ValueGetRangeMethodInfo a signature where
+instance (signature ~ (m (Maybe Range)), MonadIO m, ValueK a) => MethodInfo ValueGetRangeMethodInfo a signature where
     overloadedMethod _ = valueGetRange
 
 -- method Value::get_sub_ranges
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TInterface "Atk" "Range")
+-- returnType : Just (TGSList (TInterface "Atk" "Range"))
 -- throws : False
 -- Skip return : False
 
@@ -385,7 +386,6 @@
 valueGetSubRanges _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_value_get_sub_ranges _obj'
-    checkUnexpectedReturnNULL "atk_value_get_sub_ranges" result
     result' <- unpackGSList result
     result'' <- mapM (wrapBoxed Range) result'
     g_slist_free result
@@ -400,7 +400,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -438,7 +438,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -470,7 +470,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Interfaces/Value.hs-boot b/GI/Atk/Interfaces/Value.hs-boot
--- a/GI/Atk/Interfaces/Value.hs-boot
+++ b/GI/Atk/Interfaces/Value.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.Value where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Window.hs b/GI/Atk/Interfaces/Window.hs
--- a/GI/Atk/Interfaces/Window.hs
+++ b/GI/Atk/Interfaces/Window.hs
@@ -129,9 +129,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Interfaces/Window.hs-boot b/GI/Atk/Interfaces/Window.hs-boot
--- a/GI/Atk/Interfaces/Window.hs-boot
+++ b/GI/Atk/Interfaces/Window.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Interfaces.Window where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects.hs b/GI/Atk/Objects.hs
--- a/GI/Atk/Objects.hs
+++ b/GI/Atk/Objects.hs
@@ -40,9 +40,9 @@
 import GI.Atk.Objects.StateSet
 import GI.Atk.Objects.Util
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/GObjectAccessible.hs b/GI/Atk/Objects/GObjectAccessible.hs
--- a/GI/Atk/Objects/GObjectAccessible.hs
+++ b/GI/Atk/Objects/GObjectAccessible.hs
@@ -30,9 +30,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -129,7 +129,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "GObjectAccessible", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GObject" "Object"
+-- returnType : Just (TInterface "GObject" "Object")
 -- throws : False
 -- Skip return : False
 
@@ -158,7 +158,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/GObjectAccessible.hs-boot b/GI/Atk/Objects/GObjectAccessible.hs-boot
--- a/GI/Atk/Objects/GObjectAccessible.hs-boot
+++ b/GI/Atk/Objects/GObjectAccessible.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.GObjectAccessible where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/Hyperlink.hs b/GI/Atk/Objects/Hyperlink.hs
--- a/GI/Atk/Objects/Hyperlink.hs
+++ b/GI/Atk/Objects/Hyperlink.hs
@@ -63,21 +63,25 @@
 -- ** EndIndex
     HyperlinkEndIndexPropertyInfo           ,
     getHyperlinkEndIndex                    ,
+    hyperlinkEndIndex                       ,
 
 
 -- ** NumberOfAnchors
     HyperlinkNumberOfAnchorsPropertyInfo    ,
     getHyperlinkNumberOfAnchors             ,
+    hyperlinkNumberOfAnchors                ,
 
 
 -- ** SelectedLink
     HyperlinkSelectedLinkPropertyInfo       ,
     getHyperlinkSelectedLink                ,
+    hyperlinkSelectedLink                   ,
 
 
 -- ** StartIndex
     HyperlinkStartIndexPropertyInfo         ,
     getHyperlinkStartIndex                  ,
+    hyperlinkStartIndex                     ,
 
 
 
@@ -99,9 +103,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -218,11 +222,12 @@
     connectSignalFunPtr obj "link-activated" cb' after
 
 -- VVV Prop "end-index"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable]
+   -- Nullable: (Just False,Nothing)
 
 getHyperlinkEndIndex :: (MonadIO m, HyperlinkK o) => o -> m Int32
-getHyperlinkEndIndex obj = liftIO $ getObjectPropertyCInt obj "end-index"
+getHyperlinkEndIndex obj = liftIO $ getObjectPropertyInt32 obj "end-index"
 
 data HyperlinkEndIndexPropertyInfo
 instance AttrInfo HyperlinkEndIndexPropertyInfo where
@@ -234,13 +239,15 @@
     attrGet _ = getHyperlinkEndIndex
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "number-of-anchors"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getHyperlinkNumberOfAnchors :: (MonadIO m, HyperlinkK o) => o -> m Int32
-getHyperlinkNumberOfAnchors obj = liftIO $ getObjectPropertyCInt obj "number-of-anchors"
+getHyperlinkNumberOfAnchors obj = liftIO $ getObjectPropertyInt32 obj "number-of-anchors"
 
 data HyperlinkNumberOfAnchorsPropertyInfo
 instance AttrInfo HyperlinkNumberOfAnchorsPropertyInfo where
@@ -252,10 +259,12 @@
     attrGet _ = getHyperlinkNumberOfAnchors
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "selected-link"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getHyperlinkSelectedLink :: (MonadIO m, HyperlinkK o) => o -> m Bool
 getHyperlinkSelectedLink obj = liftIO $ getObjectPropertyBool obj "selected-link"
@@ -270,13 +279,15 @@
     attrGet _ = getHyperlinkSelectedLink
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "start-index"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable]
+   -- Nullable: (Just False,Nothing)
 
 getHyperlinkStartIndex :: (MonadIO m, HyperlinkK o) => o -> m Int32
-getHyperlinkStartIndex obj = liftIO $ getObjectPropertyCInt obj "start-index"
+getHyperlinkStartIndex obj = liftIO $ getObjectPropertyInt32 obj "start-index"
 
 data HyperlinkStartIndexPropertyInfo
 instance AttrInfo HyperlinkStartIndexPropertyInfo where
@@ -288,10 +299,23 @@
     attrGet _ = getHyperlinkStartIndex
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 type instance AttributeList Hyperlink = HyperlinkAttributeList
 type HyperlinkAttributeList = ('[ '("endIndex", HyperlinkEndIndexPropertyInfo), '("numberOfAnchors", HyperlinkNumberOfAnchorsPropertyInfo), '("selectedLink", HyperlinkSelectedLinkPropertyInfo), '("startIndex", HyperlinkStartIndexPropertyInfo)] :: [(Symbol, *)])
 
+hyperlinkEndIndex :: AttrLabelProxy "endIndex"
+hyperlinkEndIndex = AttrLabelProxy
+
+hyperlinkNumberOfAnchors :: AttrLabelProxy "numberOfAnchors"
+hyperlinkNumberOfAnchors = AttrLabelProxy
+
+hyperlinkSelectedLink :: AttrLabelProxy "selectedLink"
+hyperlinkSelectedLink = AttrLabelProxy
+
+hyperlinkStartIndex :: AttrLabelProxy "startIndex"
+hyperlinkStartIndex = AttrLabelProxy
+
 data HyperlinkLinkActivatedSignalInfo
 instance SignalInfo HyperlinkLinkActivatedSignalInfo where
     type HaskellCallbackType HyperlinkLinkActivatedSignalInfo = HyperlinkLinkActivatedCallback
@@ -304,7 +328,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hyperlink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -331,7 +355,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hyperlink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -356,15 +380,15 @@
 
 -- method Hyperlink::get_object
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hyperlink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hyperlink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_hyperlink_get_object" atk_hyperlink_get_object :: 
     Ptr Hyperlink ->                        -- _obj : TInterface "Atk" "Hyperlink"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO (Ptr Object)
 
 
@@ -389,7 +413,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hyperlink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -414,15 +438,15 @@
 
 -- method Hyperlink::get_uri
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hyperlink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hyperlink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_hyperlink_get_uri" atk_hyperlink_get_uri :: 
     Ptr Hyperlink ->                        -- _obj : TInterface "Atk" "Hyperlink"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO CString
 
 
@@ -448,7 +472,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hyperlink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -476,7 +500,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hyperlink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -504,7 +528,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hyperlink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/Hyperlink.hs-boot b/GI/Atk/Objects/Hyperlink.hs-boot
--- a/GI/Atk/Objects/Hyperlink.hs-boot
+++ b/GI/Atk/Objects/Hyperlink.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.Hyperlink where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/Misc.hs b/GI/Atk/Objects/Misc.hs
--- a/GI/Atk/Objects/Misc.hs
+++ b/GI/Atk/Objects/Misc.hs
@@ -35,9 +35,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -112,7 +112,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Misc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -139,7 +139,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Misc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -166,7 +166,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Atk" "Misc"
+-- returnType : Just (TInterface "Atk" "Misc")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/Misc.hs-boot b/GI/Atk/Objects/Misc.hs-boot
--- a/GI/Atk/Objects/Misc.hs-boot
+++ b/GI/Atk/Objects/Misc.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.Misc where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/NoOpObject.hs b/GI/Atk/Objects/NoOpObject.hs
--- a/GI/Atk/Objects/NoOpObject.hs
+++ b/GI/Atk/Objects/NoOpObject.hs
@@ -25,9 +25,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -221,7 +221,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "NoOpObject"
+-- returnType : Just (TInterface "Atk" "NoOpObject")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/NoOpObject.hs-boot b/GI/Atk/Objects/NoOpObject.hs-boot
--- a/GI/Atk/Objects/NoOpObject.hs-boot
+++ b/GI/Atk/Objects/NoOpObject.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.NoOpObject where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/NoOpObjectFactory.hs b/GI/Atk/Objects/NoOpObjectFactory.hs
--- a/GI/Atk/Objects/NoOpObjectFactory.hs
+++ b/GI/Atk/Objects/NoOpObjectFactory.hs
@@ -25,9 +25,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -103,7 +103,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Atk" "NoOpObjectFactory"
+-- returnType : Just (TInterface "Atk" "NoOpObjectFactory")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/NoOpObjectFactory.hs-boot b/GI/Atk/Objects/NoOpObjectFactory.hs-boot
--- a/GI/Atk/Objects/NoOpObjectFactory.hs-boot
+++ b/GI/Atk/Objects/NoOpObjectFactory.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.NoOpObjectFactory where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/Object.hs b/GI/Atk/Objects/Object.hs
--- a/GI/Atk/Objects/Object.hs
+++ b/GI/Atk/Objects/Object.hs
@@ -138,36 +138,45 @@
 -- ** AccessibleComponentLayer
     ObjectAccessibleComponentLayerPropertyInfo,
     getObjectAccessibleComponentLayer       ,
+    objectAccessibleComponentLayer          ,
 
 
 -- ** AccessibleComponentMdiZorder
     ObjectAccessibleComponentMdiZorderPropertyInfo,
     getObjectAccessibleComponentMdiZorder   ,
+    objectAccessibleComponentMdiZorder      ,
 
 
 -- ** AccessibleDescription
     ObjectAccessibleDescriptionPropertyInfo ,
+    clearObjectAccessibleDescription        ,
     constructObjectAccessibleDescription    ,
     getObjectAccessibleDescription          ,
+    objectAccessibleDescription             ,
     setObjectAccessibleDescription          ,
 
 
 -- ** AccessibleHypertextNlinks
     ObjectAccessibleHypertextNlinksPropertyInfo,
     getObjectAccessibleHypertextNlinks      ,
+    objectAccessibleHypertextNlinks         ,
 
 
 -- ** AccessibleName
     ObjectAccessibleNamePropertyInfo        ,
+    clearObjectAccessibleName               ,
     constructObjectAccessibleName           ,
     getObjectAccessibleName                 ,
+    objectAccessibleName                    ,
     setObjectAccessibleName                 ,
 
 
 -- ** AccessibleParent
     ObjectAccessibleParentPropertyInfo      ,
+    clearObjectAccessibleParent             ,
     constructObjectAccessibleParent         ,
     getObjectAccessibleParent               ,
+    objectAccessibleParent                  ,
     setObjectAccessibleParent               ,
 
 
@@ -175,55 +184,70 @@
     ObjectAccessibleRolePropertyInfo        ,
     constructObjectAccessibleRole           ,
     getObjectAccessibleRole                 ,
+    objectAccessibleRole                    ,
     setObjectAccessibleRole                 ,
 
 
 -- ** AccessibleTableCaption
     ObjectAccessibleTableCaptionPropertyInfo,
+    clearObjectAccessibleTableCaption       ,
     constructObjectAccessibleTableCaption   ,
     getObjectAccessibleTableCaption         ,
+    objectAccessibleTableCaption            ,
     setObjectAccessibleTableCaption         ,
 
 
 -- ** AccessibleTableCaptionObject
     ObjectAccessibleTableCaptionObjectPropertyInfo,
+    clearObjectAccessibleTableCaptionObject ,
     constructObjectAccessibleTableCaptionObject,
     getObjectAccessibleTableCaptionObject   ,
+    objectAccessibleTableCaptionObject      ,
     setObjectAccessibleTableCaptionObject   ,
 
 
 -- ** AccessibleTableColumnDescription
     ObjectAccessibleTableColumnDescriptionPropertyInfo,
+    clearObjectAccessibleTableColumnDescription,
     constructObjectAccessibleTableColumnDescription,
     getObjectAccessibleTableColumnDescription,
+    objectAccessibleTableColumnDescription  ,
     setObjectAccessibleTableColumnDescription,
 
 
 -- ** AccessibleTableColumnHeader
     ObjectAccessibleTableColumnHeaderPropertyInfo,
+    clearObjectAccessibleTableColumnHeader  ,
     constructObjectAccessibleTableColumnHeader,
     getObjectAccessibleTableColumnHeader    ,
+    objectAccessibleTableColumnHeader       ,
     setObjectAccessibleTableColumnHeader    ,
 
 
 -- ** AccessibleTableRowDescription
     ObjectAccessibleTableRowDescriptionPropertyInfo,
+    clearObjectAccessibleTableRowDescription,
     constructObjectAccessibleTableRowDescription,
     getObjectAccessibleTableRowDescription  ,
+    objectAccessibleTableRowDescription     ,
     setObjectAccessibleTableRowDescription  ,
 
 
 -- ** AccessibleTableRowHeader
     ObjectAccessibleTableRowHeaderPropertyInfo,
+    clearObjectAccessibleTableRowHeader     ,
     constructObjectAccessibleTableRowHeader ,
     getObjectAccessibleTableRowHeader       ,
+    objectAccessibleTableRowHeader          ,
     setObjectAccessibleTableRowHeader       ,
 
 
 -- ** AccessibleTableSummary
     ObjectAccessibleTableSummaryPropertyInfo,
+    clearObjectAccessibleTableSummary       ,
     constructObjectAccessibleTableSummary   ,
     getObjectAccessibleTableSummary         ,
+    objectAccessibleTableSummary            ,
     setObjectAccessibleTableSummary         ,
 
 
@@ -231,6 +255,7 @@
     ObjectAccessibleValuePropertyInfo       ,
     constructObjectAccessibleValue          ,
     getObjectAccessibleValue                ,
+    objectAccessibleValue                   ,
     setObjectAccessibleValue                ,
 
 
@@ -313,9 +338,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -654,11 +679,12 @@
     connectSignalFunPtr obj "visible-data-changed" cb' after
 
 -- VVV Prop "accessible-component-layer"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getObjectAccessibleComponentLayer :: (MonadIO m, ObjectK o) => o -> m Int32
-getObjectAccessibleComponentLayer obj = liftIO $ getObjectPropertyCInt obj "accessible-component-layer"
+getObjectAccessibleComponentLayer obj = liftIO $ getObjectPropertyInt32 obj "accessible-component-layer"
 
 data ObjectAccessibleComponentLayerPropertyInfo
 instance AttrInfo ObjectAccessibleComponentLayerPropertyInfo where
@@ -670,13 +696,15 @@
     attrGet _ = getObjectAccessibleComponentLayer
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "accessible-component-mdi-zorder"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getObjectAccessibleComponentMdiZorder :: (MonadIO m, ObjectK o) => o -> m Int32
-getObjectAccessibleComponentMdiZorder obj = liftIO $ getObjectPropertyCInt obj "accessible-component-mdi-zorder"
+getObjectAccessibleComponentMdiZorder obj = liftIO $ getObjectPropertyInt32 obj "accessible-component-mdi-zorder"
 
 data ObjectAccessibleComponentMdiZorderPropertyInfo
 instance AttrInfo ObjectAccessibleComponentMdiZorderPropertyInfo where
@@ -688,37 +716,44 @@
     attrGet _ = getObjectAccessibleComponentMdiZorder
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "accessible-description"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getObjectAccessibleDescription :: (MonadIO m, ObjectK o) => o -> m T.Text
+getObjectAccessibleDescription :: (MonadIO m, ObjectK o) => o -> m (Maybe T.Text)
 getObjectAccessibleDescription obj = liftIO $ getObjectPropertyString obj "accessible-description"
 
 setObjectAccessibleDescription :: (MonadIO m, ObjectK o) => o -> T.Text -> m ()
-setObjectAccessibleDescription obj val = liftIO $ setObjectPropertyString obj "accessible-description" val
+setObjectAccessibleDescription obj val = liftIO $ setObjectPropertyString obj "accessible-description" (Just val)
 
 constructObjectAccessibleDescription :: T.Text -> IO ([Char], GValue)
-constructObjectAccessibleDescription val = constructObjectPropertyString "accessible-description" val
+constructObjectAccessibleDescription val = constructObjectPropertyString "accessible-description" (Just val)
 
+clearObjectAccessibleDescription :: (MonadIO m, ObjectK o) => o -> m ()
+clearObjectAccessibleDescription obj = liftIO $ setObjectPropertyString obj "accessible-description" (Nothing :: Maybe T.Text)
+
 data ObjectAccessibleDescriptionPropertyInfo
 instance AttrInfo ObjectAccessibleDescriptionPropertyInfo where
-    type AttrAllowedOps ObjectAccessibleDescriptionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ObjectAccessibleDescriptionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ObjectAccessibleDescriptionPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint ObjectAccessibleDescriptionPropertyInfo = ObjectK
-    type AttrGetType ObjectAccessibleDescriptionPropertyInfo = T.Text
+    type AttrGetType ObjectAccessibleDescriptionPropertyInfo = (Maybe T.Text)
     type AttrLabel ObjectAccessibleDescriptionPropertyInfo = "accessible-description"
     attrGet _ = getObjectAccessibleDescription
     attrSet _ = setObjectAccessibleDescription
     attrConstruct _ = constructObjectAccessibleDescription
+    attrClear _ = clearObjectAccessibleDescription
 
 -- VVV Prop "accessible-hypertext-nlinks"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getObjectAccessibleHypertextNlinks :: (MonadIO m, ObjectK o) => o -> m Int32
-getObjectAccessibleHypertextNlinks obj = liftIO $ getObjectPropertyCInt obj "accessible-hypertext-nlinks"
+getObjectAccessibleHypertextNlinks obj = liftIO $ getObjectPropertyInt32 obj "accessible-hypertext-nlinks"
 
 data ObjectAccessibleHypertextNlinksPropertyInfo
 instance AttrInfo ObjectAccessibleHypertextNlinksPropertyInfo where
@@ -730,67 +765,79 @@
     attrGet _ = getObjectAccessibleHypertextNlinks
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "accessible-name"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getObjectAccessibleName :: (MonadIO m, ObjectK o) => o -> m T.Text
+getObjectAccessibleName :: (MonadIO m, ObjectK o) => o -> m (Maybe T.Text)
 getObjectAccessibleName obj = liftIO $ getObjectPropertyString obj "accessible-name"
 
 setObjectAccessibleName :: (MonadIO m, ObjectK o) => o -> T.Text -> m ()
-setObjectAccessibleName obj val = liftIO $ setObjectPropertyString obj "accessible-name" val
+setObjectAccessibleName obj val = liftIO $ setObjectPropertyString obj "accessible-name" (Just val)
 
 constructObjectAccessibleName :: T.Text -> IO ([Char], GValue)
-constructObjectAccessibleName val = constructObjectPropertyString "accessible-name" val
+constructObjectAccessibleName val = constructObjectPropertyString "accessible-name" (Just val)
 
+clearObjectAccessibleName :: (MonadIO m, ObjectK o) => o -> m ()
+clearObjectAccessibleName obj = liftIO $ setObjectPropertyString obj "accessible-name" (Nothing :: Maybe T.Text)
+
 data ObjectAccessibleNamePropertyInfo
 instance AttrInfo ObjectAccessibleNamePropertyInfo where
-    type AttrAllowedOps ObjectAccessibleNamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ObjectAccessibleNamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ObjectAccessibleNamePropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint ObjectAccessibleNamePropertyInfo = ObjectK
-    type AttrGetType ObjectAccessibleNamePropertyInfo = T.Text
+    type AttrGetType ObjectAccessibleNamePropertyInfo = (Maybe T.Text)
     type AttrLabel ObjectAccessibleNamePropertyInfo = "accessible-name"
     attrGet _ = getObjectAccessibleName
     attrSet _ = setObjectAccessibleName
     attrConstruct _ = constructObjectAccessibleName
+    attrClear _ = clearObjectAccessibleName
 
 -- VVV Prop "accessible-parent"
    -- Type: TInterface "Atk" "Object"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getObjectAccessibleParent :: (MonadIO m, ObjectK o) => o -> m Object
+getObjectAccessibleParent :: (MonadIO m, ObjectK o) => o -> m (Maybe Object)
 getObjectAccessibleParent obj = liftIO $ getObjectPropertyObject obj "accessible-parent" Object
 
 setObjectAccessibleParent :: (MonadIO m, ObjectK o, ObjectK a) => o -> a -> m ()
-setObjectAccessibleParent obj val = liftIO $ setObjectPropertyObject obj "accessible-parent" val
+setObjectAccessibleParent obj val = liftIO $ setObjectPropertyObject obj "accessible-parent" (Just val)
 
 constructObjectAccessibleParent :: (ObjectK a) => a -> IO ([Char], GValue)
-constructObjectAccessibleParent val = constructObjectPropertyObject "accessible-parent" val
+constructObjectAccessibleParent val = constructObjectPropertyObject "accessible-parent" (Just val)
 
+clearObjectAccessibleParent :: (MonadIO m, ObjectK o) => o -> m ()
+clearObjectAccessibleParent obj = liftIO $ setObjectPropertyObject obj "accessible-parent" (Nothing :: Maybe Object)
+
 data ObjectAccessibleParentPropertyInfo
 instance AttrInfo ObjectAccessibleParentPropertyInfo where
-    type AttrAllowedOps ObjectAccessibleParentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ObjectAccessibleParentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ObjectAccessibleParentPropertyInfo = ObjectK
     type AttrBaseTypeConstraint ObjectAccessibleParentPropertyInfo = ObjectK
-    type AttrGetType ObjectAccessibleParentPropertyInfo = Object
+    type AttrGetType ObjectAccessibleParentPropertyInfo = (Maybe Object)
     type AttrLabel ObjectAccessibleParentPropertyInfo = "accessible-parent"
     attrGet _ = getObjectAccessibleParent
     attrSet _ = setObjectAccessibleParent
     attrConstruct _ = constructObjectAccessibleParent
+    attrClear _ = clearObjectAccessibleParent
 
 -- VVV Prop "accessible-role"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getObjectAccessibleRole :: (MonadIO m, ObjectK o) => o -> m Int32
-getObjectAccessibleRole obj = liftIO $ getObjectPropertyCInt obj "accessible-role"
+getObjectAccessibleRole obj = liftIO $ getObjectPropertyInt32 obj "accessible-role"
 
 setObjectAccessibleRole :: (MonadIO m, ObjectK o) => o -> Int32 -> m ()
-setObjectAccessibleRole obj val = liftIO $ setObjectPropertyCInt obj "accessible-role" val
+setObjectAccessibleRole obj val = liftIO $ setObjectPropertyInt32 obj "accessible-role" val
 
 constructObjectAccessibleRole :: Int32 -> IO ([Char], GValue)
-constructObjectAccessibleRole val = constructObjectPropertyCInt "accessible-role" val
+constructObjectAccessibleRole val = constructObjectPropertyInt32 "accessible-role" val
 
 data ObjectAccessibleRolePropertyInfo
 instance AttrInfo ObjectAccessibleRolePropertyInfo where
@@ -802,178 +849,215 @@
     attrGet _ = getObjectAccessibleRole
     attrSet _ = setObjectAccessibleRole
     attrConstruct _ = constructObjectAccessibleRole
+    attrClear _ = undefined
 
 -- VVV Prop "accessible-table-caption"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getObjectAccessibleTableCaption :: (MonadIO m, ObjectK o) => o -> m T.Text
+getObjectAccessibleTableCaption :: (MonadIO m, ObjectK o) => o -> m (Maybe T.Text)
 getObjectAccessibleTableCaption obj = liftIO $ getObjectPropertyString obj "accessible-table-caption"
 
 setObjectAccessibleTableCaption :: (MonadIO m, ObjectK o) => o -> T.Text -> m ()
-setObjectAccessibleTableCaption obj val = liftIO $ setObjectPropertyString obj "accessible-table-caption" val
+setObjectAccessibleTableCaption obj val = liftIO $ setObjectPropertyString obj "accessible-table-caption" (Just val)
 
 constructObjectAccessibleTableCaption :: T.Text -> IO ([Char], GValue)
-constructObjectAccessibleTableCaption val = constructObjectPropertyString "accessible-table-caption" val
+constructObjectAccessibleTableCaption val = constructObjectPropertyString "accessible-table-caption" (Just val)
 
+clearObjectAccessibleTableCaption :: (MonadIO m, ObjectK o) => o -> m ()
+clearObjectAccessibleTableCaption obj = liftIO $ setObjectPropertyString obj "accessible-table-caption" (Nothing :: Maybe T.Text)
+
 data ObjectAccessibleTableCaptionPropertyInfo
 instance AttrInfo ObjectAccessibleTableCaptionPropertyInfo where
-    type AttrAllowedOps ObjectAccessibleTableCaptionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ObjectAccessibleTableCaptionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ObjectAccessibleTableCaptionPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint ObjectAccessibleTableCaptionPropertyInfo = ObjectK
-    type AttrGetType ObjectAccessibleTableCaptionPropertyInfo = T.Text
+    type AttrGetType ObjectAccessibleTableCaptionPropertyInfo = (Maybe T.Text)
     type AttrLabel ObjectAccessibleTableCaptionPropertyInfo = "accessible-table-caption"
     attrGet _ = getObjectAccessibleTableCaption
     attrSet _ = setObjectAccessibleTableCaption
     attrConstruct _ = constructObjectAccessibleTableCaption
+    attrClear _ = clearObjectAccessibleTableCaption
 
 -- VVV Prop "accessible-table-caption-object"
    -- Type: TInterface "Atk" "Object"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getObjectAccessibleTableCaptionObject :: (MonadIO m, ObjectK o) => o -> m Object
+getObjectAccessibleTableCaptionObject :: (MonadIO m, ObjectK o) => o -> m (Maybe Object)
 getObjectAccessibleTableCaptionObject obj = liftIO $ getObjectPropertyObject obj "accessible-table-caption-object" Object
 
 setObjectAccessibleTableCaptionObject :: (MonadIO m, ObjectK o, ObjectK a) => o -> a -> m ()
-setObjectAccessibleTableCaptionObject obj val = liftIO $ setObjectPropertyObject obj "accessible-table-caption-object" val
+setObjectAccessibleTableCaptionObject obj val = liftIO $ setObjectPropertyObject obj "accessible-table-caption-object" (Just val)
 
 constructObjectAccessibleTableCaptionObject :: (ObjectK a) => a -> IO ([Char], GValue)
-constructObjectAccessibleTableCaptionObject val = constructObjectPropertyObject "accessible-table-caption-object" val
+constructObjectAccessibleTableCaptionObject val = constructObjectPropertyObject "accessible-table-caption-object" (Just val)
 
+clearObjectAccessibleTableCaptionObject :: (MonadIO m, ObjectK o) => o -> m ()
+clearObjectAccessibleTableCaptionObject obj = liftIO $ setObjectPropertyObject obj "accessible-table-caption-object" (Nothing :: Maybe Object)
+
 data ObjectAccessibleTableCaptionObjectPropertyInfo
 instance AttrInfo ObjectAccessibleTableCaptionObjectPropertyInfo where
-    type AttrAllowedOps ObjectAccessibleTableCaptionObjectPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ObjectAccessibleTableCaptionObjectPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ObjectAccessibleTableCaptionObjectPropertyInfo = ObjectK
     type AttrBaseTypeConstraint ObjectAccessibleTableCaptionObjectPropertyInfo = ObjectK
-    type AttrGetType ObjectAccessibleTableCaptionObjectPropertyInfo = Object
+    type AttrGetType ObjectAccessibleTableCaptionObjectPropertyInfo = (Maybe Object)
     type AttrLabel ObjectAccessibleTableCaptionObjectPropertyInfo = "accessible-table-caption-object"
     attrGet _ = getObjectAccessibleTableCaptionObject
     attrSet _ = setObjectAccessibleTableCaptionObject
     attrConstruct _ = constructObjectAccessibleTableCaptionObject
+    attrClear _ = clearObjectAccessibleTableCaptionObject
 
 -- VVV Prop "accessible-table-column-description"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getObjectAccessibleTableColumnDescription :: (MonadIO m, ObjectK o) => o -> m T.Text
+getObjectAccessibleTableColumnDescription :: (MonadIO m, ObjectK o) => o -> m (Maybe T.Text)
 getObjectAccessibleTableColumnDescription obj = liftIO $ getObjectPropertyString obj "accessible-table-column-description"
 
 setObjectAccessibleTableColumnDescription :: (MonadIO m, ObjectK o) => o -> T.Text -> m ()
-setObjectAccessibleTableColumnDescription obj val = liftIO $ setObjectPropertyString obj "accessible-table-column-description" val
+setObjectAccessibleTableColumnDescription obj val = liftIO $ setObjectPropertyString obj "accessible-table-column-description" (Just val)
 
 constructObjectAccessibleTableColumnDescription :: T.Text -> IO ([Char], GValue)
-constructObjectAccessibleTableColumnDescription val = constructObjectPropertyString "accessible-table-column-description" val
+constructObjectAccessibleTableColumnDescription val = constructObjectPropertyString "accessible-table-column-description" (Just val)
 
+clearObjectAccessibleTableColumnDescription :: (MonadIO m, ObjectK o) => o -> m ()
+clearObjectAccessibleTableColumnDescription obj = liftIO $ setObjectPropertyString obj "accessible-table-column-description" (Nothing :: Maybe T.Text)
+
 data ObjectAccessibleTableColumnDescriptionPropertyInfo
 instance AttrInfo ObjectAccessibleTableColumnDescriptionPropertyInfo where
-    type AttrAllowedOps ObjectAccessibleTableColumnDescriptionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ObjectAccessibleTableColumnDescriptionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ObjectAccessibleTableColumnDescriptionPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint ObjectAccessibleTableColumnDescriptionPropertyInfo = ObjectK
-    type AttrGetType ObjectAccessibleTableColumnDescriptionPropertyInfo = T.Text
+    type AttrGetType ObjectAccessibleTableColumnDescriptionPropertyInfo = (Maybe T.Text)
     type AttrLabel ObjectAccessibleTableColumnDescriptionPropertyInfo = "accessible-table-column-description"
     attrGet _ = getObjectAccessibleTableColumnDescription
     attrSet _ = setObjectAccessibleTableColumnDescription
     attrConstruct _ = constructObjectAccessibleTableColumnDescription
+    attrClear _ = clearObjectAccessibleTableColumnDescription
 
 -- VVV Prop "accessible-table-column-header"
    -- Type: TInterface "Atk" "Object"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getObjectAccessibleTableColumnHeader :: (MonadIO m, ObjectK o) => o -> m Object
+getObjectAccessibleTableColumnHeader :: (MonadIO m, ObjectK o) => o -> m (Maybe Object)
 getObjectAccessibleTableColumnHeader obj = liftIO $ getObjectPropertyObject obj "accessible-table-column-header" Object
 
 setObjectAccessibleTableColumnHeader :: (MonadIO m, ObjectK o, ObjectK a) => o -> a -> m ()
-setObjectAccessibleTableColumnHeader obj val = liftIO $ setObjectPropertyObject obj "accessible-table-column-header" val
+setObjectAccessibleTableColumnHeader obj val = liftIO $ setObjectPropertyObject obj "accessible-table-column-header" (Just val)
 
 constructObjectAccessibleTableColumnHeader :: (ObjectK a) => a -> IO ([Char], GValue)
-constructObjectAccessibleTableColumnHeader val = constructObjectPropertyObject "accessible-table-column-header" val
+constructObjectAccessibleTableColumnHeader val = constructObjectPropertyObject "accessible-table-column-header" (Just val)
 
+clearObjectAccessibleTableColumnHeader :: (MonadIO m, ObjectK o) => o -> m ()
+clearObjectAccessibleTableColumnHeader obj = liftIO $ setObjectPropertyObject obj "accessible-table-column-header" (Nothing :: Maybe Object)
+
 data ObjectAccessibleTableColumnHeaderPropertyInfo
 instance AttrInfo ObjectAccessibleTableColumnHeaderPropertyInfo where
-    type AttrAllowedOps ObjectAccessibleTableColumnHeaderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ObjectAccessibleTableColumnHeaderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ObjectAccessibleTableColumnHeaderPropertyInfo = ObjectK
     type AttrBaseTypeConstraint ObjectAccessibleTableColumnHeaderPropertyInfo = ObjectK
-    type AttrGetType ObjectAccessibleTableColumnHeaderPropertyInfo = Object
+    type AttrGetType ObjectAccessibleTableColumnHeaderPropertyInfo = (Maybe Object)
     type AttrLabel ObjectAccessibleTableColumnHeaderPropertyInfo = "accessible-table-column-header"
     attrGet _ = getObjectAccessibleTableColumnHeader
     attrSet _ = setObjectAccessibleTableColumnHeader
     attrConstruct _ = constructObjectAccessibleTableColumnHeader
+    attrClear _ = clearObjectAccessibleTableColumnHeader
 
 -- VVV Prop "accessible-table-row-description"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getObjectAccessibleTableRowDescription :: (MonadIO m, ObjectK o) => o -> m T.Text
+getObjectAccessibleTableRowDescription :: (MonadIO m, ObjectK o) => o -> m (Maybe T.Text)
 getObjectAccessibleTableRowDescription obj = liftIO $ getObjectPropertyString obj "accessible-table-row-description"
 
 setObjectAccessibleTableRowDescription :: (MonadIO m, ObjectK o) => o -> T.Text -> m ()
-setObjectAccessibleTableRowDescription obj val = liftIO $ setObjectPropertyString obj "accessible-table-row-description" val
+setObjectAccessibleTableRowDescription obj val = liftIO $ setObjectPropertyString obj "accessible-table-row-description" (Just val)
 
 constructObjectAccessibleTableRowDescription :: T.Text -> IO ([Char], GValue)
-constructObjectAccessibleTableRowDescription val = constructObjectPropertyString "accessible-table-row-description" val
+constructObjectAccessibleTableRowDescription val = constructObjectPropertyString "accessible-table-row-description" (Just val)
 
+clearObjectAccessibleTableRowDescription :: (MonadIO m, ObjectK o) => o -> m ()
+clearObjectAccessibleTableRowDescription obj = liftIO $ setObjectPropertyString obj "accessible-table-row-description" (Nothing :: Maybe T.Text)
+
 data ObjectAccessibleTableRowDescriptionPropertyInfo
 instance AttrInfo ObjectAccessibleTableRowDescriptionPropertyInfo where
-    type AttrAllowedOps ObjectAccessibleTableRowDescriptionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ObjectAccessibleTableRowDescriptionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ObjectAccessibleTableRowDescriptionPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint ObjectAccessibleTableRowDescriptionPropertyInfo = ObjectK
-    type AttrGetType ObjectAccessibleTableRowDescriptionPropertyInfo = T.Text
+    type AttrGetType ObjectAccessibleTableRowDescriptionPropertyInfo = (Maybe T.Text)
     type AttrLabel ObjectAccessibleTableRowDescriptionPropertyInfo = "accessible-table-row-description"
     attrGet _ = getObjectAccessibleTableRowDescription
     attrSet _ = setObjectAccessibleTableRowDescription
     attrConstruct _ = constructObjectAccessibleTableRowDescription
+    attrClear _ = clearObjectAccessibleTableRowDescription
 
 -- VVV Prop "accessible-table-row-header"
    -- Type: TInterface "Atk" "Object"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getObjectAccessibleTableRowHeader :: (MonadIO m, ObjectK o) => o -> m Object
+getObjectAccessibleTableRowHeader :: (MonadIO m, ObjectK o) => o -> m (Maybe Object)
 getObjectAccessibleTableRowHeader obj = liftIO $ getObjectPropertyObject obj "accessible-table-row-header" Object
 
 setObjectAccessibleTableRowHeader :: (MonadIO m, ObjectK o, ObjectK a) => o -> a -> m ()
-setObjectAccessibleTableRowHeader obj val = liftIO $ setObjectPropertyObject obj "accessible-table-row-header" val
+setObjectAccessibleTableRowHeader obj val = liftIO $ setObjectPropertyObject obj "accessible-table-row-header" (Just val)
 
 constructObjectAccessibleTableRowHeader :: (ObjectK a) => a -> IO ([Char], GValue)
-constructObjectAccessibleTableRowHeader val = constructObjectPropertyObject "accessible-table-row-header" val
+constructObjectAccessibleTableRowHeader val = constructObjectPropertyObject "accessible-table-row-header" (Just val)
 
+clearObjectAccessibleTableRowHeader :: (MonadIO m, ObjectK o) => o -> m ()
+clearObjectAccessibleTableRowHeader obj = liftIO $ setObjectPropertyObject obj "accessible-table-row-header" (Nothing :: Maybe Object)
+
 data ObjectAccessibleTableRowHeaderPropertyInfo
 instance AttrInfo ObjectAccessibleTableRowHeaderPropertyInfo where
-    type AttrAllowedOps ObjectAccessibleTableRowHeaderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ObjectAccessibleTableRowHeaderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ObjectAccessibleTableRowHeaderPropertyInfo = ObjectK
     type AttrBaseTypeConstraint ObjectAccessibleTableRowHeaderPropertyInfo = ObjectK
-    type AttrGetType ObjectAccessibleTableRowHeaderPropertyInfo = Object
+    type AttrGetType ObjectAccessibleTableRowHeaderPropertyInfo = (Maybe Object)
     type AttrLabel ObjectAccessibleTableRowHeaderPropertyInfo = "accessible-table-row-header"
     attrGet _ = getObjectAccessibleTableRowHeader
     attrSet _ = setObjectAccessibleTableRowHeader
     attrConstruct _ = constructObjectAccessibleTableRowHeader
+    attrClear _ = clearObjectAccessibleTableRowHeader
 
 -- VVV Prop "accessible-table-summary"
    -- Type: TInterface "Atk" "Object"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getObjectAccessibleTableSummary :: (MonadIO m, ObjectK o) => o -> m Object
+getObjectAccessibleTableSummary :: (MonadIO m, ObjectK o) => o -> m (Maybe Object)
 getObjectAccessibleTableSummary obj = liftIO $ getObjectPropertyObject obj "accessible-table-summary" Object
 
 setObjectAccessibleTableSummary :: (MonadIO m, ObjectK o, ObjectK a) => o -> a -> m ()
-setObjectAccessibleTableSummary obj val = liftIO $ setObjectPropertyObject obj "accessible-table-summary" val
+setObjectAccessibleTableSummary obj val = liftIO $ setObjectPropertyObject obj "accessible-table-summary" (Just val)
 
 constructObjectAccessibleTableSummary :: (ObjectK a) => a -> IO ([Char], GValue)
-constructObjectAccessibleTableSummary val = constructObjectPropertyObject "accessible-table-summary" val
+constructObjectAccessibleTableSummary val = constructObjectPropertyObject "accessible-table-summary" (Just val)
 
+clearObjectAccessibleTableSummary :: (MonadIO m, ObjectK o) => o -> m ()
+clearObjectAccessibleTableSummary obj = liftIO $ setObjectPropertyObject obj "accessible-table-summary" (Nothing :: Maybe Object)
+
 data ObjectAccessibleTableSummaryPropertyInfo
 instance AttrInfo ObjectAccessibleTableSummaryPropertyInfo where
-    type AttrAllowedOps ObjectAccessibleTableSummaryPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ObjectAccessibleTableSummaryPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ObjectAccessibleTableSummaryPropertyInfo = ObjectK
     type AttrBaseTypeConstraint ObjectAccessibleTableSummaryPropertyInfo = ObjectK
-    type AttrGetType ObjectAccessibleTableSummaryPropertyInfo = Object
+    type AttrGetType ObjectAccessibleTableSummaryPropertyInfo = (Maybe Object)
     type AttrLabel ObjectAccessibleTableSummaryPropertyInfo = "accessible-table-summary"
     attrGet _ = getObjectAccessibleTableSummary
     attrSet _ = setObjectAccessibleTableSummary
     attrConstruct _ = constructObjectAccessibleTableSummary
+    attrClear _ = clearObjectAccessibleTableSummary
 
 -- VVV Prop "accessible-value"
    -- Type: TBasicType TDouble
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getObjectAccessibleValue :: (MonadIO m, ObjectK o) => o -> m Double
 getObjectAccessibleValue obj = liftIO $ getObjectPropertyDouble obj "accessible-value"
@@ -994,10 +1078,56 @@
     attrGet _ = getObjectAccessibleValue
     attrSet _ = setObjectAccessibleValue
     attrConstruct _ = constructObjectAccessibleValue
+    attrClear _ = undefined
 
 type instance AttributeList Object = ObjectAttributeList
 type ObjectAttributeList = ('[ '("accessibleComponentLayer", ObjectAccessibleComponentLayerPropertyInfo), '("accessibleComponentMdiZorder", ObjectAccessibleComponentMdiZorderPropertyInfo), '("accessibleDescription", ObjectAccessibleDescriptionPropertyInfo), '("accessibleHypertextNlinks", ObjectAccessibleHypertextNlinksPropertyInfo), '("accessibleName", ObjectAccessibleNamePropertyInfo), '("accessibleParent", ObjectAccessibleParentPropertyInfo), '("accessibleRole", ObjectAccessibleRolePropertyInfo), '("accessibleTableCaption", ObjectAccessibleTableCaptionPropertyInfo), '("accessibleTableCaptionObject", ObjectAccessibleTableCaptionObjectPropertyInfo), '("accessibleTableColumnDescription", ObjectAccessibleTableColumnDescriptionPropertyInfo), '("accessibleTableColumnHeader", ObjectAccessibleTableColumnHeaderPropertyInfo), '("accessibleTableRowDescription", ObjectAccessibleTableRowDescriptionPropertyInfo), '("accessibleTableRowHeader", ObjectAccessibleTableRowHeaderPropertyInfo), '("accessibleTableSummary", ObjectAccessibleTableSummaryPropertyInfo), '("accessibleValue", ObjectAccessibleValuePropertyInfo)] :: [(Symbol, *)])
 
+objectAccessibleComponentLayer :: AttrLabelProxy "accessibleComponentLayer"
+objectAccessibleComponentLayer = AttrLabelProxy
+
+objectAccessibleComponentMdiZorder :: AttrLabelProxy "accessibleComponentMdiZorder"
+objectAccessibleComponentMdiZorder = AttrLabelProxy
+
+objectAccessibleDescription :: AttrLabelProxy "accessibleDescription"
+objectAccessibleDescription = AttrLabelProxy
+
+objectAccessibleHypertextNlinks :: AttrLabelProxy "accessibleHypertextNlinks"
+objectAccessibleHypertextNlinks = AttrLabelProxy
+
+objectAccessibleName :: AttrLabelProxy "accessibleName"
+objectAccessibleName = AttrLabelProxy
+
+objectAccessibleParent :: AttrLabelProxy "accessibleParent"
+objectAccessibleParent = AttrLabelProxy
+
+objectAccessibleRole :: AttrLabelProxy "accessibleRole"
+objectAccessibleRole = AttrLabelProxy
+
+objectAccessibleTableCaption :: AttrLabelProxy "accessibleTableCaption"
+objectAccessibleTableCaption = AttrLabelProxy
+
+objectAccessibleTableCaptionObject :: AttrLabelProxy "accessibleTableCaptionObject"
+objectAccessibleTableCaptionObject = AttrLabelProxy
+
+objectAccessibleTableColumnDescription :: AttrLabelProxy "accessibleTableColumnDescription"
+objectAccessibleTableColumnDescription = AttrLabelProxy
+
+objectAccessibleTableColumnHeader :: AttrLabelProxy "accessibleTableColumnHeader"
+objectAccessibleTableColumnHeader = AttrLabelProxy
+
+objectAccessibleTableRowDescription :: AttrLabelProxy "accessibleTableRowDescription"
+objectAccessibleTableRowDescription = AttrLabelProxy
+
+objectAccessibleTableRowHeader :: AttrLabelProxy "accessibleTableRowHeader"
+objectAccessibleTableRowHeader = AttrLabelProxy
+
+objectAccessibleTableSummary :: AttrLabelProxy "accessibleTableSummary"
+objectAccessibleTableSummary = AttrLabelProxy
+
+objectAccessibleValue :: AttrLabelProxy "accessibleValue"
+objectAccessibleValue = AttrLabelProxy
+
 data ObjectActiveDescendantChangedSignalInfo
 instance SignalInfo ObjectActiveDescendantChangedSignalInfo where
     type HaskellCallbackType ObjectActiveDescendantChangedSignalInfo = ObjectActiveDescendantChangedCallback
@@ -1035,7 +1165,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relationship", argType = TInterface "Atk" "RelationType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -1070,7 +1200,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TBasicType TVoid)
+-- returnType : Just (TGSList (TBasicType TPtr))
 -- throws : False
 -- Skip return : False
 
@@ -1086,7 +1216,6 @@
 objectGetAttributes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- atk_object_get_attributes _obj'
-    checkUnexpectedReturnNULL "atk_object_get_attributes" result
     result' <- unpackGSList result
     g_slist_free result
     touchManagedPtr _obj
@@ -1100,7 +1229,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -1129,7 +1258,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -1156,7 +1285,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Layer"
+-- returnType : Just (TInterface "Atk" "Layer")
 -- throws : False
 -- Skip return : False
 
@@ -1184,7 +1313,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -1211,7 +1340,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -1238,7 +1367,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -1267,7 +1396,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -1296,7 +1425,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
@@ -1325,7 +1454,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Role"
+-- returnType : Just (TInterface "Atk" "Role")
 -- throws : False
 -- Skip return : False
 
@@ -1351,15 +1480,15 @@
 
 -- method Object::initialize
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_object_initialize" atk_object_initialize :: 
     Ptr Object ->                           -- _obj : TInterface "Atk" "Object"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO ()
 
 
@@ -1382,7 +1511,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "state", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1414,7 +1543,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
@@ -1441,15 +1570,15 @@
 
 -- method Object::ref_accessible_child
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_object_ref_accessible_child" atk_object_ref_accessible_child :: 
     Ptr Object ->                           -- _obj : TInterface "Atk" "Object"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO (Ptr Object)
 
 
@@ -1474,7 +1603,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "RelationSet"
+-- returnType : Just (TInterface "Atk" "RelationSet")
 -- throws : False
 -- Skip return : False
 
@@ -1503,7 +1632,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "StateSet"
+-- returnType : Just (TInterface "Atk" "StateSet")
 -- throws : False
 -- Skip return : False
 
@@ -1530,15 +1659,15 @@
 
 -- method Object::remove_property_change_handler
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_object_remove_property_change_handler" atk_object_remove_property_change_handler :: 
     Ptr Object ->                           -- _obj : TInterface "Atk" "Object"
-    Word32 ->                               -- handler_id : TBasicType TUInt32
+    Word32 ->                               -- handler_id : TBasicType TUInt
     IO ()
 
 {-# DEPRECATED objectRemovePropertyChangeHandler ["Since 2.12.","","Removes a property change handler."]#-}
@@ -1561,7 +1690,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relationship", argType = TInterface "Atk" "RelationType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -1596,7 +1725,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1627,7 +1756,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1658,7 +1787,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1689,7 +1818,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "role", argType = TInterface "Atk" "Role", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/Object.hs-boot b/GI/Atk/Objects/Object.hs-boot
--- a/GI/Atk/Objects/Object.hs-boot
+++ b/GI/Atk/Objects/Object.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.Object where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/ObjectFactory.hs b/GI/Atk/Objects/ObjectFactory.hs
--- a/GI/Atk/Objects/ObjectFactory.hs
+++ b/GI/Atk/Objects/ObjectFactory.hs
@@ -36,9 +36,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -114,7 +114,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "ObjectFactory", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
@@ -147,7 +147,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "ObjectFactory", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TGType
+-- returnType : Just (TBasicType TGType)
 -- throws : False
 -- Skip return : False
 
@@ -175,7 +175,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "ObjectFactory", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/ObjectFactory.hs-boot b/GI/Atk/Objects/ObjectFactory.hs-boot
--- a/GI/Atk/Objects/ObjectFactory.hs-boot
+++ b/GI/Atk/Objects/ObjectFactory.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.ObjectFactory where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/Plug.hs b/GI/Atk/Objects/Plug.hs
--- a/GI/Atk/Objects/Plug.hs
+++ b/GI/Atk/Objects/Plug.hs
@@ -30,9 +30,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -138,7 +138,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Atk" "Plug"
+-- returnType : Just (TInterface "Atk" "Plug")
 -- throws : False
 -- Skip return : False
 
@@ -159,7 +159,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Plug", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/Plug.hs-boot b/GI/Atk/Objects/Plug.hs-boot
--- a/GI/Atk/Objects/Plug.hs-boot
+++ b/GI/Atk/Objects/Plug.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.Plug where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/Registry.hs b/GI/Atk/Objects/Registry.hs
--- a/GI/Atk/Objects/Registry.hs
+++ b/GI/Atk/Objects/Registry.hs
@@ -36,9 +36,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -114,7 +114,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Registry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "ObjectFactory"
+-- returnType : Just (TInterface "Atk" "ObjectFactory")
 -- throws : False
 -- Skip return : False
 
@@ -146,7 +146,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Registry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TGType
+-- returnType : Just (TBasicType TGType)
 -- throws : False
 -- Skip return : False
 
@@ -177,7 +177,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Registry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "factory_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/Registry.hs-boot b/GI/Atk/Objects/Registry.hs-boot
--- a/GI/Atk/Objects/Registry.hs-boot
+++ b/GI/Atk/Objects/Registry.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.Registry where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/Relation.hs b/GI/Atk/Objects/Relation.hs
--- a/GI/Atk/Objects/Relation.hs
+++ b/GI/Atk/Objects/Relation.hs
@@ -48,13 +48,16 @@
     RelationRelationTypePropertyInfo        ,
     constructRelationRelationType           ,
     getRelationRelationType                 ,
+    relationRelationType                    ,
     setRelationRelationType                 ,
 
 
 -- ** Target
     RelationTargetPropertyInfo              ,
+    clearRelationTarget                     ,
     constructRelationTarget                 ,
     getRelationTarget                       ,
+    relationTarget                          ,
     setRelationTarget                       ,
 
 
@@ -62,9 +65,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -134,6 +137,7 @@
 -- VVV Prop "relation-type"
    -- Type: TInterface "Atk" "RelationType"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Just False,Nothing)
 
 getRelationRelationType :: (MonadIO m, RelationK o) => o -> m RelationType
 getRelationRelationType obj = liftIO $ getObjectPropertyEnum obj "relation-type"
@@ -154,48 +158,60 @@
     attrGet _ = getRelationRelationType
     attrSet _ = setRelationRelationType
     attrConstruct _ = constructRelationRelationType
+    attrClear _ = undefined
 
 -- VVV Prop "target"
    -- Type: TInterface "GObject" "ValueArray"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getRelationTarget :: (MonadIO m, RelationK o) => o -> m GObject.ValueArray
+getRelationTarget :: (MonadIO m, RelationK o) => o -> m (Maybe GObject.ValueArray)
 getRelationTarget obj = liftIO $ getObjectPropertyBoxed obj "target" GObject.ValueArray
 
 setRelationTarget :: (MonadIO m, RelationK o) => o -> GObject.ValueArray -> m ()
-setRelationTarget obj val = liftIO $ setObjectPropertyBoxed obj "target" val
+setRelationTarget obj val = liftIO $ setObjectPropertyBoxed obj "target" (Just val)
 
 constructRelationTarget :: GObject.ValueArray -> IO ([Char], GValue)
-constructRelationTarget val = constructObjectPropertyBoxed "target" val
+constructRelationTarget val = constructObjectPropertyBoxed "target" (Just val)
 
+clearRelationTarget :: (MonadIO m, RelationK o) => o -> m ()
+clearRelationTarget obj = liftIO $ setObjectPropertyBoxed obj "target" (Nothing :: Maybe GObject.ValueArray)
+
 data RelationTargetPropertyInfo
 instance AttrInfo RelationTargetPropertyInfo where
-    type AttrAllowedOps RelationTargetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps RelationTargetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint RelationTargetPropertyInfo = (~) GObject.ValueArray
     type AttrBaseTypeConstraint RelationTargetPropertyInfo = RelationK
-    type AttrGetType RelationTargetPropertyInfo = GObject.ValueArray
+    type AttrGetType RelationTargetPropertyInfo = (Maybe GObject.ValueArray)
     type AttrLabel RelationTargetPropertyInfo = "target"
     attrGet _ = getRelationTarget
     attrSet _ = setRelationTarget
     attrConstruct _ = constructRelationTarget
+    attrClear _ = clearRelationTarget
 
 type instance AttributeList Relation = RelationAttributeList
 type RelationAttributeList = ('[ '("relationType", RelationRelationTypePropertyInfo), '("target", RelationTargetPropertyInfo)] :: [(Symbol, *)])
 
+relationRelationType :: AttrLabelProxy "relationType"
+relationRelationType = AttrLabelProxy
+
+relationTarget :: AttrLabelProxy "target"
+relationTarget = AttrLabelProxy
+
 type instance SignalList Relation = RelationSignalList
 type RelationSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method Relation::new
 -- method type : Constructor
--- Args : [Arg {argCName = "targets", argType = TCArray False (-1) 1 (TInterface "Atk" "Object"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relationship", argType = TInterface "Atk" "RelationType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : [Arg {argCName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TInterface "Atk" "Relation"
+-- Args : [Arg {argCName = "targets", argType = TCArray False (-1) 1 (TInterface "Atk" "Object"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_targets", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relationship", argType = TInterface "Atk" "RelationType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "n_targets", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : Just (TInterface "Atk" "Relation")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_relation_new" atk_relation_new :: 
     Ptr (Ptr Object) ->                     -- targets : TCArray False (-1) 1 (TInterface "Atk" "Object")
-    Int32 ->                                -- n_targets : TBasicType TInt32
+    Int32 ->                                -- n_targets : TBasicType TInt
     CUInt ->                                -- relationship : TInterface "Atk" "RelationType"
     IO (Ptr Relation)
 
@@ -221,7 +237,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Relation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -252,7 +268,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Relation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "RelationType"
+-- returnType : Just (TInterface "Atk" "RelationType")
 -- throws : False
 -- Skip return : False
 
@@ -280,7 +296,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Relation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TPtrArray (TInterface "Atk" "Object")
+-- returnType : Just (TPtrArray (TInterface "Atk" "Object"))
 -- throws : False
 -- Skip return : False
 
@@ -310,7 +326,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Relation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/Relation.hs-boot b/GI/Atk/Objects/Relation.hs-boot
--- a/GI/Atk/Objects/Relation.hs-boot
+++ b/GI/Atk/Objects/Relation.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.Relation where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/RelationSet.hs b/GI/Atk/Objects/RelationSet.hs
--- a/GI/Atk/Objects/RelationSet.hs
+++ b/GI/Atk/Objects/RelationSet.hs
@@ -65,9 +65,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -148,7 +148,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Atk" "RelationSet"
+-- returnType : Just (TInterface "Atk" "RelationSet")
 -- throws : False
 -- Skip return : False
 
@@ -169,7 +169,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "RelationSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relation", argType = TInterface "Atk" "Relation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -200,7 +200,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "RelationSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relationship", argType = TInterface "Atk" "RelationType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -234,7 +234,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "RelationSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relationship", argType = TInterface "Atk" "RelationType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -265,7 +265,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "RelationSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relationship", argType = TInterface "Atk" "RelationType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "Atk" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -300,7 +300,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "RelationSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -325,15 +325,15 @@
 
 -- method RelationSet::get_relation
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "RelationSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "RelationSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Relation"
+-- returnType : Just (TInterface "Atk" "Relation")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_relation_set_get_relation" atk_relation_set_get_relation :: 
     Ptr RelationSet ->                      -- _obj : TInterface "Atk" "RelationSet"
-    Int32 ->                                -- i : TBasicType TInt32
+    Int32 ->                                -- i : TBasicType TInt
     IO (Ptr Relation)
 
 
@@ -358,7 +358,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "RelationSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relationship", argType = TInterface "Atk" "RelationType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Relation"
+-- returnType : Just (TInterface "Atk" "Relation")
 -- throws : False
 -- Skip return : False
 
@@ -390,7 +390,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "RelationSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relation", argType = TInterface "Atk" "Relation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/RelationSet.hs-boot b/GI/Atk/Objects/RelationSet.hs-boot
--- a/GI/Atk/Objects/RelationSet.hs-boot
+++ b/GI/Atk/Objects/RelationSet.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.RelationSet where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/Socket.hs b/GI/Atk/Objects/Socket.hs
--- a/GI/Atk/Objects/Socket.hs
+++ b/GI/Atk/Objects/Socket.hs
@@ -35,9 +35,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -144,7 +144,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Atk" "Socket"
+-- returnType : Just (TInterface "Atk" "Socket")
 -- throws : False
 -- Skip return : False
 
@@ -165,7 +165,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plug_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -196,7 +196,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/Socket.hs-boot b/GI/Atk/Objects/Socket.hs-boot
--- a/GI/Atk/Objects/Socket.hs-boot
+++ b/GI/Atk/Objects/Socket.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.Socket where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/StateSet.hs b/GI/Atk/Objects/StateSet.hs
--- a/GI/Atk/Objects/StateSet.hs
+++ b/GI/Atk/Objects/StateSet.hs
@@ -75,9 +75,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -160,7 +160,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Atk" "StateSet"
+-- returnType : Just (TInterface "Atk" "StateSet")
 -- throws : False
 -- Skip return : False
 
@@ -181,7 +181,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "Atk" "StateType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -210,16 +210,16 @@
 
 -- method StateSet::add_states
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "types", argType = TCArray False (-1) 2 (TInterface "Atk" "StateType"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_types", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : [Arg {argCName = "n_types", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "types", argType = TCArray False (-1) 2 (TInterface "Atk" "StateType"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_types", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "n_types", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_state_set_add_states" atk_state_set_add_states :: 
     Ptr StateSet ->                         -- _obj : TInterface "Atk" "StateSet"
     Ptr CUInt ->                            -- types : TCArray False (-1) 2 (TInterface "Atk" "StateType")
-    Int32 ->                                -- n_types : TBasicType TInt32
+    Int32 ->                                -- n_types : TBasicType TInt
     IO ()
 
 
@@ -246,7 +246,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compare_set", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "StateSet"
+-- returnType : Just (TInterface "Atk" "StateSet")
 -- throws : False
 -- Skip return : False
 
@@ -279,7 +279,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -306,7 +306,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "Atk" "StateType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -335,16 +335,16 @@
 
 -- method StateSet::contains_states
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "types", argType = TCArray False (-1) 2 (TInterface "Atk" "StateType"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_types", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : [Arg {argCName = "n_types", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "types", argType = TCArray False (-1) 2 (TInterface "Atk" "StateType"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_types", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "n_types", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_state_set_contains_states" atk_state_set_contains_states :: 
     Ptr StateSet ->                         -- _obj : TInterface "Atk" "StateSet"
     Ptr CUInt ->                            -- types : TCArray False (-1) 2 (TInterface "Atk" "StateType")
-    Int32 ->                                -- n_types : TBasicType TInt32
+    Int32 ->                                -- n_types : TBasicType TInt
     IO CInt
 
 
@@ -372,7 +372,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -400,7 +400,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compare_set", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "StateSet"
+-- returnType : Just (TInterface "Atk" "StateSet")
 -- throws : False
 -- Skip return : False
 
@@ -414,26 +414,27 @@
     (MonadIO m, StateSetK a, StateSetK b) =>
     a                                       -- _obj
     -> b                                    -- compareSet
-    -> m StateSet                           -- result
+    -> m (Maybe StateSet)                   -- result
 stateSetOrSets _obj compareSet = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let compareSet' = unsafeManagedPtrCastPtr compareSet
     result <- atk_state_set_or_sets _obj' compareSet'
-    checkUnexpectedReturnNULL "atk_state_set_or_sets" result
-    result' <- (wrapObject StateSet) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapObject StateSet) result'
+        return result''
     touchManagedPtr _obj
     touchManagedPtr compareSet
-    return result'
+    return maybeResult
 
 data StateSetOrSetsMethodInfo
-instance (signature ~ (b -> m StateSet), MonadIO m, StateSetK a, StateSetK b) => MethodInfo StateSetOrSetsMethodInfo a signature where
+instance (signature ~ (b -> m (Maybe StateSet)), MonadIO m, StateSetK a, StateSetK b) => MethodInfo StateSetOrSetsMethodInfo a signature where
     overloadedMethod _ = stateSetOrSets
 
 -- method StateSet::remove_state
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "Atk" "StateType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -464,7 +465,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compare_set", argType = TInterface "Atk" "StateSet", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "StateSet"
+-- returnType : Just (TInterface "Atk" "StateSet")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Objects/StateSet.hs-boot b/GI/Atk/Objects/StateSet.hs-boot
--- a/GI/Atk/Objects/StateSet.hs-boot
+++ b/GI/Atk/Objects/StateSet.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.StateSet where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/Util.hs b/GI/Atk/Objects/Util.hs
--- a/GI/Atk/Objects/Util.hs
+++ b/GI/Atk/Objects/Util.hs
@@ -18,9 +18,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Objects/Util.hs-boot b/GI/Atk/Objects/Util.hs-boot
--- a/GI/Atk/Objects/Util.hs-boot
+++ b/GI/Atk/Objects/Util.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Objects.Util where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Structs.hs b/GI/Atk/Structs.hs
--- a/GI/Atk/Structs.hs
+++ b/GI/Atk/Structs.hs
@@ -28,9 +28,9 @@
 import GI.Atk.Structs.TextRange
 import GI.Atk.Structs.TextRectangle
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Structs/Attribute.hs b/GI/Atk/Structs/Attribute.hs
--- a/GI/Atk/Structs/Attribute.hs
+++ b/GI/Atk/Structs/Attribute.hs
@@ -36,20 +36,26 @@
 
  -- * Properties
 -- ** Name
+    attributeClearName                      ,
+    attributeName                           ,
     attributeReadName                       ,
+    attributeWriteName                      ,
 
 
 -- ** Value
+    attributeClearValue                     ,
     attributeReadValue                      ,
+    attributeValue                          ,
+    attributeWriteValue                     ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -62,31 +68,94 @@
 newZeroAttribute :: MonadIO m => m Attribute
 newZeroAttribute = liftIO $ callocBytes 16 >>= wrapPtr Attribute
 
+instance tag ~ 'AttrSet => Constructible Attribute tag where
+    new _ attrs = do
+        o <- newZeroAttribute
+        GI.Attributes.set o attrs
+        return o
+
+
 noAttribute :: Maybe Attribute
 noAttribute = Nothing
 
-attributeReadName :: Attribute -> IO T.Text
-attributeReadName s = withManagedPtr s $ \ptr -> do
+attributeReadName :: MonadIO m => Attribute -> m (Maybe T.Text)
+attributeReadName s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CString
-    val' <- cstringToText val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- cstringToText val'
+        return val''
+    return result
 
-attributeReadValue :: Attribute -> IO T.Text
-attributeReadValue s = withManagedPtr s $ \ptr -> do
+attributeWriteName :: MonadIO m => Attribute -> CString -> m ()
+attributeWriteName s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+attributeClearName :: MonadIO m => Attribute -> m ()
+attributeClearName s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data AttributeNameFieldInfo
+instance AttrInfo AttributeNameFieldInfo where
+    type AttrAllowedOps AttributeNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint AttributeNameFieldInfo = (~) CString
+    type AttrBaseTypeConstraint AttributeNameFieldInfo = (~) Attribute
+    type AttrGetType AttributeNameFieldInfo = Maybe T.Text
+    type AttrLabel AttributeNameFieldInfo = "name"
+    attrGet _ = attributeReadName
+    attrSet _ = attributeWriteName
+    attrConstruct = undefined
+    attrClear _ = attributeClearName
+
+attributeName :: AttrLabelProxy "name"
+attributeName = AttrLabelProxy
+
+
+attributeReadValue :: MonadIO m => Attribute -> m (Maybe T.Text)
+attributeReadValue s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO CString
-    val' <- cstringToText val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- cstringToText val'
+        return val''
+    return result
 
+attributeWriteValue :: MonadIO m => Attribute -> CString -> m ()
+attributeWriteValue s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+attributeClearValue :: MonadIO m => Attribute -> m ()
+attributeClearValue s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data AttributeValueFieldInfo
+instance AttrInfo AttributeValueFieldInfo where
+    type AttrAllowedOps AttributeValueFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint AttributeValueFieldInfo = (~) CString
+    type AttrBaseTypeConstraint AttributeValueFieldInfo = (~) Attribute
+    type AttrGetType AttributeValueFieldInfo = Maybe T.Text
+    type AttrLabel AttributeValueFieldInfo = "value"
+    attrGet _ = attributeReadValue
+    attrSet _ = attributeWriteValue
+    attrConstruct = undefined
+    attrClear _ = attributeClearValue
+
+attributeValue :: AttrLabelProxy "value"
+attributeValue = AttrLabelProxy
+
+
+
+type instance AttributeList Attribute = AttributeAttributeList
+type AttributeAttributeList = ('[ '("name", AttributeNameFieldInfo), '("value", AttributeValueFieldInfo)] :: [(Symbol, *)])
+
 -- method Attribute::set_free
 -- method type : MemberFunction
--- Args : [Arg {argCName = "attrib_set", argType = TGSList (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "attrib_set", argType = TGSList (TBasicType TPtr), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "atk_attribute_set_free" atk_attribute_set_free :: 
-    Ptr (GSList (Ptr ())) ->                -- attrib_set : TGSList (TBasicType TVoid)
+    Ptr (GSList (Ptr ())) ->                -- attrib_set : TGSList (TBasicType TPtr)
     IO ()
 
 
diff --git a/GI/Atk/Structs/Attribute.hs-boot b/GI/Atk/Structs/Attribute.hs-boot
--- a/GI/Atk/Structs/Attribute.hs-boot
+++ b/GI/Atk/Structs/Attribute.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Structs.Attribute where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Structs/Implementor.hs b/GI/Atk/Structs/Implementor.hs
--- a/GI/Atk/Structs/Implementor.hs
+++ b/GI/Atk/Structs/Implementor.hs
@@ -24,9 +24,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -38,11 +38,15 @@
 noImplementor :: Maybe Implementor
 noImplementor = Nothing
 
+
+type instance AttributeList Implementor = ImplementorAttributeList
+type ImplementorAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Implementor::ref_accessible
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Implementor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Object"
+-- returnType : Just (TInterface "Atk" "Object")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Structs/Implementor.hs-boot b/GI/Atk/Structs/Implementor.hs-boot
--- a/GI/Atk/Structs/Implementor.hs-boot
+++ b/GI/Atk/Structs/Implementor.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Structs.Implementor where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Structs/KeyEventStruct.hs b/GI/Atk/Structs/KeyEventStruct.hs
--- a/GI/Atk/Structs/KeyEventStruct.hs
+++ b/GI/Atk/Structs/KeyEventStruct.hs
@@ -19,40 +19,55 @@
 
  -- * Properties
 -- ** Keycode
+    keyEventStructKeycode                   ,
     keyEventStructReadKeycode               ,
+    keyEventStructWriteKeycode              ,
 
 
 -- ** Keyval
+    keyEventStructKeyval                    ,
     keyEventStructReadKeyval                ,
+    keyEventStructWriteKeyval               ,
 
 
 -- ** Length
+    keyEventStructLength                    ,
     keyEventStructReadLength                ,
+    keyEventStructWriteLength               ,
 
 
 -- ** State
     keyEventStructReadState                 ,
+    keyEventStructState                     ,
+    keyEventStructWriteState                ,
 
 
 -- ** String
+    keyEventStructClearString               ,
     keyEventStructReadString                ,
+    keyEventStructString                    ,
+    keyEventStructWriteString               ,
 
 
 -- ** Timestamp
     keyEventStructReadTimestamp             ,
+    keyEventStructTimestamp                 ,
+    keyEventStructWriteTimestamp            ,
 
 
 -- ** Type
     keyEventStructReadType                  ,
+    keyEventStructType                      ,
+    keyEventStructWriteType                 ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -65,44 +80,201 @@
 newZeroKeyEventStruct :: MonadIO m => m KeyEventStruct
 newZeroKeyEventStruct = liftIO $ callocBytes 32 >>= wrapPtr KeyEventStruct
 
+instance tag ~ 'AttrSet => Constructible KeyEventStruct tag where
+    new _ attrs = do
+        o <- newZeroKeyEventStruct
+        GI.Attributes.set o attrs
+        return o
+
+
 noKeyEventStruct :: Maybe KeyEventStruct
 noKeyEventStruct = Nothing
 
-keyEventStructReadType :: KeyEventStruct -> IO Int32
-keyEventStructReadType s = withManagedPtr s $ \ptr -> do
+keyEventStructReadType :: MonadIO m => KeyEventStruct -> m Int32
+keyEventStructReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Int32
     return val
 
-keyEventStructReadState :: KeyEventStruct -> IO Word32
-keyEventStructReadState s = withManagedPtr s $ \ptr -> do
+keyEventStructWriteType :: MonadIO m => KeyEventStruct -> Int32 -> m ()
+keyEventStructWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Int32)
+
+data KeyEventStructTypeFieldInfo
+instance AttrInfo KeyEventStructTypeFieldInfo where
+    type AttrAllowedOps KeyEventStructTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint KeyEventStructTypeFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint KeyEventStructTypeFieldInfo = (~) KeyEventStruct
+    type AttrGetType KeyEventStructTypeFieldInfo = Int32
+    type AttrLabel KeyEventStructTypeFieldInfo = "type"
+    attrGet _ = keyEventStructReadType
+    attrSet _ = keyEventStructWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+keyEventStructType :: AttrLabelProxy "type"
+keyEventStructType = AttrLabelProxy
+
+
+keyEventStructReadState :: MonadIO m => KeyEventStruct -> m Word32
+keyEventStructReadState s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO Word32
     return val
 
-keyEventStructReadKeyval :: KeyEventStruct -> IO Word32
-keyEventStructReadKeyval s = withManagedPtr s $ \ptr -> do
+keyEventStructWriteState :: MonadIO m => KeyEventStruct -> Word32 -> m ()
+keyEventStructWriteState s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 4) (val :: Word32)
+
+data KeyEventStructStateFieldInfo
+instance AttrInfo KeyEventStructStateFieldInfo where
+    type AttrAllowedOps KeyEventStructStateFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint KeyEventStructStateFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint KeyEventStructStateFieldInfo = (~) KeyEventStruct
+    type AttrGetType KeyEventStructStateFieldInfo = Word32
+    type AttrLabel KeyEventStructStateFieldInfo = "state"
+    attrGet _ = keyEventStructReadState
+    attrSet _ = keyEventStructWriteState
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+keyEventStructState :: AttrLabelProxy "state"
+keyEventStructState = AttrLabelProxy
+
+
+keyEventStructReadKeyval :: MonadIO m => KeyEventStruct -> m Word32
+keyEventStructReadKeyval s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word32
     return val
 
-keyEventStructReadLength :: KeyEventStruct -> IO Int32
-keyEventStructReadLength s = withManagedPtr s $ \ptr -> do
+keyEventStructWriteKeyval :: MonadIO m => KeyEventStruct -> Word32 -> m ()
+keyEventStructWriteKeyval s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Word32)
+
+data KeyEventStructKeyvalFieldInfo
+instance AttrInfo KeyEventStructKeyvalFieldInfo where
+    type AttrAllowedOps KeyEventStructKeyvalFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint KeyEventStructKeyvalFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint KeyEventStructKeyvalFieldInfo = (~) KeyEventStruct
+    type AttrGetType KeyEventStructKeyvalFieldInfo = Word32
+    type AttrLabel KeyEventStructKeyvalFieldInfo = "keyval"
+    attrGet _ = keyEventStructReadKeyval
+    attrSet _ = keyEventStructWriteKeyval
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+keyEventStructKeyval :: AttrLabelProxy "keyval"
+keyEventStructKeyval = AttrLabelProxy
+
+
+keyEventStructReadLength :: MonadIO m => KeyEventStruct -> m Int32
+keyEventStructReadLength s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 12) :: IO Int32
     return val
 
-keyEventStructReadString :: KeyEventStruct -> IO T.Text
-keyEventStructReadString s = withManagedPtr s $ \ptr -> do
+keyEventStructWriteLength :: MonadIO m => KeyEventStruct -> Int32 -> m ()
+keyEventStructWriteLength s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 12) (val :: Int32)
+
+data KeyEventStructLengthFieldInfo
+instance AttrInfo KeyEventStructLengthFieldInfo where
+    type AttrAllowedOps KeyEventStructLengthFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint KeyEventStructLengthFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint KeyEventStructLengthFieldInfo = (~) KeyEventStruct
+    type AttrGetType KeyEventStructLengthFieldInfo = Int32
+    type AttrLabel KeyEventStructLengthFieldInfo = "length"
+    attrGet _ = keyEventStructReadLength
+    attrSet _ = keyEventStructWriteLength
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+keyEventStructLength :: AttrLabelProxy "length"
+keyEventStructLength = AttrLabelProxy
+
+
+keyEventStructReadString :: MonadIO m => KeyEventStruct -> m (Maybe T.Text)
+keyEventStructReadString s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO CString
-    val' <- cstringToText val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- cstringToText val'
+        return val''
+    return result
 
-keyEventStructReadKeycode :: KeyEventStruct -> IO Word16
-keyEventStructReadKeycode s = withManagedPtr s $ \ptr -> do
+keyEventStructWriteString :: MonadIO m => KeyEventStruct -> CString -> m ()
+keyEventStructWriteString s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: CString)
+
+keyEventStructClearString :: MonadIO m => KeyEventStruct -> m ()
+keyEventStructClearString s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: CString)
+
+data KeyEventStructStringFieldInfo
+instance AttrInfo KeyEventStructStringFieldInfo where
+    type AttrAllowedOps KeyEventStructStringFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint KeyEventStructStringFieldInfo = (~) CString
+    type AttrBaseTypeConstraint KeyEventStructStringFieldInfo = (~) KeyEventStruct
+    type AttrGetType KeyEventStructStringFieldInfo = Maybe T.Text
+    type AttrLabel KeyEventStructStringFieldInfo = "string"
+    attrGet _ = keyEventStructReadString
+    attrSet _ = keyEventStructWriteString
+    attrConstruct = undefined
+    attrClear _ = keyEventStructClearString
+
+keyEventStructString :: AttrLabelProxy "string"
+keyEventStructString = AttrLabelProxy
+
+
+keyEventStructReadKeycode :: MonadIO m => KeyEventStruct -> m Word16
+keyEventStructReadKeycode s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO Word16
     return val
 
-keyEventStructReadTimestamp :: KeyEventStruct -> IO Word32
-keyEventStructReadTimestamp s = withManagedPtr s $ \ptr -> do
+keyEventStructWriteKeycode :: MonadIO m => KeyEventStruct -> Word16 -> m ()
+keyEventStructWriteKeycode s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: Word16)
+
+data KeyEventStructKeycodeFieldInfo
+instance AttrInfo KeyEventStructKeycodeFieldInfo where
+    type AttrAllowedOps KeyEventStructKeycodeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint KeyEventStructKeycodeFieldInfo = (~) Word16
+    type AttrBaseTypeConstraint KeyEventStructKeycodeFieldInfo = (~) KeyEventStruct
+    type AttrGetType KeyEventStructKeycodeFieldInfo = Word16
+    type AttrLabel KeyEventStructKeycodeFieldInfo = "keycode"
+    attrGet _ = keyEventStructReadKeycode
+    attrSet _ = keyEventStructWriteKeycode
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+keyEventStructKeycode :: AttrLabelProxy "keycode"
+keyEventStructKeycode = AttrLabelProxy
+
+
+keyEventStructReadTimestamp :: MonadIO m => KeyEventStruct -> m Word32
+keyEventStructReadTimestamp s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 28) :: IO Word32
     return val
+
+keyEventStructWriteTimestamp :: MonadIO m => KeyEventStruct -> Word32 -> m ()
+keyEventStructWriteTimestamp s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 28) (val :: Word32)
+
+data KeyEventStructTimestampFieldInfo
+instance AttrInfo KeyEventStructTimestampFieldInfo where
+    type AttrAllowedOps KeyEventStructTimestampFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint KeyEventStructTimestampFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint KeyEventStructTimestampFieldInfo = (~) KeyEventStruct
+    type AttrGetType KeyEventStructTimestampFieldInfo = Word32
+    type AttrLabel KeyEventStructTimestampFieldInfo = "timestamp"
+    attrGet _ = keyEventStructReadTimestamp
+    attrSet _ = keyEventStructWriteTimestamp
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+keyEventStructTimestamp :: AttrLabelProxy "timestamp"
+keyEventStructTimestamp = AttrLabelProxy
+
+
+
+type instance AttributeList KeyEventStruct = KeyEventStructAttributeList
+type KeyEventStructAttributeList = ('[ '("type", KeyEventStructTypeFieldInfo), '("state", KeyEventStructStateFieldInfo), '("keyval", KeyEventStructKeyvalFieldInfo), '("length", KeyEventStructLengthFieldInfo), '("string", KeyEventStructStringFieldInfo), '("keycode", KeyEventStructKeycodeFieldInfo), '("timestamp", KeyEventStructTimestampFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveKeyEventStructMethod (t :: Symbol) (o :: *) :: * where
     ResolveKeyEventStructMethod l o = MethodResolutionFailed l o
diff --git a/GI/Atk/Structs/KeyEventStruct.hs-boot b/GI/Atk/Structs/KeyEventStruct.hs-boot
--- a/GI/Atk/Structs/KeyEventStruct.hs-boot
+++ b/GI/Atk/Structs/KeyEventStruct.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Structs.KeyEventStruct where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Structs/PropertyValues.hs b/GI/Atk/Structs/PropertyValues.hs
--- a/GI/Atk/Structs/PropertyValues.hs
+++ b/GI/Atk/Structs/PropertyValues.hs
@@ -21,24 +21,33 @@
 
  -- * Properties
 -- ** NewValue
+    propertyValuesClearNewValue             ,
+    propertyValuesNewValue                  ,
     propertyValuesReadNewValue              ,
+    propertyValuesWriteNewValue             ,
 
 
 -- ** OldValue
+    propertyValuesClearOldValue             ,
+    propertyValuesOldValue                  ,
     propertyValuesReadOldValue              ,
+    propertyValuesWriteOldValue             ,
 
 
 -- ** PropertyName
+    propertyValuesClearPropertyName         ,
+    propertyValuesPropertyName              ,
     propertyValuesReadPropertyName          ,
+    propertyValuesWritePropertyName         ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -51,26 +60,115 @@
 newZeroPropertyValues :: MonadIO m => m PropertyValues
 newZeroPropertyValues = liftIO $ callocBytes 56 >>= wrapPtr PropertyValues
 
+instance tag ~ 'AttrSet => Constructible PropertyValues tag where
+    new _ attrs = do
+        o <- newZeroPropertyValues
+        GI.Attributes.set o attrs
+        return o
+
+
 noPropertyValues :: Maybe PropertyValues
 noPropertyValues = Nothing
 
-propertyValuesReadPropertyName :: PropertyValues -> IO T.Text
-propertyValuesReadPropertyName s = withManagedPtr s $ \ptr -> do
+propertyValuesReadPropertyName :: MonadIO m => PropertyValues -> m (Maybe T.Text)
+propertyValuesReadPropertyName s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CString
-    val' <- cstringToText val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- cstringToText val'
+        return val''
+    return result
 
-propertyValuesReadOldValue :: PropertyValues -> IO GValue
-propertyValuesReadOldValue s = withManagedPtr s $ \ptr -> do
+propertyValuesWritePropertyName :: MonadIO m => PropertyValues -> CString -> m ()
+propertyValuesWritePropertyName s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+propertyValuesClearPropertyName :: MonadIO m => PropertyValues -> m ()
+propertyValuesClearPropertyName s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data PropertyValuesPropertyNameFieldInfo
+instance AttrInfo PropertyValuesPropertyNameFieldInfo where
+    type AttrAllowedOps PropertyValuesPropertyNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint PropertyValuesPropertyNameFieldInfo = (~) CString
+    type AttrBaseTypeConstraint PropertyValuesPropertyNameFieldInfo = (~) PropertyValues
+    type AttrGetType PropertyValuesPropertyNameFieldInfo = Maybe T.Text
+    type AttrLabel PropertyValuesPropertyNameFieldInfo = "property_name"
+    attrGet _ = propertyValuesReadPropertyName
+    attrSet _ = propertyValuesWritePropertyName
+    attrConstruct = undefined
+    attrClear _ = propertyValuesClearPropertyName
+
+propertyValuesPropertyName :: AttrLabelProxy "propertyName"
+propertyValuesPropertyName = AttrLabelProxy
+
+
+propertyValuesReadOldValue :: MonadIO m => PropertyValues -> m (Maybe GValue)
+propertyValuesReadOldValue s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO (Ptr GValue)
-    val' <- (newBoxed GValue) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed GValue) val'
+        return val''
+    return result
 
-propertyValuesReadNewValue :: PropertyValues -> IO GValue
-propertyValuesReadNewValue s = withManagedPtr s $ \ptr -> do
+propertyValuesWriteOldValue :: MonadIO m => PropertyValues -> Ptr GValue -> m ()
+propertyValuesWriteOldValue s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Ptr GValue)
+
+propertyValuesClearOldValue :: MonadIO m => PropertyValues -> m ()
+propertyValuesClearOldValue s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: Ptr GValue)
+
+data PropertyValuesOldValueFieldInfo
+instance AttrInfo PropertyValuesOldValueFieldInfo where
+    type AttrAllowedOps PropertyValuesOldValueFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint PropertyValuesOldValueFieldInfo = (~) (Ptr GValue)
+    type AttrBaseTypeConstraint PropertyValuesOldValueFieldInfo = (~) PropertyValues
+    type AttrGetType PropertyValuesOldValueFieldInfo = Maybe GValue
+    type AttrLabel PropertyValuesOldValueFieldInfo = "old_value"
+    attrGet _ = propertyValuesReadOldValue
+    attrSet _ = propertyValuesWriteOldValue
+    attrConstruct = undefined
+    attrClear _ = propertyValuesClearOldValue
+
+propertyValuesOldValue :: AttrLabelProxy "oldValue"
+propertyValuesOldValue = AttrLabelProxy
+
+
+propertyValuesReadNewValue :: MonadIO m => PropertyValues -> m (Maybe GValue)
+propertyValuesReadNewValue s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO (Ptr GValue)
-    val' <- (newBoxed GValue) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed GValue) val'
+        return val''
+    return result
+
+propertyValuesWriteNewValue :: MonadIO m => PropertyValues -> Ptr GValue -> m ()
+propertyValuesWriteNewValue s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Ptr GValue)
+
+propertyValuesClearNewValue :: MonadIO m => PropertyValues -> m ()
+propertyValuesClearNewValue s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (nullPtr :: Ptr GValue)
+
+data PropertyValuesNewValueFieldInfo
+instance AttrInfo PropertyValuesNewValueFieldInfo where
+    type AttrAllowedOps PropertyValuesNewValueFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint PropertyValuesNewValueFieldInfo = (~) (Ptr GValue)
+    type AttrBaseTypeConstraint PropertyValuesNewValueFieldInfo = (~) PropertyValues
+    type AttrGetType PropertyValuesNewValueFieldInfo = Maybe GValue
+    type AttrLabel PropertyValuesNewValueFieldInfo = "new_value"
+    attrGet _ = propertyValuesReadNewValue
+    attrSet _ = propertyValuesWriteNewValue
+    attrConstruct = undefined
+    attrClear _ = propertyValuesClearNewValue
+
+propertyValuesNewValue :: AttrLabelProxy "newValue"
+propertyValuesNewValue = AttrLabelProxy
+
+
+
+type instance AttributeList PropertyValues = PropertyValuesAttributeList
+type PropertyValuesAttributeList = ('[ '("propertyName", PropertyValuesPropertyNameFieldInfo), '("oldValue", PropertyValuesOldValueFieldInfo), '("newValue", PropertyValuesNewValueFieldInfo)] :: [(Symbol, *)])
 
 type family ResolvePropertyValuesMethod (t :: Symbol) (o :: *) :: * where
     ResolvePropertyValuesMethod l o = MethodResolutionFailed l o
diff --git a/GI/Atk/Structs/PropertyValues.hs-boot b/GI/Atk/Structs/PropertyValues.hs-boot
--- a/GI/Atk/Structs/PropertyValues.hs-boot
+++ b/GI/Atk/Structs/PropertyValues.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Structs.PropertyValues where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Structs/Range.hs b/GI/Atk/Structs/Range.hs
--- a/GI/Atk/Structs/Range.hs
+++ b/GI/Atk/Structs/Range.hs
@@ -54,9 +54,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -74,11 +74,15 @@
 noRange :: Maybe Range
 noRange = Nothing
 
+
+type instance AttributeList Range = RangeAttributeList
+type RangeAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Range::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "lower_limit", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "upper_limit", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Range"
+-- returnType : Just (TInterface "Atk" "Range")
 -- throws : False
 -- Skip return : False
 
@@ -109,7 +113,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Range", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Atk" "Range"
+-- returnType : Just (TInterface "Atk" "Range")
 -- throws : False
 -- Skip return : False
 
@@ -138,7 +142,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Range", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -165,7 +169,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Range", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -194,7 +198,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Range", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TDouble
+-- returnType : Just (TBasicType TDouble)
 -- throws : False
 -- Skip return : False
 
@@ -222,7 +226,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Range", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TDouble
+-- returnType : Just (TBasicType TDouble)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Atk/Structs/Range.hs-boot b/GI/Atk/Structs/Range.hs-boot
--- a/GI/Atk/Structs/Range.hs-boot
+++ b/GI/Atk/Structs/Range.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Structs.Range where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Structs/Rectangle.hs b/GI/Atk/Structs/Rectangle.hs
--- a/GI/Atk/Structs/Rectangle.hs
+++ b/GI/Atk/Structs/Rectangle.hs
@@ -20,28 +20,36 @@
 
  -- * Properties
 -- ** Height
+    rectangleHeight                         ,
     rectangleReadHeight                     ,
+    rectangleWriteHeight                    ,
 
 
 -- ** Width
     rectangleReadWidth                      ,
+    rectangleWidth                          ,
+    rectangleWriteWidth                     ,
 
 
 -- ** X
     rectangleReadX                          ,
+    rectangleWriteX                         ,
+    rectangleX                              ,
 
 
 -- ** Y
     rectangleReadY                          ,
+    rectangleWriteY                         ,
+    rectangleY                              ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -60,28 +68,119 @@
 newZeroRectangle :: MonadIO m => m Rectangle
 newZeroRectangle = liftIO $ callocBoxedBytes 16 >>= wrapBoxed Rectangle
 
+instance tag ~ 'AttrSet => Constructible Rectangle tag where
+    new _ attrs = do
+        o <- newZeroRectangle
+        GI.Attributes.set o attrs
+        return o
+
+
 noRectangle :: Maybe Rectangle
 noRectangle = Nothing
 
-rectangleReadX :: Rectangle -> IO Int32
-rectangleReadX s = withManagedPtr s $ \ptr -> do
+rectangleReadX :: MonadIO m => Rectangle -> m Int32
+rectangleReadX s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Int32
     return val
 
-rectangleReadY :: Rectangle -> IO Int32
-rectangleReadY s = withManagedPtr s $ \ptr -> do
+rectangleWriteX :: MonadIO m => Rectangle -> Int32 -> m ()
+rectangleWriteX s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Int32)
+
+data RectangleXFieldInfo
+instance AttrInfo RectangleXFieldInfo where
+    type AttrAllowedOps RectangleXFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint RectangleXFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint RectangleXFieldInfo = (~) Rectangle
+    type AttrGetType RectangleXFieldInfo = Int32
+    type AttrLabel RectangleXFieldInfo = "x"
+    attrGet _ = rectangleReadX
+    attrSet _ = rectangleWriteX
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+rectangleX :: AttrLabelProxy "x"
+rectangleX = AttrLabelProxy
+
+
+rectangleReadY :: MonadIO m => Rectangle -> m Int32
+rectangleReadY s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO Int32
     return val
 
-rectangleReadWidth :: Rectangle -> IO Int32
-rectangleReadWidth s = withManagedPtr s $ \ptr -> do
+rectangleWriteY :: MonadIO m => Rectangle -> Int32 -> m ()
+rectangleWriteY s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 4) (val :: Int32)
+
+data RectangleYFieldInfo
+instance AttrInfo RectangleYFieldInfo where
+    type AttrAllowedOps RectangleYFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint RectangleYFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint RectangleYFieldInfo = (~) Rectangle
+    type AttrGetType RectangleYFieldInfo = Int32
+    type AttrLabel RectangleYFieldInfo = "y"
+    attrGet _ = rectangleReadY
+    attrSet _ = rectangleWriteY
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+rectangleY :: AttrLabelProxy "y"
+rectangleY = AttrLabelProxy
+
+
+rectangleReadWidth :: MonadIO m => Rectangle -> m Int32
+rectangleReadWidth s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Int32
     return val
 
-rectangleReadHeight :: Rectangle -> IO Int32
-rectangleReadHeight s = withManagedPtr s $ \ptr -> do
+rectangleWriteWidth :: MonadIO m => Rectangle -> Int32 -> m ()
+rectangleWriteWidth s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Int32)
+
+data RectangleWidthFieldInfo
+instance AttrInfo RectangleWidthFieldInfo where
+    type AttrAllowedOps RectangleWidthFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint RectangleWidthFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint RectangleWidthFieldInfo = (~) Rectangle
+    type AttrGetType RectangleWidthFieldInfo = Int32
+    type AttrLabel RectangleWidthFieldInfo = "width"
+    attrGet _ = rectangleReadWidth
+    attrSet _ = rectangleWriteWidth
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+rectangleWidth :: AttrLabelProxy "width"
+rectangleWidth = AttrLabelProxy
+
+
+rectangleReadHeight :: MonadIO m => Rectangle -> m Int32
+rectangleReadHeight s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 12) :: IO Int32
     return val
+
+rectangleWriteHeight :: MonadIO m => Rectangle -> Int32 -> m ()
+rectangleWriteHeight s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 12) (val :: Int32)
+
+data RectangleHeightFieldInfo
+instance AttrInfo RectangleHeightFieldInfo where
+    type AttrAllowedOps RectangleHeightFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint RectangleHeightFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint RectangleHeightFieldInfo = (~) Rectangle
+    type AttrGetType RectangleHeightFieldInfo = Int32
+    type AttrLabel RectangleHeightFieldInfo = "height"
+    attrGet _ = rectangleReadHeight
+    attrSet _ = rectangleWriteHeight
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+rectangleHeight :: AttrLabelProxy "height"
+rectangleHeight = AttrLabelProxy
+
+
+
+type instance AttributeList Rectangle = RectangleAttributeList
+type RectangleAttributeList = ('[ '("x", RectangleXFieldInfo), '("y", RectangleYFieldInfo), '("width", RectangleWidthFieldInfo), '("height", RectangleHeightFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveRectangleMethod (t :: Symbol) (o :: *) :: * where
     ResolveRectangleMethod l o = MethodResolutionFailed l o
diff --git a/GI/Atk/Structs/Rectangle.hs-boot b/GI/Atk/Structs/Rectangle.hs-boot
--- a/GI/Atk/Structs/Rectangle.hs-boot
+++ b/GI/Atk/Structs/Rectangle.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Structs.Rectangle where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Structs/TextRange.hs b/GI/Atk/Structs/TextRange.hs
--- a/GI/Atk/Structs/TextRange.hs
+++ b/GI/Atk/Structs/TextRange.hs
@@ -19,28 +19,38 @@
 
  -- * Properties
 -- ** Bounds
+    textRangeBounds                         ,
+    textRangeClearBounds                    ,
     textRangeReadBounds                     ,
+    textRangeWriteBounds                    ,
 
 
 -- ** Content
+    textRangeClearContent                   ,
+    textRangeContent                        ,
     textRangeReadContent                    ,
+    textRangeWriteContent                   ,
 
 
 -- ** EndOffset
+    textRangeEndOffset                      ,
     textRangeReadEndOffset                  ,
+    textRangeWriteEndOffset                 ,
 
 
 -- ** StartOffset
     textRangeReadStartOffset                ,
+    textRangeStartOffset                    ,
+    textRangeWriteStartOffset               ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -59,30 +69,133 @@
 newZeroTextRange :: MonadIO m => m TextRange
 newZeroTextRange = liftIO $ callocBoxedBytes 32 >>= wrapBoxed TextRange
 
+instance tag ~ 'AttrSet => Constructible TextRange tag where
+    new _ attrs = do
+        o <- newZeroTextRange
+        GI.Attributes.set o attrs
+        return o
+
+
 noTextRange :: Maybe TextRange
 noTextRange = Nothing
 
-textRangeReadBounds :: TextRange -> IO TextRectangle
-textRangeReadBounds s = withManagedPtr s $ \ptr -> do
+textRangeReadBounds :: MonadIO m => TextRange -> m (Maybe TextRectangle)
+textRangeReadBounds s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr TextRectangle)
-    val' <- (newPtr 16 TextRectangle) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 16 TextRectangle) val'
+        return val''
+    return result
 
-textRangeReadStartOffset :: TextRange -> IO Int32
-textRangeReadStartOffset s = withManagedPtr s $ \ptr -> do
+textRangeWriteBounds :: MonadIO m => TextRange -> Ptr TextRectangle -> m ()
+textRangeWriteBounds s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr TextRectangle)
+
+textRangeClearBounds :: MonadIO m => TextRange -> m ()
+textRangeClearBounds s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr TextRectangle)
+
+data TextRangeBoundsFieldInfo
+instance AttrInfo TextRangeBoundsFieldInfo where
+    type AttrAllowedOps TextRangeBoundsFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint TextRangeBoundsFieldInfo = (~) (Ptr TextRectangle)
+    type AttrBaseTypeConstraint TextRangeBoundsFieldInfo = (~) TextRange
+    type AttrGetType TextRangeBoundsFieldInfo = Maybe TextRectangle
+    type AttrLabel TextRangeBoundsFieldInfo = "bounds"
+    attrGet _ = textRangeReadBounds
+    attrSet _ = textRangeWriteBounds
+    attrConstruct = undefined
+    attrClear _ = textRangeClearBounds
+
+textRangeBounds :: AttrLabelProxy "bounds"
+textRangeBounds = AttrLabelProxy
+
+
+textRangeReadStartOffset :: MonadIO m => TextRange -> m Int32
+textRangeReadStartOffset s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO Int32
     return val
 
-textRangeReadEndOffset :: TextRange -> IO Int32
-textRangeReadEndOffset s = withManagedPtr s $ \ptr -> do
+textRangeWriteStartOffset :: MonadIO m => TextRange -> Int32 -> m ()
+textRangeWriteStartOffset s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Int32)
+
+data TextRangeStartOffsetFieldInfo
+instance AttrInfo TextRangeStartOffsetFieldInfo where
+    type AttrAllowedOps TextRangeStartOffsetFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TextRangeStartOffsetFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint TextRangeStartOffsetFieldInfo = (~) TextRange
+    type AttrGetType TextRangeStartOffsetFieldInfo = Int32
+    type AttrLabel TextRangeStartOffsetFieldInfo = "start_offset"
+    attrGet _ = textRangeReadStartOffset
+    attrSet _ = textRangeWriteStartOffset
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+textRangeStartOffset :: AttrLabelProxy "startOffset"
+textRangeStartOffset = AttrLabelProxy
+
+
+textRangeReadEndOffset :: MonadIO m => TextRange -> m Int32
+textRangeReadEndOffset s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 20) :: IO Int32
     return val
 
-textRangeReadContent :: TextRange -> IO T.Text
-textRangeReadContent s = withManagedPtr s $ \ptr -> do
+textRangeWriteEndOffset :: MonadIO m => TextRange -> Int32 -> m ()
+textRangeWriteEndOffset s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 20) (val :: Int32)
+
+data TextRangeEndOffsetFieldInfo
+instance AttrInfo TextRangeEndOffsetFieldInfo where
+    type AttrAllowedOps TextRangeEndOffsetFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TextRangeEndOffsetFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint TextRangeEndOffsetFieldInfo = (~) TextRange
+    type AttrGetType TextRangeEndOffsetFieldInfo = Int32
+    type AttrLabel TextRangeEndOffsetFieldInfo = "end_offset"
+    attrGet _ = textRangeReadEndOffset
+    attrSet _ = textRangeWriteEndOffset
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+textRangeEndOffset :: AttrLabelProxy "endOffset"
+textRangeEndOffset = AttrLabelProxy
+
+
+textRangeReadContent :: MonadIO m => TextRange -> m (Maybe T.Text)
+textRangeReadContent s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO CString
-    val' <- cstringToText val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- cstringToText val'
+        return val''
+    return result
+
+textRangeWriteContent :: MonadIO m => TextRange -> CString -> m ()
+textRangeWriteContent s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: CString)
+
+textRangeClearContent :: MonadIO m => TextRange -> m ()
+textRangeClearContent s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: CString)
+
+data TextRangeContentFieldInfo
+instance AttrInfo TextRangeContentFieldInfo where
+    type AttrAllowedOps TextRangeContentFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint TextRangeContentFieldInfo = (~) CString
+    type AttrBaseTypeConstraint TextRangeContentFieldInfo = (~) TextRange
+    type AttrGetType TextRangeContentFieldInfo = Maybe T.Text
+    type AttrLabel TextRangeContentFieldInfo = "content"
+    attrGet _ = textRangeReadContent
+    attrSet _ = textRangeWriteContent
+    attrConstruct = undefined
+    attrClear _ = textRangeClearContent
+
+textRangeContent :: AttrLabelProxy "content"
+textRangeContent = AttrLabelProxy
+
+
+
+type instance AttributeList TextRange = TextRangeAttributeList
+type TextRangeAttributeList = ('[ '("bounds", TextRangeBoundsFieldInfo), '("startOffset", TextRangeStartOffsetFieldInfo), '("endOffset", TextRangeEndOffsetFieldInfo), '("content", TextRangeContentFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveTextRangeMethod (t :: Symbol) (o :: *) :: * where
     ResolveTextRangeMethod l o = MethodResolutionFailed l o
diff --git a/GI/Atk/Structs/TextRange.hs-boot b/GI/Atk/Structs/TextRange.hs-boot
--- a/GI/Atk/Structs/TextRange.hs-boot
+++ b/GI/Atk/Structs/TextRange.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Structs.TextRange where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Atk/Structs/TextRectangle.hs b/GI/Atk/Structs/TextRectangle.hs
--- a/GI/Atk/Structs/TextRectangle.hs
+++ b/GI/Atk/Structs/TextRectangle.hs
@@ -19,28 +19,36 @@
 
  -- * Properties
 -- ** Height
+    textRectangleHeight                     ,
     textRectangleReadHeight                 ,
+    textRectangleWriteHeight                ,
 
 
 -- ** Width
     textRectangleReadWidth                  ,
+    textRectangleWidth                      ,
+    textRectangleWriteWidth                 ,
 
 
 -- ** X
     textRectangleReadX                      ,
+    textRectangleWriteX                     ,
+    textRectangleX                          ,
 
 
 -- ** Y
     textRectangleReadY                      ,
+    textRectangleWriteY                     ,
+    textRectangleY                          ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -53,28 +61,119 @@
 newZeroTextRectangle :: MonadIO m => m TextRectangle
 newZeroTextRectangle = liftIO $ callocBytes 16 >>= wrapPtr TextRectangle
 
+instance tag ~ 'AttrSet => Constructible TextRectangle tag where
+    new _ attrs = do
+        o <- newZeroTextRectangle
+        GI.Attributes.set o attrs
+        return o
+
+
 noTextRectangle :: Maybe TextRectangle
 noTextRectangle = Nothing
 
-textRectangleReadX :: TextRectangle -> IO Int32
-textRectangleReadX s = withManagedPtr s $ \ptr -> do
+textRectangleReadX :: MonadIO m => TextRectangle -> m Int32
+textRectangleReadX s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Int32
     return val
 
-textRectangleReadY :: TextRectangle -> IO Int32
-textRectangleReadY s = withManagedPtr s $ \ptr -> do
+textRectangleWriteX :: MonadIO m => TextRectangle -> Int32 -> m ()
+textRectangleWriteX s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Int32)
+
+data TextRectangleXFieldInfo
+instance AttrInfo TextRectangleXFieldInfo where
+    type AttrAllowedOps TextRectangleXFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TextRectangleXFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint TextRectangleXFieldInfo = (~) TextRectangle
+    type AttrGetType TextRectangleXFieldInfo = Int32
+    type AttrLabel TextRectangleXFieldInfo = "x"
+    attrGet _ = textRectangleReadX
+    attrSet _ = textRectangleWriteX
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+textRectangleX :: AttrLabelProxy "x"
+textRectangleX = AttrLabelProxy
+
+
+textRectangleReadY :: MonadIO m => TextRectangle -> m Int32
+textRectangleReadY s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO Int32
     return val
 
-textRectangleReadWidth :: TextRectangle -> IO Int32
-textRectangleReadWidth s = withManagedPtr s $ \ptr -> do
+textRectangleWriteY :: MonadIO m => TextRectangle -> Int32 -> m ()
+textRectangleWriteY s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 4) (val :: Int32)
+
+data TextRectangleYFieldInfo
+instance AttrInfo TextRectangleYFieldInfo where
+    type AttrAllowedOps TextRectangleYFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TextRectangleYFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint TextRectangleYFieldInfo = (~) TextRectangle
+    type AttrGetType TextRectangleYFieldInfo = Int32
+    type AttrLabel TextRectangleYFieldInfo = "y"
+    attrGet _ = textRectangleReadY
+    attrSet _ = textRectangleWriteY
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+textRectangleY :: AttrLabelProxy "y"
+textRectangleY = AttrLabelProxy
+
+
+textRectangleReadWidth :: MonadIO m => TextRectangle -> m Int32
+textRectangleReadWidth s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Int32
     return val
 
-textRectangleReadHeight :: TextRectangle -> IO Int32
-textRectangleReadHeight s = withManagedPtr s $ \ptr -> do
+textRectangleWriteWidth :: MonadIO m => TextRectangle -> Int32 -> m ()
+textRectangleWriteWidth s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Int32)
+
+data TextRectangleWidthFieldInfo
+instance AttrInfo TextRectangleWidthFieldInfo where
+    type AttrAllowedOps TextRectangleWidthFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TextRectangleWidthFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint TextRectangleWidthFieldInfo = (~) TextRectangle
+    type AttrGetType TextRectangleWidthFieldInfo = Int32
+    type AttrLabel TextRectangleWidthFieldInfo = "width"
+    attrGet _ = textRectangleReadWidth
+    attrSet _ = textRectangleWriteWidth
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+textRectangleWidth :: AttrLabelProxy "width"
+textRectangleWidth = AttrLabelProxy
+
+
+textRectangleReadHeight :: MonadIO m => TextRectangle -> m Int32
+textRectangleReadHeight s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 12) :: IO Int32
     return val
+
+textRectangleWriteHeight :: MonadIO m => TextRectangle -> Int32 -> m ()
+textRectangleWriteHeight s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 12) (val :: Int32)
+
+data TextRectangleHeightFieldInfo
+instance AttrInfo TextRectangleHeightFieldInfo where
+    type AttrAllowedOps TextRectangleHeightFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TextRectangleHeightFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint TextRectangleHeightFieldInfo = (~) TextRectangle
+    type AttrGetType TextRectangleHeightFieldInfo = Int32
+    type AttrLabel TextRectangleHeightFieldInfo = "height"
+    attrGet _ = textRectangleReadHeight
+    attrSet _ = textRectangleWriteHeight
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+textRectangleHeight :: AttrLabelProxy "height"
+textRectangleHeight = AttrLabelProxy
+
+
+
+type instance AttributeList TextRectangle = TextRectangleAttributeList
+type TextRectangleAttributeList = ('[ '("x", TextRectangleXFieldInfo), '("y", TextRectangleYFieldInfo), '("width", TextRectangleWidthFieldInfo), '("height", TextRectangleHeightFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveTextRectangleMethod (t :: Symbol) (o :: *) :: * where
     ResolveTextRectangleMethod l o = MethodResolutionFailed l o
diff --git a/GI/Atk/Structs/TextRectangle.hs-boot b/GI/Atk/Structs/TextRectangle.hs-boot
--- a/GI/Atk/Structs/TextRectangle.hs-boot
+++ b/GI/Atk/Structs/TextRectangle.hs-boot
@@ -1,8 +1,8 @@
 module GI.Atk.Structs.TextRectangle where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/gi-atk.cabal b/gi-atk.cabal
--- a/gi-atk.cabal
+++ b/gi-atk.cabal
@@ -1,6 +1,6 @@
 -- Autogenerated, do not edit.
 name:               gi-atk
-version:            0.2.18.13
+version:            0.2.18.14
 synopsis:           Atk bindings
 description:        Bindings for Atk, autogenerated by haskell-gi.
 homepage:           https://github.com/haskell-gi/haskell-gi
@@ -14,7 +14,7 @@
 
 library
     default-language:   Haskell2010
-    default-extensions: ScopedTypeVariables, CPP, OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts
+    default-extensions: NoImplicitPrelude, ScopedTypeVariables, CPP, OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts
     other-extensions:   PatternSynonyms ViewPatterns
     ghc-options:        -fno-warn-unused-imports -fno-warn-warnings-deprecations
     exposed-modules:    GI.Atk.Types
@@ -66,9 +66,9 @@
                         GI.Atk.Structs.TextRectangle
     pkgconfig-depends:  atk >= 2.18
     build-depends: base >= 4.7 && <5,
-        haskell-gi-base >= 0.13 && < 1,
-        gi-glib >= 0.2.46.13 && < 0.2.47,
-        gi-gobject >= 0.2.46.13 && < 0.2.47,
+        haskell-gi-base >= 0.14 && < 1,
+        gi-glib >= 0.2.46.14 && < 0.2.47,
+        gi-gobject >= 0.2.46.14 && < 0.2.47,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
