diff --git a/GI/Soup.hs b/GI/Soup.hs
--- a/GI/Soup.hs
+++ b/GI/Soup.hs
@@ -32,9 +32,9 @@
 import GI.Soup.Objects
 import GI.Soup.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/Soup/Callbacks.hs b/GI/Soup/Callbacks.hs
--- a/GI/Soup/Callbacks.hs
+++ b/GI/Soup/Callbacks.hs
@@ -149,9 +149,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
@@ -540,7 +540,7 @@
 type ChunkAllocator =
     Message ->
     Word64 ->
-    IO Buffer
+    IO (Maybe Buffer)
 
 noChunkAllocator :: Maybe ChunkAllocator
 noChunkAllocator = Nothing
@@ -556,8 +556,9 @@
     msg' <- (newObject Message) msg
     result <- _cb  msg' maxLen
     maybeReleaseFunPtr funptrptr
-    result' <- copyBoxed result
-    return result'
+    maybeM nullPtr result $ \result' -> do
+        result'' <- copyBoxed result'
+        return result''
 
 -- callback AuthDomainGenericAuthCallback
 authDomainGenericAuthCallbackClosure :: AuthDomainGenericAuthCallback -> IO Closure
@@ -656,7 +657,7 @@
     AuthDomain ->
     Message ->
     T.Text ->
-    IO T.Text
+    IO (Maybe T.Text)
 
 noAuthDomainDigestAuthCallback :: Maybe AuthDomainDigestAuthCallback
 noAuthDomainDigestAuthCallback = Nothing
@@ -675,8 +676,9 @@
     username' <- cstringToText username
     result <- _cb  domain' msg' username'
     maybeReleaseFunPtr funptrptr
-    result' <- textToCString result
-    return result'
+    maybeM nullPtr result $ \result' -> do
+        result'' <- textToCString result'
+        return result''
 
 -- callback AuthDomainBasicAuthCallback
 authDomainBasicAuthCallbackClosure :: AuthDomainBasicAuthCallback -> IO Closure
diff --git a/GI/Soup/Constants.hs b/GI/Soup/Constants.hs
--- a/GI/Soup/Constants.hs
+++ b/GI/Soup/Constants.hs
@@ -156,9 +156,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/Soup/Enums.hs b/GI/Soup/Enums.hs
--- a/GI/Soup/Enums.hs
+++ b/GI/Soup/Enums.hs
@@ -47,9 +47,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/Soup/Flags.hs b/GI/Soup/Flags.hs
--- a/GI/Soup/Flags.hs
+++ b/GI/Soup/Flags.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
@@ -51,8 +51,8 @@
 foreign import ccall "soup_server_listen_options_get_type" c_soup_server_listen_options_get_type :: 
     IO GType
 
-instance BoxedEnum ServerListenOptions where
-    boxedEnumType _ = c_soup_server_listen_options_get_type
+instance BoxedFlags ServerListenOptions where
+    boxedFlagsType _ = c_soup_server_listen_options_get_type
 
 instance IsGFlag ServerListenOptions
 
@@ -94,8 +94,8 @@
 foreign import ccall "soup_message_flags_get_type" c_soup_message_flags_get_type :: 
     IO GType
 
-instance BoxedEnum MessageFlags where
-    boxedEnumType _ = c_soup_message_flags_get_type
+instance BoxedFlags MessageFlags where
+    boxedFlagsType _ = c_soup_message_flags_get_type
 
 instance IsGFlag MessageFlags
 
@@ -119,8 +119,8 @@
 foreign import ccall "soup_expectation_get_type" c_soup_expectation_get_type :: 
     IO GType
 
-instance BoxedEnum Expectation where
-    boxedEnumType _ = c_soup_expectation_get_type
+instance BoxedFlags Expectation where
+    boxedFlagsType _ = c_soup_expectation_get_type
 
 instance IsGFlag Expectation
 
@@ -150,8 +150,8 @@
 foreign import ccall "soup_cacheability_get_type" c_soup_cacheability_get_type :: 
     IO GType
 
-instance BoxedEnum Cacheability where
-    boxedEnumType _ = c_soup_cacheability_get_type
+instance BoxedFlags Cacheability where
+    boxedFlagsType _ = c_soup_cacheability_get_type
 
 instance IsGFlag Cacheability
 
diff --git a/GI/Soup/Functions.hs b/GI/Soup/Functions.hs
--- a/GI/Soup/Functions.hs
+++ b/GI/Soup/Functions.hs
@@ -198,9 +198,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
@@ -213,7 +213,7 @@
 -- function soup_xmlrpc_variant_new_datetime
 -- Args : [Arg {argCName = "date", argType = TInterface "Soup" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TVariant
+-- returnType : Just TVariant
 -- throws : False
 -- Skip return : False
 
@@ -238,7 +238,7 @@
 -- function soup_xmlrpc_variant_get_datetime
 -- Args : [Arg {argCName = "variant", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Date"
+-- returnType : Just (TInterface "Soup" "Date")
 -- throws : True
 -- Skip return : False
 
@@ -265,15 +265,15 @@
 
 
 -- function soup_xmlrpc_parse_response
--- Args : [Arg {argCName = "method_response", 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 = "signature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "method_response", 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 = "signature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TVariant
+-- returnType : Just TVariant
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "soup_xmlrpc_parse_response" soup_xmlrpc_parse_response :: 
     CString ->                              -- method_response : TBasicType TUTF8
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     CString ->                              -- signature : TBasicType TUTF8
     Ptr (Ptr GError) ->                     -- error
     IO (Ptr GVariant)
@@ -306,15 +306,15 @@
 
 
 -- function soup_xmlrpc_parse_request
--- Args : [Arg {argCName = "method_call", 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 = "params", argType = TInterface "Soup" "XMLRPCParams", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "method_call", 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 = "params", argType = TInterface "Soup" "XMLRPCParams", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "soup_xmlrpc_parse_request" soup_xmlrpc_parse_request :: 
     CString ->                              -- method_call : TBasicType TUTF8
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     Ptr (Ptr XMLRPCParams) ->               -- params : TInterface "Soup" "XMLRPCParams"
     Ptr (Ptr GError) ->                     -- error
     IO CString
@@ -346,15 +346,15 @@
 
 
 -- function soup_xmlrpc_parse_method_response
--- Args : [Arg {argCName = "method_response", 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 = "value", argType = TInterface "GObject" "Value", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "method_response", 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 = "value", argType = TInterface "GObject" "Value", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "soup_xmlrpc_parse_method_response" soup_xmlrpc_parse_method_response :: 
     CString ->                              -- method_response : TBasicType TUTF8
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     Ptr GValue ->                           -- value : TInterface "GObject" "Value"
     Ptr (Ptr GError) ->                     -- error
     IO CInt
@@ -380,15 +380,15 @@
 
 
 -- function soup_xmlrpc_parse_method_call
--- Args : [Arg {argCName = "method_call", 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 = "method_name", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "params", argType = TInterface "GObject" "ValueArray", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "method_call", 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 = "method_name", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "params", argType = TInterface "GObject" "ValueArray", 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 "soup_xmlrpc_parse_method_call" soup_xmlrpc_parse_method_call :: 
     CString ->                              -- method_call : TBasicType TUTF8
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     Ptr CString ->                          -- method_name : TBasicType TUTF8
     Ptr GObject.ValueArray ->               -- params : TInterface "GObject" "ValueArray"
     IO CInt
@@ -417,7 +417,7 @@
 -- function soup_xmlrpc_message_set_response
 -- Args : [Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -448,7 +448,7 @@
 -- function soup_xmlrpc_message_new
 -- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "method_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Message"
+-- returnType : Just (TInterface "Soup" "Message")
 -- throws : True
 -- Skip return : False
 
@@ -486,7 +486,7 @@
 -- function soup_xmlrpc_build_response
 -- Args : [Arg {argCName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
 
@@ -516,7 +516,7 @@
 -- function soup_xmlrpc_build_request
 -- Args : [Arg {argCName = "method_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
 
@@ -550,7 +550,7 @@
 -- function soup_xmlrpc_build_method_response
 -- Args : [Arg {argCName = "value", argType = TInterface "GObject" "Value", 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
 
@@ -562,28 +562,29 @@
 xmlrpcBuildMethodResponse ::
     (MonadIO m) =>
     GValue                                  -- value
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 xmlrpcBuildMethodResponse value = liftIO $ do
     let value' = unsafeManagedPtrGetPtr value
     result <- soup_xmlrpc_build_method_response value'
-    checkUnexpectedReturnNULL "soup_xmlrpc_build_method_response" result
-    result' <- cstringToText result
-    freeMem result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        freeMem result'
+        return result''
     touchManagedPtr value
-    return result'
+    return maybeResult
 
 
 -- function soup_xmlrpc_build_method_call
--- Args : [Arg {argCName = "method_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TCArray False (-1) 2 (TInterface "GObject" "Value"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_params", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : [Arg {argCName = "n_params", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
+-- Args : [Arg {argCName = "method_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TCArray False (-1) 2 (TInterface "GObject" "Value"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_params", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "n_params", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_xmlrpc_build_method_call" soup_xmlrpc_build_method_call :: 
     CString ->                              -- method_name : TBasicType TUTF8
     Ptr GValue ->                           -- params : TCArray False (-1) 2 (TInterface "GObject" "Value")
-    Int32 ->                                -- n_params : TBasicType TInt32
+    Int32 ->                                -- n_params : TBasicType TInt
     IO CString
 
 {-# DEPRECATED xmlrpcBuildMethodCall ["Use soup_xmlrpc_build_request() instead."]#-}
@@ -591,26 +592,27 @@
     (MonadIO m) =>
     T.Text                                  -- methodName
     -> [GValue]                             -- params
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 xmlrpcBuildMethodCall methodName params = liftIO $ do
     let nParams = fromIntegral $ length params
     methodName' <- textToCString methodName
     let params' = map unsafeManagedPtrGetPtr params
     params'' <- packBlockArray 24 params'
     result <- soup_xmlrpc_build_method_call methodName' params'' nParams
-    checkUnexpectedReturnNULL "soup_xmlrpc_build_method_call" result
-    result' <- cstringToText result
-    freeMem result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        freeMem result'
+        return result''
     mapM_ touchManagedPtr params
     freeMem methodName'
     freeMem params''
-    return result'
+    return maybeResult
 
 
 -- function soup_websocket_server_process_handshake
 -- Args : [Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expected_origin", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocols", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -651,7 +653,7 @@
 -- function soup_websocket_server_check_handshake
 -- Args : [Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "origin", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocols", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -698,7 +700,7 @@
 -- function soup_websocket_client_verify_handshake
 -- Args : [Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -726,7 +728,7 @@
 -- function soup_websocket_client_prepare_handshake
 -- Args : [Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "origin", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocols", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -774,7 +776,7 @@
 -- function soup_value_array_new
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GObject" "ValueArray"
+-- returnType : Just (TInterface "GObject" "ValueArray")
 -- throws : False
 -- Skip return : False
 
@@ -795,7 +797,7 @@
 -- function soup_tld_get_base_domain
 -- Args : [Arg {argCName = "hostname", 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 : True
 -- Skip return : False
 
@@ -825,7 +827,7 @@
 -- function soup_tld_domain_is_public_suffix
 -- Args : [Arg {argCName = "domain", 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
 
@@ -847,14 +849,14 @@
 
 
 -- function soup_str_case_hash
--- Args : [Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "key", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_str_case_hash" soup_str_case_hash :: 
-    Ptr () ->                               -- key : TBasicType TVoid
+    Ptr () ->                               -- key : TBasicType TPtr
     IO Word32
 
 
@@ -868,15 +870,15 @@
 
 
 -- function soup_str_case_equal
--- Args : [Arg {argCName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "v1", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TBasicType TPtr, 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 "soup_str_case_equal" soup_str_case_equal :: 
-    Ptr () ->                               -- v1 : TBasicType TVoid
-    Ptr () ->                               -- v2 : TBasicType TVoid
+    Ptr () ->                               -- v1 : TBasicType TPtr
+    Ptr () ->                               -- v2 : TBasicType TPtr
     IO CInt
 
 
@@ -894,7 +896,7 @@
 -- function soup_http_error_quark
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt32)
 -- throws : False
 -- Skip return : False
 
@@ -911,16 +913,16 @@
 
 
 -- function soup_headers_parse_status_line
--- Args : [Arg {argCName = "status_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ver", argType = TInterface "Soup" "HTTPVersion", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "status_code", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "reason_phrase", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "status_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ver", argType = TInterface "Soup" "HTTPVersion", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "status_code", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "reason_phrase", argType = TBasicType TUTF8, 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 "soup_headers_parse_status_line" soup_headers_parse_status_line :: 
     CString ->                              -- status_line : TBasicType TUTF8
     Ptr CUInt ->                            -- ver : TInterface "Soup" "HTTPVersion"
-    Ptr Word32 ->                           -- status_code : TBasicType TUInt32
+    Ptr Word32 ->                           -- status_code : TBasicType TUInt
     Ptr CString ->                          -- reason_phrase : TBasicType TUTF8
     IO CInt
 
@@ -950,18 +952,18 @@
 
 
 -- function soup_headers_parse_response
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "headers", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ver", argType = TInterface "Soup" "HTTPVersion", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "status_code", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "reason_phrase", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "headers", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ver", argType = TInterface "Soup" "HTTPVersion", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "status_code", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "reason_phrase", argType = TBasicType TUTF8, 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 "soup_headers_parse_response" soup_headers_parse_response :: 
     CString ->                              -- str : TBasicType TUTF8
-    Int32 ->                                -- len : TBasicType TInt32
+    Int32 ->                                -- len : TBasicType TInt
     Ptr MessageHeaders ->                   -- headers : TInterface "Soup" "MessageHeaders"
     Ptr CUInt ->                            -- ver : TInterface "Soup" "HTTPVersion"
-    Ptr Word32 ->                           -- status_code : TBasicType TUInt32
+    Ptr Word32 ->                           -- status_code : TBasicType TUInt
     Ptr CString ->                          -- reason_phrase : TBasicType TUTF8
     IO CInt
 
@@ -995,15 +997,15 @@
 
 
 -- function soup_headers_parse_request
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "req_headers", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "req_method", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "req_path", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "ver", argType = TInterface "Soup" "HTTPVersion", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "req_headers", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "req_method", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "req_path", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "ver", argType = TInterface "Soup" "HTTPVersion", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_headers_parse_request" soup_headers_parse_request :: 
     CString ->                              -- str : TBasicType TUTF8
-    Int32 ->                                -- len : TBasicType TInt32
+    Int32 ->                                -- len : TBasicType TInt
     Ptr MessageHeaders ->                   -- req_headers : TInterface "Soup" "MessageHeaders"
     Ptr CString ->                          -- req_method : TBasicType TUTF8
     Ptr CString ->                          -- req_path : TBasicType TUTF8
@@ -1041,15 +1043,15 @@
 
 
 -- function soup_headers_parse
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface "Soup" "MessageHeaders", 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 "soup_headers_parse" soup_headers_parse :: 
     CString ->                              -- str : TBasicType TUTF8
-    Int32 ->                                -- len : TBasicType TInt32
+    Int32 ->                                -- len : TBasicType TInt
     Ptr MessageHeaders ->                   -- dest : TInterface "Soup" "MessageHeaders"
     IO CInt
 
@@ -1073,7 +1075,7 @@
 -- function soup_header_parse_semi_param_list
 -- Args : [Arg {argCName = "header", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGHash (TBasicType TUTF8) (TBasicType TUTF8)
+-- returnType : Just (TGHash (TBasicType TUTF8) (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -1104,7 +1106,7 @@
 -- function soup_header_parse_quality_list
 -- Args : [Arg {argCName = "header", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unacceptable", argType = TGSList (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TGSList (TBasicType TUTF8)
+-- returnType : Just (TGSList (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -1122,7 +1124,6 @@
     header' <- textToCString header
     unacceptable <- allocMem :: IO (Ptr (Ptr (GSList CString)))
     result <- soup_header_parse_quality_list header' unacceptable
-    checkUnexpectedReturnNULL "soup_header_parse_quality_list" result
     result' <- unpackGSList result
     result'' <- mapM cstringToText result'
     mapGSList freeMem result
@@ -1140,7 +1141,7 @@
 -- function soup_header_parse_param_list
 -- Args : [Arg {argCName = "header", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGHash (TBasicType TUTF8) (TBasicType TUTF8)
+-- returnType : Just (TGHash (TBasicType TUTF8) (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -1171,7 +1172,7 @@
 -- function soup_header_parse_list
 -- Args : [Arg {argCName = "header", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TBasicType TUTF8)
+-- returnType : Just (TGSList (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -1187,7 +1188,6 @@
 headerParseList header = liftIO $ do
     header' <- textToCString header
     result <- soup_header_parse_list header'
-    checkUnexpectedReturnNULL "soup_header_parse_list" result
     result' <- unpackGSList result
     result'' <- mapM cstringToText result'
     mapGSList freeMem result
@@ -1199,7 +1199,7 @@
 -- function soup_header_g_string_append_param_quoted
 -- Args : [Arg {argCName = "string", argType = TInterface "GLib" "String", 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},Arg {argCName = "value", 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
 
@@ -1230,7 +1230,7 @@
 -- function soup_header_g_string_append_param
 -- Args : [Arg {argCName = "string", argType = TInterface "GLib" "String", 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},Arg {argCName = "value", 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
 
@@ -1261,7 +1261,7 @@
 -- function soup_header_free_param_list
 -- Args : [Arg {argCName = "param_list", argType = TGHash (TBasicType TUTF8) (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
 
@@ -1289,7 +1289,7 @@
 -- function soup_header_contains
 -- Args : [Arg {argCName = "header", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "token", 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
 
@@ -1317,7 +1317,7 @@
 -- function soup_form_request_new_from_multipart
 -- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "multipart", argType = TInterface "Soup" "Multipart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Message"
+-- returnType : Just (TInterface "Soup" "Message")
 -- throws : False
 -- Skip return : False
 
@@ -1346,7 +1346,7 @@
 -- function soup_form_request_new_from_hash
 -- Args : [Arg {argCName = "method", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "form_data_set", argType = TGHash (TBasicType TUTF8) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Message"
+-- returnType : Just (TInterface "Soup" "Message")
 -- throws : False
 -- Skip return : False
 
@@ -1384,7 +1384,7 @@
 -- function soup_form_request_new_from_datalist
 -- Args : [Arg {argCName = "method", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "form_data_set", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Message"
+-- returnType : Just (TInterface "Soup" "Message")
 -- throws : False
 -- Skip return : False
 
@@ -1417,7 +1417,7 @@
 -- function soup_form_encode_hash
 -- Args : [Arg {argCName = "form_data_set", argType = TGHash (TBasicType TUTF8) (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
 
@@ -1448,7 +1448,7 @@
 -- function soup_form_encode_datalist
 -- Args : [Arg {argCName = "form_data_set", argType = TInterface "GLib" "Data", 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
 
@@ -1474,7 +1474,7 @@
 -- function soup_form_decode_multipart
 -- Args : [Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file_control_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "content_type", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "file", argType = TInterface "Soup" "Buffer", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TGHash (TBasicType TUTF8) (TBasicType TUTF8)
+-- returnType : Just (TGHash (TBasicType TUTF8) (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -1491,7 +1491,7 @@
     (MonadIO m, MessageK a) =>
     a                                       -- msg
     -> Maybe (T.Text)                       -- fileControlName
-    -> m ((Map.Map T.Text T.Text),T.Text,T.Text,Buffer)-- result
+    -> m ((Maybe (Map.Map T.Text T.Text)),T.Text,T.Text,Buffer)-- result
 formDecodeMultipart msg fileControlName = liftIO $ do
     let msg' = unsafeManagedPtrCastPtr msg
     maybeFileControlName <- case fileControlName of
@@ -1503,14 +1503,15 @@
     contentType <- allocMem :: IO (Ptr CString)
     file <- callocBoxedBytes 16 :: IO (Ptr Buffer)
     result <- soup_form_decode_multipart msg' maybeFileControlName filename contentType file
-    checkUnexpectedReturnNULL "soup_form_decode_multipart" result
-    result' <- unpackGHashTable result
-    let result'' = mapFirst cstringUnpackPtr result'
-    result''' <- mapFirstA cstringToText result''
-    let result'''' = mapSecond cstringUnpackPtr result'''
-    result''''' <- mapSecondA cstringToText result''''
-    let result'''''' = Map.fromList result'''''
-    unrefGHashTable result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- unpackGHashTable result'
+        let result''' = mapFirst cstringUnpackPtr result''
+        result'''' <- mapFirstA cstringToText result'''
+        let result''''' = mapSecond cstringUnpackPtr result''''
+        result'''''' <- mapSecondA cstringToText result'''''
+        let result''''''' = Map.fromList result''''''
+        unrefGHashTable result'
+        return result'''''''
     filename' <- peek filename
     filename'' <- cstringToText filename'
     freeMem filename'
@@ -1522,13 +1523,13 @@
     freeMem maybeFileControlName
     freeMem filename
     freeMem contentType
-    return (result'''''', filename'', contentType'', file')
+    return (maybeResult, filename'', contentType'', file')
 
 
 -- function soup_form_decode
 -- Args : [Arg {argCName = "encoded_form", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGHash (TBasicType TUTF8) (TBasicType TUTF8)
+-- returnType : Just (TGHash (TBasicType TUTF8) (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -1559,7 +1560,7 @@
 -- function soup_cookies_to_response
 -- Args : [Arg {argCName = "cookies", argType = TGSList (TInterface "Soup" "Cookie"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -1588,7 +1589,7 @@
 -- function soup_cookies_to_request
 -- Args : [Arg {argCName = "cookies", argType = TGSList (TInterface "Soup" "Cookie"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -1617,7 +1618,7 @@
 -- function soup_cookies_to_cookie_header
 -- Args : [Arg {argCName = "cookies", argType = TGSList (TInterface "Soup" "Cookie"), 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
 
@@ -1645,7 +1646,7 @@
 -- function soup_cookies_from_response
 -- Args : [Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TInterface "Soup" "Cookie")
+-- returnType : Just (TGSList (TInterface "Soup" "Cookie"))
 -- throws : False
 -- Skip return : False
 
@@ -1661,7 +1662,6 @@
 cookiesFromResponse msg = liftIO $ do
     let msg' = unsafeManagedPtrCastPtr msg
     result <- soup_cookies_from_response msg'
-    checkUnexpectedReturnNULL "soup_cookies_from_response" result
     result' <- unpackGSList result
     result'' <- mapM (wrapBoxed Cookie) result'
     g_slist_free result
@@ -1672,7 +1672,7 @@
 -- function soup_cookies_from_request
 -- Args : [Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TInterface "Soup" "Cookie")
+-- returnType : Just (TGSList (TInterface "Soup" "Cookie"))
 -- throws : False
 -- Skip return : False
 
@@ -1688,7 +1688,6 @@
 cookiesFromRequest msg = liftIO $ do
     let msg' = unsafeManagedPtrCastPtr msg
     result <- soup_cookies_from_request msg'
-    checkUnexpectedReturnNULL "soup_cookies_from_request" result
     result' <- unpackGSList result
     result'' <- mapM (wrapBoxed Cookie) result'
     g_slist_free result
diff --git a/GI/Soup/Interfaces.hs b/GI/Soup/Interfaces.hs
--- a/GI/Soup/Interfaces.hs
+++ b/GI/Soup/Interfaces.hs
@@ -18,9 +18,9 @@
 import GI.Soup.Interfaces.ProxyURIResolver
 import GI.Soup.Interfaces.SessionFeature
 
-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/Soup/Interfaces/PasswordManager.hs b/GI/Soup/Interfaces/PasswordManager.hs
--- a/GI/Soup/Interfaces/PasswordManager.hs
+++ b/GI/Soup/Interfaces/PasswordManager.hs
@@ -31,9 +31,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
@@ -115,9 +115,9 @@
 
 -- method PasswordManager::get_passwords_async
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "PasswordManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "retrying", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "async_context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "PasswordManagerCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 7, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "PasswordManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "retrying", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "async_context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "PasswordManagerCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 7, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_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
 
@@ -129,7 +129,7 @@
     Ptr GLib.MainContext ->                 -- async_context : TInterface "GLib" "MainContext"
     Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
     FunPtr PasswordManagerCallbackC ->      -- callback : TInterface "Soup" "PasswordManagerCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 
@@ -174,7 +174,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "PasswordManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, 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/Soup/Interfaces/PasswordManager.hs-boot b/GI/Soup/Interfaces/PasswordManager.hs-boot
--- a/GI/Soup/Interfaces/PasswordManager.hs-boot
+++ b/GI/Soup/Interfaces/PasswordManager.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Interfaces.PasswordManager 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/Soup/Interfaces/ProxyURIResolver.hs b/GI/Soup/Interfaces/ProxyURIResolver.hs
--- a/GI/Soup/Interfaces/ProxyURIResolver.hs
+++ b/GI/Soup/Interfaces/ProxyURIResolver.hs
@@ -31,9 +31,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
@@ -115,9 +115,9 @@
 
 -- method ProxyURIResolver::get_proxy_uri_async
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ProxyURIResolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "async_context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "ProxyURIResolverCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ProxyURIResolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "async_context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "ProxyURIResolverCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_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
 
@@ -127,7 +127,7 @@
     Ptr GLib.MainContext ->                 -- async_context : TInterface "GLib" "MainContext"
     Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
     FunPtr ProxyURIResolverCallbackC ->     -- callback : TInterface "Soup" "ProxyURIResolverCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 {-# DEPRECATED proxyURIResolverGetProxyUriAsync ["#SoupProxyURIResolver is deprecated in favor of","#GProxyResolver"]#-}
@@ -171,7 +171,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ProxyURIResolver", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "proxy_uri", argType = TInterface "Soup" "URI", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Interfaces/ProxyURIResolver.hs-boot b/GI/Soup/Interfaces/ProxyURIResolver.hs-boot
--- a/GI/Soup/Interfaces/ProxyURIResolver.hs-boot
+++ b/GI/Soup/Interfaces/ProxyURIResolver.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Interfaces.ProxyURIResolver 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/Soup/Interfaces/SessionFeature.hs b/GI/Soup/Interfaces/SessionFeature.hs
--- a/GI/Soup/Interfaces/SessionFeature.hs
+++ b/GI/Soup/Interfaces/SessionFeature.hs
@@ -46,9 +46,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
@@ -128,7 +128,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "SessionFeature", 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 TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -159,7 +159,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "SessionFeature", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "session", argType = TInterface "Soup" "Session", 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
 
@@ -190,7 +190,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "SessionFeature", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "session", argType = TInterface "Soup" "Session", 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
 
@@ -221,7 +221,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "SessionFeature", 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 TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -252,7 +252,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "SessionFeature", 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 TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Interfaces/SessionFeature.hs-boot b/GI/Soup/Interfaces/SessionFeature.hs-boot
--- a/GI/Soup/Interfaces/SessionFeature.hs-boot
+++ b/GI/Soup/Interfaces/SessionFeature.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Interfaces.SessionFeature 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/Soup/Objects.hs b/GI/Soup/Objects.hs
--- a/GI/Soup/Objects.hs
+++ b/GI/Soup/Objects.hs
@@ -72,9 +72,9 @@
 import GI.Soup.Objects.Socket
 import GI.Soup.Objects.WebsocketConnection
 
-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/Soup/Objects/Address.hs b/GI/Soup/Objects/Address.hs
--- a/GI/Soup/Objects/Address.hs
+++ b/GI/Soup/Objects/Address.hs
@@ -89,35 +89,41 @@
  -- * Properties
 -- ** Family
     AddressFamilyPropertyInfo               ,
+    addressFamily                           ,
     constructAddressFamily                  ,
     getAddressFamily                        ,
 
 
 -- ** Name
     AddressNamePropertyInfo                 ,
+    addressName                             ,
     constructAddressName                    ,
     getAddressName                          ,
 
 
 -- ** Physical
     AddressPhysicalPropertyInfo             ,
+    addressPhysical                         ,
     getAddressPhysical                      ,
 
 
 -- ** Port
     AddressPortPropertyInfo                 ,
+    addressPort                             ,
     constructAddressPort                    ,
     getAddressPort                          ,
 
 
 -- ** Protocol
     AddressProtocolPropertyInfo             ,
+    addressProtocol                         ,
     constructAddressProtocol                ,
     getAddressProtocol                      ,
 
 
 -- ** Sockaddr
     AddressSockaddrPropertyInfo             ,
+    addressSockaddr                         ,
     constructAddressSockaddr                ,
     getAddressSockaddr                      ,
 
@@ -126,9 +132,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
@@ -209,6 +215,7 @@
 -- VVV Prop "family"
    -- Type: TInterface "Soup" "AddressFamily"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getAddressFamily :: (MonadIO m, AddressK o) => o -> m AddressFamily
 getAddressFamily obj = liftIO $ getObjectPropertyEnum obj "family"
@@ -226,55 +233,61 @@
     attrGet _ = getAddressFamily
     attrSet _ = undefined
     attrConstruct _ = constructAddressFamily
+    attrClear _ = undefined
 
 -- VVV Prop "name"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just True,Nothing)
 
-getAddressName :: (MonadIO m, AddressK o) => o -> m T.Text
+getAddressName :: (MonadIO m, AddressK o) => o -> m (Maybe T.Text)
 getAddressName obj = liftIO $ getObjectPropertyString obj "name"
 
 constructAddressName :: T.Text -> IO ([Char], GValue)
-constructAddressName val = constructObjectPropertyString "name" val
+constructAddressName val = constructObjectPropertyString "name" (Just val)
 
 data AddressNamePropertyInfo
 instance AttrInfo AddressNamePropertyInfo where
-    type AttrAllowedOps AddressNamePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps AddressNamePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint AddressNamePropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint AddressNamePropertyInfo = AddressK
-    type AttrGetType AddressNamePropertyInfo = T.Text
+    type AttrGetType AddressNamePropertyInfo = (Maybe T.Text)
     type AttrLabel AddressNamePropertyInfo = "name"
     attrGet _ = getAddressName
     attrSet _ = undefined
     attrConstruct _ = constructAddressName
+    attrClear _ = undefined
 
 -- VVV Prop "physical"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Just True,Nothing)
 
-getAddressPhysical :: (MonadIO m, AddressK o) => o -> m T.Text
+getAddressPhysical :: (MonadIO m, AddressK o) => o -> m (Maybe T.Text)
 getAddressPhysical obj = liftIO $ getObjectPropertyString obj "physical"
 
 data AddressPhysicalPropertyInfo
 instance AttrInfo AddressPhysicalPropertyInfo where
-    type AttrAllowedOps AddressPhysicalPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps AddressPhysicalPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint AddressPhysicalPropertyInfo = (~) ()
     type AttrBaseTypeConstraint AddressPhysicalPropertyInfo = AddressK
-    type AttrGetType AddressPhysicalPropertyInfo = T.Text
+    type AttrGetType AddressPhysicalPropertyInfo = (Maybe T.Text)
     type AttrLabel AddressPhysicalPropertyInfo = "physical"
     attrGet _ = getAddressPhysical
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "port"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getAddressPort :: (MonadIO m, AddressK o) => o -> m Int32
-getAddressPort obj = liftIO $ getObjectPropertyCInt obj "port"
+getAddressPort obj = liftIO $ getObjectPropertyInt32 obj "port"
 
 constructAddressPort :: Int32 -> IO ([Char], GValue)
-constructAddressPort val = constructObjectPropertyCInt "port" val
+constructAddressPort val = constructObjectPropertyInt32 "port" val
 
 data AddressPortPropertyInfo
 instance AttrInfo AddressPortPropertyInfo where
@@ -286,36 +299,40 @@
     attrGet _ = getAddressPort
     attrSet _ = undefined
     attrConstruct _ = constructAddressPort
+    attrClear _ = undefined
 
 -- VVV Prop "protocol"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
-getAddressProtocol :: (MonadIO m, AddressK o) => o -> m T.Text
+getAddressProtocol :: (MonadIO m, AddressK o) => o -> m (Maybe T.Text)
 getAddressProtocol obj = liftIO $ getObjectPropertyString obj "protocol"
 
 constructAddressProtocol :: T.Text -> IO ([Char], GValue)
-constructAddressProtocol val = constructObjectPropertyString "protocol" val
+constructAddressProtocol val = constructObjectPropertyString "protocol" (Just val)
 
 data AddressProtocolPropertyInfo
 instance AttrInfo AddressProtocolPropertyInfo where
-    type AttrAllowedOps AddressProtocolPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps AddressProtocolPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint AddressProtocolPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint AddressProtocolPropertyInfo = AddressK
-    type AttrGetType AddressProtocolPropertyInfo = T.Text
+    type AttrGetType AddressProtocolPropertyInfo = (Maybe T.Text)
     type AttrLabel AddressProtocolPropertyInfo = "protocol"
     attrGet _ = getAddressProtocol
     attrSet _ = undefined
     attrConstruct _ = constructAddressProtocol
+    attrClear _ = undefined
 
 -- VVV Prop "sockaddr"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getAddressSockaddr :: (MonadIO m, AddressK o) => o -> m (Ptr ())
 getAddressSockaddr obj = liftIO $ getObjectPropertyPtr obj "sockaddr"
 
-constructAddressSockaddr :: (Ptr ()) -> IO ([Char], GValue)
+constructAddressSockaddr :: Ptr () -> IO ([Char], GValue)
 constructAddressSockaddr val = constructObjectPropertyPtr "sockaddr" val
 
 data AddressSockaddrPropertyInfo
@@ -328,24 +345,43 @@
     attrGet _ = getAddressSockaddr
     attrSet _ = undefined
     attrConstruct _ = constructAddressSockaddr
+    attrClear _ = undefined
 
 type instance AttributeList Address = AddressAttributeList
 type AddressAttributeList = ('[ '("family", AddressFamilyPropertyInfo), '("name", AddressNamePropertyInfo), '("physical", AddressPhysicalPropertyInfo), '("port", AddressPortPropertyInfo), '("protocol", AddressProtocolPropertyInfo), '("sockaddr", AddressSockaddrPropertyInfo)] :: [(Symbol, *)])
 
+addressFamily :: AttrLabelProxy "family"
+addressFamily = AttrLabelProxy
+
+addressName :: AttrLabelProxy "name"
+addressName = AttrLabelProxy
+
+addressPhysical :: AttrLabelProxy "physical"
+addressPhysical = AttrLabelProxy
+
+addressPort :: AttrLabelProxy "port"
+addressPort = AttrLabelProxy
+
+addressProtocol :: AttrLabelProxy "protocol"
+addressProtocol = AttrLabelProxy
+
+addressSockaddr :: AttrLabelProxy "sockaddr"
+addressSockaddr = AttrLabelProxy
+
 type instance SignalList Address = AddressSignalList
 type AddressSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method Address::new
 -- method type : Constructor
--- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Address"
+-- returnType : Just (TInterface "Soup" "Address")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_address_new" soup_address_new :: 
     CString ->                              -- name : TBasicType TUTF8
-    Word32 ->                               -- port : TBasicType TUInt32
+    Word32 ->                               -- port : TBasicType TUInt
     IO (Ptr Address)
 
 
@@ -364,15 +400,15 @@
 
 -- method Address::new_any
 -- method type : Constructor
--- Args : [Arg {argCName = "family", argType = TInterface "Soup" "AddressFamily", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "family", argType = TInterface "Soup" "AddressFamily", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Address"
+-- returnType : Just (TInterface "Soup" "Address")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_address_new_any" soup_address_new_any :: 
     CUInt ->                                -- family : TInterface "Soup" "AddressFamily"
-    Word32 ->                               -- port : TBasicType TUInt32
+    Word32 ->                               -- port : TBasicType TUInt
     IO (Ptr Address)
 
 
@@ -380,25 +416,26 @@
     (MonadIO m) =>
     AddressFamily                           -- family
     -> Word32                               -- port
-    -> m Address                            -- result
+    -> m (Maybe Address)                    -- result
 addressNewAny family port = liftIO $ do
     let family' = (fromIntegral . fromEnum) family
     result <- soup_address_new_any family' port
-    checkUnexpectedReturnNULL "soup_address_new_any" result
-    result' <- (wrapObject Address) result
-    return result'
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapObject Address) result'
+        return result''
+    return maybeResult
 
 -- method Address::new_from_sockaddr
 -- method type : Constructor
--- Args : [Arg {argCName = "sa", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "sa", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Address"
+-- returnType : Just (TInterface "Soup" "Address")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_address_new_from_sockaddr" soup_address_new_from_sockaddr :: 
-    Ptr () ->                               -- sa : TBasicType TVoid
-    Int32 ->                                -- len : TBasicType TInt32
+    Ptr () ->                               -- sa : TBasicType TPtr
+    Int32 ->                                -- len : TBasicType TInt
     IO (Ptr Address)
 
 
@@ -406,18 +443,19 @@
     (MonadIO m) =>
     Ptr ()                                  -- sa
     -> Int32                                -- len
-    -> m Address                            -- result
+    -> m (Maybe Address)                    -- result
 addressNewFromSockaddr sa len = liftIO $ do
     result <- soup_address_new_from_sockaddr sa len
-    checkUnexpectedReturnNULL "soup_address_new_from_sockaddr" result
-    result' <- (wrapObject Address) result
-    return result'
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapObject Address) result'
+        return result''
+    return maybeResult
 
 -- method Address::equal_by_ip
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "addr2", argType = TInterface "Soup" "Address", 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,7 +487,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "addr2", argType = TInterface "Soup" "Address", 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
 
@@ -481,7 +519,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "SocketAddress"
+-- returnType : Just (TInterface "Gio" "SocketAddress")
 -- throws : False
 -- Skip return : False
 
@@ -510,7 +548,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", 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
 
@@ -522,24 +560,25 @@
 addressGetName ::
     (MonadIO m, AddressK a) =>
     a                                       -- _obj
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 addressGetName _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_address_get_name _obj'
-    checkUnexpectedReturnNULL "soup_address_get_name" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data AddressGetNameMethodInfo
-instance (signature ~ (m T.Text), MonadIO m, AddressK a) => MethodInfo AddressGetNameMethodInfo a signature where
+instance (signature ~ (m (Maybe T.Text)), MonadIO m, AddressK a) => MethodInfo AddressGetNameMethodInfo a signature where
     overloadedMethod _ = addressGetName
 
 -- method Address::get_physical
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", 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
 
@@ -551,24 +590,25 @@
 addressGetPhysical ::
     (MonadIO m, AddressK a) =>
     a                                       -- _obj
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 addressGetPhysical _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_address_get_physical _obj'
-    checkUnexpectedReturnNULL "soup_address_get_physical" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data AddressGetPhysicalMethodInfo
-instance (signature ~ (m T.Text), MonadIO m, AddressK a) => MethodInfo AddressGetPhysicalMethodInfo a signature where
+instance (signature ~ (m (Maybe T.Text)), MonadIO m, AddressK a) => MethodInfo AddressGetPhysicalMethodInfo a signature where
     overloadedMethod _ = addressGetPhysical
 
 -- method Address::get_port
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -595,7 +635,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -622,7 +662,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -649,7 +689,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", 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
 
@@ -675,9 +715,9 @@
 
 -- method Address::resolve_async
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "async_context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "AddressCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "async_context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "AddressCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_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
 
@@ -686,7 +726,7 @@
     Ptr GLib.MainContext ->                 -- async_context : TInterface "GLib" "MainContext"
     Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
     FunPtr AddressCallbackC ->              -- callback : TInterface "Soup" "AddressCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 
@@ -727,7 +767,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Objects/Address.hs-boot b/GI/Soup/Objects/Address.hs-boot
--- a/GI/Soup/Objects/Address.hs-boot
+++ b/GI/Soup/Objects/Address.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.Address 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/Soup/Objects/Auth.hs b/GI/Soup/Objects/Auth.hs
--- a/GI/Soup/Objects/Auth.hs
+++ b/GI/Soup/Objects/Auth.hs
@@ -101,6 +101,8 @@
  -- * Properties
 -- ** Host
     AuthHostPropertyInfo                    ,
+    authHost                                ,
+    clearAuthHost                           ,
     constructAuthHost                       ,
     getAuthHost                             ,
     setAuthHost                             ,
@@ -120,6 +122,8 @@
 
 -- ** Realm
     AuthRealmPropertyInfo                   ,
+    authRealm                               ,
+    clearAuthRealm                          ,
     constructAuthRealm                      ,
     getAuthRealm                            ,
     setAuthRealm                            ,
@@ -127,6 +131,7 @@
 
 -- ** SchemeName
     AuthSchemeNamePropertyInfo              ,
+    authSchemeName                          ,
     getAuthSchemeName                       ,
 
 
@@ -134,9 +139,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
@@ -217,19 +222,23 @@
 -- VVV Prop "host"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Just False,Nothing)
 
 getAuthHost :: (MonadIO m, AuthK o) => o -> m T.Text
-getAuthHost obj = liftIO $ getObjectPropertyString obj "host"
+getAuthHost obj = liftIO $ checkUnexpectedNothing "getAuthHost" $ getObjectPropertyString obj "host"
 
 setAuthHost :: (MonadIO m, AuthK o) => o -> T.Text -> m ()
-setAuthHost obj val = liftIO $ setObjectPropertyString obj "host" val
+setAuthHost obj val = liftIO $ setObjectPropertyString obj "host" (Just val)
 
 constructAuthHost :: T.Text -> IO ([Char], GValue)
-constructAuthHost val = constructObjectPropertyString "host" val
+constructAuthHost val = constructObjectPropertyString "host" (Just val)
 
+clearAuthHost :: (MonadIO m, AuthK o) => o -> m ()
+clearAuthHost obj = liftIO $ setObjectPropertyString obj "host" (Nothing :: Maybe T.Text)
+
 data AuthHostPropertyInfo
 instance AttrInfo AuthHostPropertyInfo where
-    type AttrAllowedOps AuthHostPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps AuthHostPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint AuthHostPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint AuthHostPropertyInfo = AuthK
     type AttrGetType AuthHostPropertyInfo = T.Text
@@ -237,10 +246,12 @@
     attrGet _ = getAuthHost
     attrSet _ = setAuthHost
     attrConstruct _ = constructAuthHost
+    attrClear _ = clearAuthHost
 
 -- VVV Prop "is-authenticated"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthIsAuthenticated :: (MonadIO m, AuthK o) => o -> m Bool
 getAuthIsAuthenticated obj = liftIO $ getObjectPropertyBool obj "is-authenticated"
@@ -255,10 +266,12 @@
     attrGet _ = getAuthIsAuthenticated
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "is-for-proxy"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthIsForProxy :: (MonadIO m, AuthK o) => o -> m Bool
 getAuthIsForProxy obj = liftIO $ getObjectPropertyBool obj "is-for-proxy"
@@ -279,23 +292,28 @@
     attrGet _ = getAuthIsForProxy
     attrSet _ = setAuthIsForProxy
     attrConstruct _ = constructAuthIsForProxy
+    attrClear _ = undefined
 
 -- VVV Prop "realm"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Just False,Nothing)
 
 getAuthRealm :: (MonadIO m, AuthK o) => o -> m T.Text
-getAuthRealm obj = liftIO $ getObjectPropertyString obj "realm"
+getAuthRealm obj = liftIO $ checkUnexpectedNothing "getAuthRealm" $ getObjectPropertyString obj "realm"
 
 setAuthRealm :: (MonadIO m, AuthK o) => o -> T.Text -> m ()
-setAuthRealm obj val = liftIO $ setObjectPropertyString obj "realm" val
+setAuthRealm obj val = liftIO $ setObjectPropertyString obj "realm" (Just val)
 
 constructAuthRealm :: T.Text -> IO ([Char], GValue)
-constructAuthRealm val = constructObjectPropertyString "realm" val
+constructAuthRealm val = constructObjectPropertyString "realm" (Just val)
 
+clearAuthRealm :: (MonadIO m, AuthK o) => o -> m ()
+clearAuthRealm obj = liftIO $ setObjectPropertyString obj "realm" (Nothing :: Maybe T.Text)
+
 data AuthRealmPropertyInfo
 instance AttrInfo AuthRealmPropertyInfo where
-    type AttrAllowedOps AuthRealmPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps AuthRealmPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint AuthRealmPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint AuthRealmPropertyInfo = AuthK
     type AttrGetType AuthRealmPropertyInfo = T.Text
@@ -303,17 +321,19 @@
     attrGet _ = getAuthRealm
     attrSet _ = setAuthRealm
     attrConstruct _ = constructAuthRealm
+    attrClear _ = clearAuthRealm
 
 -- VVV Prop "scheme-name"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Just False,Nothing)
 
 getAuthSchemeName :: (MonadIO m, AuthK o) => o -> m T.Text
-getAuthSchemeName obj = liftIO $ getObjectPropertyString obj "scheme-name"
+getAuthSchemeName obj = liftIO $ checkUnexpectedNothing "getAuthSchemeName" $ getObjectPropertyString obj "scheme-name"
 
 data AuthSchemeNamePropertyInfo
 instance AttrInfo AuthSchemeNamePropertyInfo where
-    type AttrAllowedOps AuthSchemeNamePropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps AuthSchemeNamePropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint AuthSchemeNamePropertyInfo = (~) ()
     type AttrBaseTypeConstraint AuthSchemeNamePropertyInfo = AuthK
     type AttrGetType AuthSchemeNamePropertyInfo = T.Text
@@ -321,10 +341,20 @@
     attrGet _ = getAuthSchemeName
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 type instance AttributeList Auth = AuthAttributeList
 type AuthAttributeList = ('[ '("host", AuthHostPropertyInfo), '("isAuthenticated", AuthIsAuthenticatedPropertyInfo), '("isForProxy", AuthIsForProxyPropertyInfo), '("realm", AuthRealmPropertyInfo), '("schemeName", AuthSchemeNamePropertyInfo)] :: [(Symbol, *)])
 
+authHost :: AttrLabelProxy "host"
+authHost = AttrLabelProxy
+
+authRealm :: AttrLabelProxy "realm"
+authRealm = AttrLabelProxy
+
+authSchemeName :: AttrLabelProxy "schemeName"
+authSchemeName = AttrLabelProxy
+
 type instance SignalList Auth = AuthSignalList
 type AuthSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
@@ -332,7 +362,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth_header", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Auth"
+-- returnType : Just (TInterface "Soup" "Auth")
 -- throws : False
 -- Skip return : False
 
@@ -348,23 +378,24 @@
     GType                                   -- type_
     -> a                                    -- msg
     -> T.Text                               -- authHeader
-    -> m Auth                               -- result
+    -> m (Maybe Auth)                       -- result
 authNew type_ msg authHeader = liftIO $ do
     let type_' = gtypeToCGType type_
     let msg' = unsafeManagedPtrCastPtr msg
     authHeader' <- textToCString authHeader
     result <- soup_auth_new type_' msg' authHeader'
-    checkUnexpectedReturnNULL "soup_auth_new" result
-    result' <- (wrapObject Auth) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapObject Auth) result'
+        return result''
     touchManagedPtr msg
     freeMem authHeader'
-    return result'
+    return maybeResult
 
 -- method Auth::authenticate
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "username", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", 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
 
@@ -399,7 +430,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -433,7 +464,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", 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
 
@@ -462,7 +493,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", 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
 
@@ -492,7 +523,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source_uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TBasicType TUTF8)
+-- returnType : Just (TGSList (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -511,7 +542,6 @@
     let _obj' = unsafeManagedPtrCastPtr _obj
     let sourceUri' = unsafeManagedPtrGetPtr sourceUri
     result <- soup_auth_get_protection_space _obj' sourceUri'
-    checkUnexpectedReturnNULL "soup_auth_get_protection_space" result
     result' <- unpackGSList result
     result'' <- mapM cstringToText result'
     mapGSList freeMem result
@@ -528,7 +558,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", 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
 
@@ -557,7 +587,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user", 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
 
@@ -590,7 +620,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TBasicType TUTF8)
+-- returnType : Just (TGSList (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -606,7 +636,6 @@
 authGetSavedUsers _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_auth_get_saved_users _obj'
-    checkUnexpectedReturnNULL "soup_auth_get_saved_users" result
     result' <- unpackGSList result
     result'' <- mapM cstringToText result'
     mapGSList freeMem result
@@ -622,7 +651,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", 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
 
@@ -651,7 +680,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "username", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", 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
 
@@ -686,7 +715,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", 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
 
@@ -714,7 +743,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", 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
 
@@ -742,7 +771,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -774,7 +803,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "username", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", 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
 
@@ -809,7 +838,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Auth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth_header", 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/Soup/Objects/Auth.hs-boot b/GI/Soup/Objects/Auth.hs-boot
--- a/GI/Soup/Objects/Auth.hs-boot
+++ b/GI/Soup/Objects/Auth.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.Auth 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/Soup/Objects/AuthBasic.hs b/GI/Soup/Objects/AuthBasic.hs
--- a/GI/Soup/Objects/AuthBasic.hs
+++ b/GI/Soup/Objects/AuthBasic.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/Soup/Objects/AuthBasic.hs-boot b/GI/Soup/Objects/AuthBasic.hs-boot
--- a/GI/Soup/Objects/AuthBasic.hs-boot
+++ b/GI/Soup/Objects/AuthBasic.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.AuthBasic 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/Soup/Objects/AuthDigest.hs b/GI/Soup/Objects/AuthDigest.hs
--- a/GI/Soup/Objects/AuthDigest.hs
+++ b/GI/Soup/Objects/AuthDigest.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/Soup/Objects/AuthDigest.hs-boot b/GI/Soup/Objects/AuthDigest.hs-boot
--- a/GI/Soup/Objects/AuthDigest.hs-boot
+++ b/GI/Soup/Objects/AuthDigest.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.AuthDigest 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/Soup/Objects/AuthDomain.hs b/GI/Soup/Objects/AuthDomain.hs
--- a/GI/Soup/Objects/AuthDomain.hs
+++ b/GI/Soup/Objects/AuthDomain.hs
@@ -82,12 +82,14 @@
  -- * Properties
 -- ** AddPath
     AuthDomainAddPathPropertyInfo           ,
+    clearAuthDomainAddPath                  ,
     constructAuthDomainAddPath              ,
     setAuthDomainAddPath                    ,
 
 
 -- ** Filter
     AuthDomainFilterPropertyInfo            ,
+    authDomainFilter                        ,
     constructAuthDomainFilter               ,
     getAuthDomainFilter                     ,
     setAuthDomainFilter                     ,
@@ -95,6 +97,7 @@
 
 -- ** FilterData
     AuthDomainFilterDataPropertyInfo        ,
+    authDomainFilterData                    ,
     constructAuthDomainFilterData           ,
     getAuthDomainFilterData                 ,
     setAuthDomainFilterData                 ,
@@ -102,6 +105,7 @@
 
 -- ** GenericAuthCallback
     AuthDomainGenericAuthCallbackPropertyInfo,
+    authDomainGenericAuthCallback           ,
     constructAuthDomainGenericAuthCallback  ,
     getAuthDomainGenericAuthCallback        ,
     setAuthDomainGenericAuthCallback        ,
@@ -109,6 +113,7 @@
 
 -- ** GenericAuthData
     AuthDomainGenericAuthDataPropertyInfo   ,
+    authDomainGenericAuthData               ,
     constructAuthDomainGenericAuthData      ,
     getAuthDomainGenericAuthData            ,
     setAuthDomainGenericAuthData            ,
@@ -116,18 +121,21 @@
 
 -- ** Proxy
     AuthDomainProxyPropertyInfo             ,
+    authDomainProxy                         ,
     constructAuthDomainProxy                ,
     getAuthDomainProxy                      ,
 
 
 -- ** Realm
     AuthDomainRealmPropertyInfo             ,
+    authDomainRealm                         ,
     constructAuthDomainRealm                ,
     getAuthDomainRealm                      ,
 
 
 -- ** RemovePath
     AuthDomainRemovePathPropertyInfo        ,
+    clearAuthDomainRemovePath               ,
     constructAuthDomainRemovePath           ,
     setAuthDomainRemovePath                 ,
 
@@ -136,9 +144,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
@@ -217,16 +225,20 @@
 -- VVV Prop "add-path"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 setAuthDomainAddPath :: (MonadIO m, AuthDomainK o) => o -> T.Text -> m ()
-setAuthDomainAddPath obj val = liftIO $ setObjectPropertyString obj "add-path" val
+setAuthDomainAddPath obj val = liftIO $ setObjectPropertyString obj "add-path" (Just val)
 
 constructAuthDomainAddPath :: T.Text -> IO ([Char], GValue)
-constructAuthDomainAddPath val = constructObjectPropertyString "add-path" val
+constructAuthDomainAddPath val = constructObjectPropertyString "add-path" (Just val)
 
+clearAuthDomainAddPath :: (MonadIO m, AuthDomainK o) => o -> m ()
+clearAuthDomainAddPath obj = liftIO $ setObjectPropertyString obj "add-path" (Nothing :: Maybe T.Text)
+
 data AuthDomainAddPathPropertyInfo
 instance AttrInfo AuthDomainAddPathPropertyInfo where
-    type AttrAllowedOps AuthDomainAddPathPropertyInfo = '[ 'AttrSet, 'AttrConstruct]
+    type AttrAllowedOps AuthDomainAddPathPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrClear]
     type AttrSetTypeConstraint AuthDomainAddPathPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint AuthDomainAddPathPropertyInfo = AuthDomainK
     type AttrGetType AuthDomainAddPathPropertyInfo = ()
@@ -234,18 +246,20 @@
     attrGet _ = undefined
     attrSet _ = setAuthDomainAddPath
     attrConstruct _ = constructAuthDomainAddPath
+    attrClear _ = clearAuthDomainAddPath
 
 -- VVV Prop "filter"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthDomainFilter :: (MonadIO m, AuthDomainK o) => o -> m (Ptr ())
 getAuthDomainFilter obj = liftIO $ getObjectPropertyPtr obj "filter"
 
-setAuthDomainFilter :: (MonadIO m, AuthDomainK o) => o -> (Ptr ()) -> m ()
+setAuthDomainFilter :: (MonadIO m, AuthDomainK o) => o -> Ptr () -> m ()
 setAuthDomainFilter obj val = liftIO $ setObjectPropertyPtr obj "filter" val
 
-constructAuthDomainFilter :: (Ptr ()) -> IO ([Char], GValue)
+constructAuthDomainFilter :: Ptr () -> IO ([Char], GValue)
 constructAuthDomainFilter val = constructObjectPropertyPtr "filter" val
 
 data AuthDomainFilterPropertyInfo
@@ -258,18 +272,20 @@
     attrGet _ = getAuthDomainFilter
     attrSet _ = setAuthDomainFilter
     attrConstruct _ = constructAuthDomainFilter
+    attrClear _ = undefined
 
 -- VVV Prop "filter-data"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthDomainFilterData :: (MonadIO m, AuthDomainK o) => o -> m (Ptr ())
 getAuthDomainFilterData obj = liftIO $ getObjectPropertyPtr obj "filter-data"
 
-setAuthDomainFilterData :: (MonadIO m, AuthDomainK o) => o -> (Ptr ()) -> m ()
+setAuthDomainFilterData :: (MonadIO m, AuthDomainK o) => o -> Ptr () -> m ()
 setAuthDomainFilterData obj val = liftIO $ setObjectPropertyPtr obj "filter-data" val
 
-constructAuthDomainFilterData :: (Ptr ()) -> IO ([Char], GValue)
+constructAuthDomainFilterData :: Ptr () -> IO ([Char], GValue)
 constructAuthDomainFilterData val = constructObjectPropertyPtr "filter-data" val
 
 data AuthDomainFilterDataPropertyInfo
@@ -282,18 +298,20 @@
     attrGet _ = getAuthDomainFilterData
     attrSet _ = setAuthDomainFilterData
     attrConstruct _ = constructAuthDomainFilterData
+    attrClear _ = undefined
 
 -- VVV Prop "generic-auth-callback"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthDomainGenericAuthCallback :: (MonadIO m, AuthDomainK o) => o -> m (Ptr ())
 getAuthDomainGenericAuthCallback obj = liftIO $ getObjectPropertyPtr obj "generic-auth-callback"
 
-setAuthDomainGenericAuthCallback :: (MonadIO m, AuthDomainK o) => o -> (Ptr ()) -> m ()
+setAuthDomainGenericAuthCallback :: (MonadIO m, AuthDomainK o) => o -> Ptr () -> m ()
 setAuthDomainGenericAuthCallback obj val = liftIO $ setObjectPropertyPtr obj "generic-auth-callback" val
 
-constructAuthDomainGenericAuthCallback :: (Ptr ()) -> IO ([Char], GValue)
+constructAuthDomainGenericAuthCallback :: Ptr () -> IO ([Char], GValue)
 constructAuthDomainGenericAuthCallback val = constructObjectPropertyPtr "generic-auth-callback" val
 
 data AuthDomainGenericAuthCallbackPropertyInfo
@@ -306,18 +324,20 @@
     attrGet _ = getAuthDomainGenericAuthCallback
     attrSet _ = setAuthDomainGenericAuthCallback
     attrConstruct _ = constructAuthDomainGenericAuthCallback
+    attrClear _ = undefined
 
 -- VVV Prop "generic-auth-data"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthDomainGenericAuthData :: (MonadIO m, AuthDomainK o) => o -> m (Ptr ())
 getAuthDomainGenericAuthData obj = liftIO $ getObjectPropertyPtr obj "generic-auth-data"
 
-setAuthDomainGenericAuthData :: (MonadIO m, AuthDomainK o) => o -> (Ptr ()) -> m ()
+setAuthDomainGenericAuthData :: (MonadIO m, AuthDomainK o) => o -> Ptr () -> m ()
 setAuthDomainGenericAuthData obj val = liftIO $ setObjectPropertyPtr obj "generic-auth-data" val
 
-constructAuthDomainGenericAuthData :: (Ptr ()) -> IO ([Char], GValue)
+constructAuthDomainGenericAuthData :: Ptr () -> IO ([Char], GValue)
 constructAuthDomainGenericAuthData val = constructObjectPropertyPtr "generic-auth-data" val
 
 data AuthDomainGenericAuthDataPropertyInfo
@@ -330,10 +350,12 @@
     attrGet _ = getAuthDomainGenericAuthData
     attrSet _ = setAuthDomainGenericAuthData
     attrConstruct _ = constructAuthDomainGenericAuthData
+    attrClear _ = undefined
 
 -- VVV Prop "proxy"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthDomainProxy :: (MonadIO m, AuthDomainK o) => o -> m Bool
 getAuthDomainProxy obj = liftIO $ getObjectPropertyBool obj "proxy"
@@ -351,20 +373,22 @@
     attrGet _ = getAuthDomainProxy
     attrSet _ = undefined
     attrConstruct _ = constructAuthDomainProxy
+    attrClear _ = undefined
 
 -- VVV Prop "realm"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just False,Nothing)
 
 getAuthDomainRealm :: (MonadIO m, AuthDomainK o) => o -> m T.Text
-getAuthDomainRealm obj = liftIO $ getObjectPropertyString obj "realm"
+getAuthDomainRealm obj = liftIO $ checkUnexpectedNothing "getAuthDomainRealm" $ getObjectPropertyString obj "realm"
 
 constructAuthDomainRealm :: T.Text -> IO ([Char], GValue)
-constructAuthDomainRealm val = constructObjectPropertyString "realm" val
+constructAuthDomainRealm val = constructObjectPropertyString "realm" (Just val)
 
 data AuthDomainRealmPropertyInfo
 instance AttrInfo AuthDomainRealmPropertyInfo where
-    type AttrAllowedOps AuthDomainRealmPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps AuthDomainRealmPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint AuthDomainRealmPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint AuthDomainRealmPropertyInfo = AuthDomainK
     type AttrGetType AuthDomainRealmPropertyInfo = T.Text
@@ -372,20 +396,25 @@
     attrGet _ = getAuthDomainRealm
     attrSet _ = undefined
     attrConstruct _ = constructAuthDomainRealm
+    attrClear _ = undefined
 
 -- VVV Prop "remove-path"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 setAuthDomainRemovePath :: (MonadIO m, AuthDomainK o) => o -> T.Text -> m ()
-setAuthDomainRemovePath obj val = liftIO $ setObjectPropertyString obj "remove-path" val
+setAuthDomainRemovePath obj val = liftIO $ setObjectPropertyString obj "remove-path" (Just val)
 
 constructAuthDomainRemovePath :: T.Text -> IO ([Char], GValue)
-constructAuthDomainRemovePath val = constructObjectPropertyString "remove-path" val
+constructAuthDomainRemovePath val = constructObjectPropertyString "remove-path" (Just val)
 
+clearAuthDomainRemovePath :: (MonadIO m, AuthDomainK o) => o -> m ()
+clearAuthDomainRemovePath obj = liftIO $ setObjectPropertyString obj "remove-path" (Nothing :: Maybe T.Text)
+
 data AuthDomainRemovePathPropertyInfo
 instance AttrInfo AuthDomainRemovePathPropertyInfo where
-    type AttrAllowedOps AuthDomainRemovePathPropertyInfo = '[ 'AttrSet, 'AttrConstruct]
+    type AttrAllowedOps AuthDomainRemovePathPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrClear]
     type AttrSetTypeConstraint AuthDomainRemovePathPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint AuthDomainRemovePathPropertyInfo = AuthDomainK
     type AttrGetType AuthDomainRemovePathPropertyInfo = ()
@@ -393,10 +422,29 @@
     attrGet _ = undefined
     attrSet _ = setAuthDomainRemovePath
     attrConstruct _ = constructAuthDomainRemovePath
+    attrClear _ = clearAuthDomainRemovePath
 
 type instance AttributeList AuthDomain = AuthDomainAttributeList
 type AuthDomainAttributeList = ('[ '("addPath", AuthDomainAddPathPropertyInfo), '("filter", AuthDomainFilterPropertyInfo), '("filterData", AuthDomainFilterDataPropertyInfo), '("genericAuthCallback", AuthDomainGenericAuthCallbackPropertyInfo), '("genericAuthData", AuthDomainGenericAuthDataPropertyInfo), '("proxy", AuthDomainProxyPropertyInfo), '("realm", AuthDomainRealmPropertyInfo), '("removePath", AuthDomainRemovePathPropertyInfo)] :: [(Symbol, *)])
 
+authDomainFilter :: AttrLabelProxy "filter"
+authDomainFilter = AttrLabelProxy
+
+authDomainFilterData :: AttrLabelProxy "filterData"
+authDomainFilterData = AttrLabelProxy
+
+authDomainGenericAuthCallback :: AttrLabelProxy "genericAuthCallback"
+authDomainGenericAuthCallback = AttrLabelProxy
+
+authDomainGenericAuthData :: AttrLabelProxy "genericAuthData"
+authDomainGenericAuthData = AttrLabelProxy
+
+authDomainProxy :: AttrLabelProxy "proxy"
+authDomainProxy = AttrLabelProxy
+
+authDomainRealm :: AttrLabelProxy "realm"
+authDomainRealm = AttrLabelProxy
+
 type instance SignalList AuthDomain = AuthDomainSignalList
 type AuthDomainSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
@@ -404,7 +452,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -418,27 +466,28 @@
     (MonadIO m, AuthDomainK a, MessageK b) =>
     a                                       -- _obj
     -> b                                    -- msg
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 authDomainAccepts _obj msg = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let msg' = unsafeManagedPtrCastPtr msg
     result <- soup_auth_domain_accepts _obj' msg'
-    checkUnexpectedReturnNULL "soup_auth_domain_accepts" result
-    result' <- cstringToText result
-    freeMem result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        freeMem result'
+        return result''
     touchManagedPtr _obj
     touchManagedPtr msg
-    return result'
+    return maybeResult
 
 data AuthDomainAcceptsMethodInfo
-instance (signature ~ (b -> m T.Text), MonadIO m, AuthDomainK a, MessageK b) => MethodInfo AuthDomainAcceptsMethodInfo a signature where
+instance (signature ~ (b -> m (Maybe T.Text)), MonadIO m, AuthDomainK a, MessageK b) => MethodInfo AuthDomainAcceptsMethodInfo a signature where
     overloadedMethod _ = authDomainAccepts
 
 -- method AuthDomain::add_path
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", 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
 
@@ -467,16 +516,16 @@
 
 -- method AuthDomain::basic_set_auth_callback
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "AuthDomainBasicAuthCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "AuthDomainBasicAuthCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_auth_domain_basic_set_auth_callback" soup_auth_domain_basic_set_auth_callback :: 
     Ptr AuthDomain ->                       -- _obj : TInterface "Soup" "AuthDomain"
     FunPtr AuthDomainBasicAuthCallbackC ->  -- callback : TInterface "Soup" "AuthDomainBasicAuthCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- dnotify : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -503,7 +552,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -534,7 +583,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "username", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", 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
 
@@ -574,7 +623,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -604,16 +653,16 @@
 
 -- method AuthDomain::digest_set_auth_callback
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "AuthDomainDigestAuthCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "AuthDomainDigestAuthCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_auth_domain_digest_set_auth_callback" soup_auth_domain_digest_set_auth_callback :: 
     Ptr AuthDomain ->                       -- _obj : TInterface "Soup" "AuthDomain"
     FunPtr AuthDomainDigestAuthCallbackC -> -- callback : TInterface "Soup" "AuthDomainDigestAuthCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- dnotify : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -640,7 +689,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", 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
 
@@ -669,7 +718,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", 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
 
@@ -698,16 +747,16 @@
 
 -- method AuthDomain::set_filter
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter", argType = TInterface "Soup" "AuthDomainFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter", argType = TInterface "Soup" "AuthDomainFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_auth_domain_set_filter" soup_auth_domain_set_filter :: 
     Ptr AuthDomain ->                       -- _obj : TInterface "Soup" "AuthDomain"
     FunPtr AuthDomainFilterC ->             -- filter : TInterface "Soup" "AuthDomainFilter"
-    Ptr () ->                               -- filter_data : TBasicType TVoid
+    Ptr () ->                               -- filter_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- dnotify : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -732,16 +781,16 @@
 
 -- method AuthDomain::set_generic_auth_callback
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth_callback", argType = TInterface "Soup" "AuthDomainGenericAuthCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth_callback", argType = TInterface "Soup" "AuthDomainGenericAuthCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_auth_domain_set_generic_auth_callback" soup_auth_domain_set_generic_auth_callback :: 
     Ptr AuthDomain ->                       -- _obj : TInterface "Soup" "AuthDomain"
     FunPtr AuthDomainGenericAuthCallbackC -> -- auth_callback : TInterface "Soup" "AuthDomainGenericAuthCallback"
-    Ptr () ->                               -- auth_data : TBasicType TVoid
+    Ptr () ->                               -- auth_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- dnotify : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -768,7 +817,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthDomain", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "username", 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/Soup/Objects/AuthDomain.hs-boot b/GI/Soup/Objects/AuthDomain.hs-boot
--- a/GI/Soup/Objects/AuthDomain.hs-boot
+++ b/GI/Soup/Objects/AuthDomain.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.AuthDomain 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/Soup/Objects/AuthDomainBasic.hs b/GI/Soup/Objects/AuthDomainBasic.hs
--- a/GI/Soup/Objects/AuthDomainBasic.hs
+++ b/GI/Soup/Objects/AuthDomainBasic.hs
@@ -19,6 +19,7 @@
  -- * Properties
 -- ** AuthCallback
     AuthDomainBasicAuthCallbackPropertyInfo ,
+    authDomainBasicAuthCallback             ,
     constructAuthDomainBasicAuthCallback    ,
     getAuthDomainBasicAuthCallback          ,
     setAuthDomainBasicAuthCallback          ,
@@ -26,6 +27,7 @@
 
 -- ** AuthData
     AuthDomainBasicAuthDataPropertyInfo     ,
+    authDomainBasicAuthData                 ,
     constructAuthDomainBasicAuthData        ,
     getAuthDomainBasicAuthData              ,
     setAuthDomainBasicAuthData              ,
@@ -35,9 +37,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
@@ -113,16 +115,17 @@
 #endif
 
 -- VVV Prop "auth-callback"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthDomainBasicAuthCallback :: (MonadIO m, AuthDomainBasicK o) => o -> m (Ptr ())
 getAuthDomainBasicAuthCallback obj = liftIO $ getObjectPropertyPtr obj "auth-callback"
 
-setAuthDomainBasicAuthCallback :: (MonadIO m, AuthDomainBasicK o) => o -> (Ptr ()) -> m ()
+setAuthDomainBasicAuthCallback :: (MonadIO m, AuthDomainBasicK o) => o -> Ptr () -> m ()
 setAuthDomainBasicAuthCallback obj val = liftIO $ setObjectPropertyPtr obj "auth-callback" val
 
-constructAuthDomainBasicAuthCallback :: (Ptr ()) -> IO ([Char], GValue)
+constructAuthDomainBasicAuthCallback :: Ptr () -> IO ([Char], GValue)
 constructAuthDomainBasicAuthCallback val = constructObjectPropertyPtr "auth-callback" val
 
 data AuthDomainBasicAuthCallbackPropertyInfo
@@ -135,18 +138,20 @@
     attrGet _ = getAuthDomainBasicAuthCallback
     attrSet _ = setAuthDomainBasicAuthCallback
     attrConstruct _ = constructAuthDomainBasicAuthCallback
+    attrClear _ = undefined
 
 -- VVV Prop "auth-data"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthDomainBasicAuthData :: (MonadIO m, AuthDomainBasicK o) => o -> m (Ptr ())
 getAuthDomainBasicAuthData obj = liftIO $ getObjectPropertyPtr obj "auth-data"
 
-setAuthDomainBasicAuthData :: (MonadIO m, AuthDomainBasicK o) => o -> (Ptr ()) -> m ()
+setAuthDomainBasicAuthData :: (MonadIO m, AuthDomainBasicK o) => o -> Ptr () -> m ()
 setAuthDomainBasicAuthData obj val = liftIO $ setObjectPropertyPtr obj "auth-data" val
 
-constructAuthDomainBasicAuthData :: (Ptr ()) -> IO ([Char], GValue)
+constructAuthDomainBasicAuthData :: Ptr () -> IO ([Char], GValue)
 constructAuthDomainBasicAuthData val = constructObjectPropertyPtr "auth-data" val
 
 data AuthDomainBasicAuthDataPropertyInfo
@@ -159,9 +164,16 @@
     attrGet _ = getAuthDomainBasicAuthData
     attrSet _ = setAuthDomainBasicAuthData
     attrConstruct _ = constructAuthDomainBasicAuthData
+    attrClear _ = undefined
 
 type instance AttributeList AuthDomainBasic = AuthDomainBasicAttributeList
 type AuthDomainBasicAttributeList = ('[ '("addPath", AuthDomainAddPathPropertyInfo), '("authCallback", AuthDomainBasicAuthCallbackPropertyInfo), '("authData", AuthDomainBasicAuthDataPropertyInfo), '("filter", AuthDomainFilterPropertyInfo), '("filterData", AuthDomainFilterDataPropertyInfo), '("genericAuthCallback", AuthDomainGenericAuthCallbackPropertyInfo), '("genericAuthData", AuthDomainGenericAuthDataPropertyInfo), '("proxy", AuthDomainProxyPropertyInfo), '("realm", AuthDomainRealmPropertyInfo), '("removePath", AuthDomainRemovePathPropertyInfo)] :: [(Symbol, *)])
+
+authDomainBasicAuthCallback :: AttrLabelProxy "authCallback"
+authDomainBasicAuthCallback = AttrLabelProxy
+
+authDomainBasicAuthData :: AttrLabelProxy "authData"
+authDomainBasicAuthData = AttrLabelProxy
 
 type instance SignalList AuthDomainBasic = AuthDomainBasicSignalList
 type AuthDomainBasicSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
diff --git a/GI/Soup/Objects/AuthDomainBasic.hs-boot b/GI/Soup/Objects/AuthDomainBasic.hs-boot
--- a/GI/Soup/Objects/AuthDomainBasic.hs-boot
+++ b/GI/Soup/Objects/AuthDomainBasic.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.AuthDomainBasic 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/Soup/Objects/AuthDomainDigest.hs b/GI/Soup/Objects/AuthDomainDigest.hs
--- a/GI/Soup/Objects/AuthDomainDigest.hs
+++ b/GI/Soup/Objects/AuthDomainDigest.hs
@@ -26,6 +26,7 @@
  -- * Properties
 -- ** AuthCallback
     AuthDomainDigestAuthCallbackPropertyInfo,
+    authDomainDigestAuthCallback            ,
     constructAuthDomainDigestAuthCallback   ,
     getAuthDomainDigestAuthCallback         ,
     setAuthDomainDigestAuthCallback         ,
@@ -33,6 +34,7 @@
 
 -- ** AuthData
     AuthDomainDigestAuthDataPropertyInfo    ,
+    authDomainDigestAuthData                ,
     constructAuthDomainDigestAuthData       ,
     getAuthDomainDigestAuthData             ,
     setAuthDomainDigestAuthData             ,
@@ -42,9 +44,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
@@ -120,16 +122,17 @@
 #endif
 
 -- VVV Prop "auth-callback"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthDomainDigestAuthCallback :: (MonadIO m, AuthDomainDigestK o) => o -> m (Ptr ())
 getAuthDomainDigestAuthCallback obj = liftIO $ getObjectPropertyPtr obj "auth-callback"
 
-setAuthDomainDigestAuthCallback :: (MonadIO m, AuthDomainDigestK o) => o -> (Ptr ()) -> m ()
+setAuthDomainDigestAuthCallback :: (MonadIO m, AuthDomainDigestK o) => o -> Ptr () -> m ()
 setAuthDomainDigestAuthCallback obj val = liftIO $ setObjectPropertyPtr obj "auth-callback" val
 
-constructAuthDomainDigestAuthCallback :: (Ptr ()) -> IO ([Char], GValue)
+constructAuthDomainDigestAuthCallback :: Ptr () -> IO ([Char], GValue)
 constructAuthDomainDigestAuthCallback val = constructObjectPropertyPtr "auth-callback" val
 
 data AuthDomainDigestAuthCallbackPropertyInfo
@@ -142,18 +145,20 @@
     attrGet _ = getAuthDomainDigestAuthCallback
     attrSet _ = setAuthDomainDigestAuthCallback
     attrConstruct _ = constructAuthDomainDigestAuthCallback
+    attrClear _ = undefined
 
 -- VVV Prop "auth-data"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getAuthDomainDigestAuthData :: (MonadIO m, AuthDomainDigestK o) => o -> m (Ptr ())
 getAuthDomainDigestAuthData obj = liftIO $ getObjectPropertyPtr obj "auth-data"
 
-setAuthDomainDigestAuthData :: (MonadIO m, AuthDomainDigestK o) => o -> (Ptr ()) -> m ()
+setAuthDomainDigestAuthData :: (MonadIO m, AuthDomainDigestK o) => o -> Ptr () -> m ()
 setAuthDomainDigestAuthData obj val = liftIO $ setObjectPropertyPtr obj "auth-data" val
 
-constructAuthDomainDigestAuthData :: (Ptr ()) -> IO ([Char], GValue)
+constructAuthDomainDigestAuthData :: Ptr () -> IO ([Char], GValue)
 constructAuthDomainDigestAuthData val = constructObjectPropertyPtr "auth-data" val
 
 data AuthDomainDigestAuthDataPropertyInfo
@@ -166,10 +171,17 @@
     attrGet _ = getAuthDomainDigestAuthData
     attrSet _ = setAuthDomainDigestAuthData
     attrConstruct _ = constructAuthDomainDigestAuthData
+    attrClear _ = undefined
 
 type instance AttributeList AuthDomainDigest = AuthDomainDigestAttributeList
 type AuthDomainDigestAttributeList = ('[ '("addPath", AuthDomainAddPathPropertyInfo), '("authCallback", AuthDomainDigestAuthCallbackPropertyInfo), '("authData", AuthDomainDigestAuthDataPropertyInfo), '("filter", AuthDomainFilterPropertyInfo), '("filterData", AuthDomainFilterDataPropertyInfo), '("genericAuthCallback", AuthDomainGenericAuthCallbackPropertyInfo), '("genericAuthData", AuthDomainGenericAuthDataPropertyInfo), '("proxy", AuthDomainProxyPropertyInfo), '("realm", AuthDomainRealmPropertyInfo), '("removePath", AuthDomainRemovePathPropertyInfo)] :: [(Symbol, *)])
 
+authDomainDigestAuthCallback :: AttrLabelProxy "authCallback"
+authDomainDigestAuthCallback = AttrLabelProxy
+
+authDomainDigestAuthData :: AttrLabelProxy "authData"
+authDomainDigestAuthData = AttrLabelProxy
+
 type instance SignalList AuthDomainDigest = AuthDomainDigestSignalList
 type AuthDomainDigestSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
@@ -177,7 +189,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "username", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "realm", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", 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
 
diff --git a/GI/Soup/Objects/AuthDomainDigest.hs-boot b/GI/Soup/Objects/AuthDomainDigest.hs-boot
--- a/GI/Soup/Objects/AuthDomainDigest.hs-boot
+++ b/GI/Soup/Objects/AuthDomainDigest.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.AuthDomainDigest 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/Soup/Objects/AuthManager.hs b/GI/Soup/Objects/AuthManager.hs
--- a/GI/Soup/Objects/AuthManager.hs
+++ b/GI/Soup/Objects/AuthManager.hs
@@ -41,9 +41,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
@@ -177,7 +177,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "AuthManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth", argType = TInterface "Soup" "Auth", 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/Soup/Objects/AuthManager.hs-boot b/GI/Soup/Objects/AuthManager.hs-boot
--- a/GI/Soup/Objects/AuthManager.hs-boot
+++ b/GI/Soup/Objects/AuthManager.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.AuthManager 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/Soup/Objects/AuthNTLM.hs b/GI/Soup/Objects/AuthNTLM.hs
--- a/GI/Soup/Objects/AuthNTLM.hs
+++ b/GI/Soup/Objects/AuthNTLM.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/Soup/Objects/AuthNTLM.hs-boot b/GI/Soup/Objects/AuthNTLM.hs-boot
--- a/GI/Soup/Objects/AuthNTLM.hs-boot
+++ b/GI/Soup/Objects/AuthNTLM.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.AuthNTLM 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/Soup/Objects/Cache.hs b/GI/Soup/Objects/Cache.hs
--- a/GI/Soup/Objects/Cache.hs
+++ b/GI/Soup/Objects/Cache.hs
@@ -56,12 +56,14 @@
  -- * Properties
 -- ** CacheDir
     CacheCacheDirPropertyInfo               ,
+    cacheCacheDir                           ,
     constructCacheCacheDir                  ,
     getCacheCacheDir                        ,
 
 
 -- ** CacheType
     CacheCacheTypePropertyInfo              ,
+    cacheCacheType                          ,
     constructCacheCacheType                 ,
     getCacheCacheType                       ,
 
@@ -70,9 +72,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
@@ -149,27 +151,30 @@
 -- VVV Prop "cache-dir"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
-getCacheCacheDir :: (MonadIO m, CacheK o) => o -> m T.Text
+getCacheCacheDir :: (MonadIO m, CacheK o) => o -> m (Maybe T.Text)
 getCacheCacheDir obj = liftIO $ getObjectPropertyString obj "cache-dir"
 
 constructCacheCacheDir :: T.Text -> IO ([Char], GValue)
-constructCacheCacheDir val = constructObjectPropertyString "cache-dir" val
+constructCacheCacheDir val = constructObjectPropertyString "cache-dir" (Just val)
 
 data CacheCacheDirPropertyInfo
 instance AttrInfo CacheCacheDirPropertyInfo where
-    type AttrAllowedOps CacheCacheDirPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps CacheCacheDirPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint CacheCacheDirPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint CacheCacheDirPropertyInfo = CacheK
-    type AttrGetType CacheCacheDirPropertyInfo = T.Text
+    type AttrGetType CacheCacheDirPropertyInfo = (Maybe T.Text)
     type AttrLabel CacheCacheDirPropertyInfo = "cache-dir"
     attrGet _ = getCacheCacheDir
     attrSet _ = undefined
     attrConstruct _ = constructCacheCacheDir
+    attrClear _ = undefined
 
 -- VVV Prop "cache-type"
    -- Type: TInterface "Soup" "CacheType"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getCacheCacheType :: (MonadIO m, CacheK o) => o -> m CacheType
 getCacheCacheType obj = liftIO $ getObjectPropertyEnum obj "cache-type"
@@ -187,10 +192,17 @@
     attrGet _ = getCacheCacheType
     attrSet _ = undefined
     attrConstruct _ = constructCacheCacheType
+    attrClear _ = undefined
 
 type instance AttributeList Cache = CacheAttributeList
 type CacheAttributeList = ('[ '("cacheDir", CacheCacheDirPropertyInfo), '("cacheType", CacheCacheTypePropertyInfo)] :: [(Symbol, *)])
 
+cacheCacheDir :: AttrLabelProxy "cacheDir"
+cacheCacheDir = AttrLabelProxy
+
+cacheCacheType :: AttrLabelProxy "cacheType"
+cacheCacheType = AttrLabelProxy
+
 type instance SignalList Cache = CacheSignalList
 type CacheSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
@@ -198,7 +210,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "cache_dir", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cache_type", argType = TInterface "Soup" "CacheType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Cache"
+-- returnType : Just (TInterface "Soup" "Cache")
 -- throws : False
 -- Skip return : False
 
@@ -226,7 +238,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cache", 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
 
@@ -253,7 +265,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cache", 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
 
@@ -280,7 +292,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cache", 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
 
@@ -307,7 +319,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -334,7 +346,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cache", 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
 
@@ -359,15 +371,15 @@
 
 -- method Cache::set_max_size
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_size", 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 "soup_cache_set_max_size" soup_cache_set_max_size :: 
     Ptr Cache ->                            -- _obj : TInterface "Soup" "Cache"
-    Word32 ->                               -- max_size : TBasicType TUInt32
+    Word32 ->                               -- max_size : TBasicType TUInt
     IO ()
 
 
diff --git a/GI/Soup/Objects/Cache.hs-boot b/GI/Soup/Objects/Cache.hs-boot
--- a/GI/Soup/Objects/Cache.hs-boot
+++ b/GI/Soup/Objects/Cache.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.Cache 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/Soup/Objects/ContentDecoder.hs b/GI/Soup/Objects/ContentDecoder.hs
--- a/GI/Soup/Objects/ContentDecoder.hs
+++ b/GI/Soup/Objects/ContentDecoder.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/Soup/Objects/ContentDecoder.hs-boot b/GI/Soup/Objects/ContentDecoder.hs-boot
--- a/GI/Soup/Objects/ContentDecoder.hs-boot
+++ b/GI/Soup/Objects/ContentDecoder.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.ContentDecoder 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/Soup/Objects/ContentSniffer.hs b/GI/Soup/Objects/ContentSniffer.hs
--- a/GI/Soup/Objects/ContentSniffer.hs
+++ b/GI/Soup/Objects/ContentSniffer.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
@@ -117,7 +117,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Soup" "ContentSniffer"
+-- returnType : Just (TInterface "Soup" "ContentSniffer")
 -- throws : False
 -- Skip return : False
 
@@ -138,7 +138,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ContentSniffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt64
+-- returnType : Just (TBasicType TUInt64)
 -- throws : False
 -- Skip return : False
 
@@ -165,7 +165,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ContentSniffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TInterface "Soup" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TGHash (TBasicType TUTF8) (TBasicType TUTF8), 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
 
diff --git a/GI/Soup/Objects/ContentSniffer.hs-boot b/GI/Soup/Objects/ContentSniffer.hs-boot
--- a/GI/Soup/Objects/ContentSniffer.hs-boot
+++ b/GI/Soup/Objects/ContentSniffer.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.ContentSniffer 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/Soup/Objects/CookieJar.hs b/GI/Soup/Objects/CookieJar.hs
--- a/GI/Soup/Objects/CookieJar.hs
+++ b/GI/Soup/Objects/CookieJar.hs
@@ -87,6 +87,7 @@
 -- ** AcceptPolicy
     CookieJarAcceptPolicyPropertyInfo       ,
     constructCookieJarAcceptPolicy          ,
+    cookieJarAcceptPolicy                   ,
     getCookieJarAcceptPolicy                ,
     setCookieJarAcceptPolicy                ,
 
@@ -94,6 +95,7 @@
 -- ** ReadOnly
     CookieJarReadOnlyPropertyInfo           ,
     constructCookieJarReadOnly              ,
+    cookieJarReadOnly                       ,
     getCookieJarReadOnly                    ,
 
 
@@ -116,9 +118,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
@@ -247,6 +249,7 @@
 -- VVV Prop "accept-policy"
    -- Type: TInterface "Soup" "CookieJarAcceptPolicy"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Just False,Just False)
 
 getCookieJarAcceptPolicy :: (MonadIO m, CookieJarK o) => o -> m CookieJarAcceptPolicy
 getCookieJarAcceptPolicy obj = liftIO $ getObjectPropertyEnum obj "accept-policy"
@@ -267,10 +270,12 @@
     attrGet _ = getCookieJarAcceptPolicy
     attrSet _ = setCookieJarAcceptPolicy
     attrConstruct _ = constructCookieJarAcceptPolicy
+    attrClear _ = undefined
 
 -- VVV Prop "read-only"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getCookieJarReadOnly :: (MonadIO m, CookieJarK o) => o -> m Bool
 getCookieJarReadOnly obj = liftIO $ getObjectPropertyBool obj "read-only"
@@ -288,10 +293,17 @@
     attrGet _ = getCookieJarReadOnly
     attrSet _ = undefined
     attrConstruct _ = constructCookieJarReadOnly
+    attrClear _ = undefined
 
 type instance AttributeList CookieJar = CookieJarAttributeList
 type CookieJarAttributeList = ('[ '("acceptPolicy", CookieJarAcceptPolicyPropertyInfo), '("readOnly", CookieJarReadOnlyPropertyInfo)] :: [(Symbol, *)])
 
+cookieJarAcceptPolicy :: AttrLabelProxy "acceptPolicy"
+cookieJarAcceptPolicy = AttrLabelProxy
+
+cookieJarReadOnly :: AttrLabelProxy "readOnly"
+cookieJarReadOnly = AttrLabelProxy
+
 data CookieJarChangedSignalInfo
 instance SignalInfo CookieJarChangedSignalInfo where
     type HaskellCallbackType CookieJarChangedSignalInfo = CookieJarChangedCallback
@@ -304,7 +316,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Soup" "CookieJar"
+-- returnType : Just (TInterface "Soup" "CookieJar")
 -- throws : False
 -- Skip return : False
 
@@ -325,7 +337,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cookie", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -356,7 +368,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "first_party", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cookie", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -391,7 +403,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TInterface "Soup" "Cookie")
+-- returnType : Just (TGSList (TInterface "Soup" "Cookie"))
 -- throws : False
 -- Skip return : False
 
@@ -407,7 +419,6 @@
 cookieJarAllCookies _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_cookie_jar_all_cookies _obj'
-    checkUnexpectedReturnNULL "soup_cookie_jar_all_cookies" result
     result' <- unpackGSList result
     result'' <- mapM (wrapBoxed Cookie) result'
     g_slist_free result
@@ -422,7 +433,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cookie", argType = TInterface "Soup" "Cookie", 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
 
@@ -453,7 +464,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "CookieJarAcceptPolicy"
+-- returnType : Just (TInterface "Soup" "CookieJarAcceptPolicy")
 -- throws : False
 -- Skip return : False
 
@@ -481,7 +492,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "for_http", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TInterface "Soup" "Cookie")
+-- returnType : Just (TGSList (TInterface "Soup" "Cookie"))
 -- throws : False
 -- Skip return : False
 
@@ -503,7 +514,6 @@
     let uri' = unsafeManagedPtrGetPtr uri
     let forHttp' = (fromIntegral . fromEnum) forHttp
     result <- soup_cookie_jar_get_cookie_list _obj' uri' forHttp'
-    checkUnexpectedReturnNULL "soup_cookie_jar_get_cookie_list" result
     result' <- unpackGSList result
     result'' <- mapM (wrapBoxed Cookie) result'
     g_slist_free result
@@ -519,7 +529,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "for_http", argType = TBasicType TBoolean, 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
 
@@ -535,28 +545,29 @@
     a                                       -- _obj
     -> URI                                  -- uri
     -> Bool                                 -- forHttp
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 cookieJarGetCookies _obj uri forHttp = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let uri' = unsafeManagedPtrGetPtr uri
     let forHttp' = (fromIntegral . fromEnum) forHttp
     result <- soup_cookie_jar_get_cookies _obj' uri' forHttp'
-    checkUnexpectedReturnNULL "soup_cookie_jar_get_cookies" result
-    result' <- cstringToText result
-    freeMem result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        freeMem result'
+        return result''
     touchManagedPtr _obj
     touchManagedPtr uri
-    return result'
+    return maybeResult
 
 data CookieJarGetCookiesMethodInfo
-instance (signature ~ (URI -> Bool -> m T.Text), MonadIO m, CookieJarK a) => MethodInfo CookieJarGetCookiesMethodInfo a signature where
+instance (signature ~ (URI -> Bool -> m (Maybe T.Text)), MonadIO m, CookieJarK a) => MethodInfo CookieJarGetCookiesMethodInfo a signature where
     overloadedMethod _ = cookieJarGetCookies
 
 -- method CookieJar::is_persistent
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", 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
 
@@ -584,7 +595,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", 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
 
@@ -611,7 +622,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "policy", argType = TInterface "Soup" "CookieJarAcceptPolicy", 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
 
@@ -641,7 +652,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cookie", 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
 
@@ -676,7 +687,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "CookieJar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "first_party", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cookie", 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/Soup/Objects/CookieJar.hs-boot b/GI/Soup/Objects/CookieJar.hs-boot
--- a/GI/Soup/Objects/CookieJar.hs-boot
+++ b/GI/Soup/Objects/CookieJar.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.CookieJar 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/Soup/Objects/CookieJarDB.hs b/GI/Soup/Objects/CookieJarDB.hs
--- a/GI/Soup/Objects/CookieJarDB.hs
+++ b/GI/Soup/Objects/CookieJarDB.hs
@@ -27,6 +27,7 @@
 -- ** Filename
     CookieJarDBFilenamePropertyInfo         ,
     constructCookieJarDBFilename            ,
+    cookieJarDBFilename                     ,
     getCookieJarDBFilename                  ,
 
 
@@ -34,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
@@ -119,27 +120,32 @@
 -- VVV Prop "filename"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
-getCookieJarDBFilename :: (MonadIO m, CookieJarDBK o) => o -> m T.Text
+getCookieJarDBFilename :: (MonadIO m, CookieJarDBK o) => o -> m (Maybe T.Text)
 getCookieJarDBFilename obj = liftIO $ getObjectPropertyString obj "filename"
 
 constructCookieJarDBFilename :: T.Text -> IO ([Char], GValue)
-constructCookieJarDBFilename val = constructObjectPropertyString "filename" val
+constructCookieJarDBFilename val = constructObjectPropertyString "filename" (Just val)
 
 data CookieJarDBFilenamePropertyInfo
 instance AttrInfo CookieJarDBFilenamePropertyInfo where
-    type AttrAllowedOps CookieJarDBFilenamePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps CookieJarDBFilenamePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint CookieJarDBFilenamePropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint CookieJarDBFilenamePropertyInfo = CookieJarDBK
-    type AttrGetType CookieJarDBFilenamePropertyInfo = T.Text
+    type AttrGetType CookieJarDBFilenamePropertyInfo = (Maybe T.Text)
     type AttrLabel CookieJarDBFilenamePropertyInfo = "filename"
     attrGet _ = getCookieJarDBFilename
     attrSet _ = undefined
     attrConstruct _ = constructCookieJarDBFilename
+    attrClear _ = undefined
 
 type instance AttributeList CookieJarDB = CookieJarDBAttributeList
 type CookieJarDBAttributeList = ('[ '("acceptPolicy", CookieJarAcceptPolicyPropertyInfo), '("filename", CookieJarDBFilenamePropertyInfo), '("readOnly", CookieJarReadOnlyPropertyInfo)] :: [(Symbol, *)])
 
+cookieJarDBFilename :: AttrLabelProxy "filename"
+cookieJarDBFilename = AttrLabelProxy
+
 type instance SignalList CookieJarDB = CookieJarDBSignalList
 type CookieJarDBSignalList = ('[ '("changed", CookieJarChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
@@ -147,7 +153,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "read_only", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "CookieJarDB"
+-- returnType : Just (TInterface "Soup" "CookieJarDB")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Objects/CookieJarDB.hs-boot b/GI/Soup/Objects/CookieJarDB.hs-boot
--- a/GI/Soup/Objects/CookieJarDB.hs-boot
+++ b/GI/Soup/Objects/CookieJarDB.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.CookieJarDB 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/Soup/Objects/CookieJarText.hs b/GI/Soup/Objects/CookieJarText.hs
--- a/GI/Soup/Objects/CookieJarText.hs
+++ b/GI/Soup/Objects/CookieJarText.hs
@@ -27,6 +27,7 @@
 -- ** Filename
     CookieJarTextFilenamePropertyInfo       ,
     constructCookieJarTextFilename          ,
+    cookieJarTextFilename                   ,
     getCookieJarTextFilename                ,
 
 
@@ -34,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
@@ -119,27 +120,32 @@
 -- VVV Prop "filename"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
-getCookieJarTextFilename :: (MonadIO m, CookieJarTextK o) => o -> m T.Text
+getCookieJarTextFilename :: (MonadIO m, CookieJarTextK o) => o -> m (Maybe T.Text)
 getCookieJarTextFilename obj = liftIO $ getObjectPropertyString obj "filename"
 
 constructCookieJarTextFilename :: T.Text -> IO ([Char], GValue)
-constructCookieJarTextFilename val = constructObjectPropertyString "filename" val
+constructCookieJarTextFilename val = constructObjectPropertyString "filename" (Just val)
 
 data CookieJarTextFilenamePropertyInfo
 instance AttrInfo CookieJarTextFilenamePropertyInfo where
-    type AttrAllowedOps CookieJarTextFilenamePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps CookieJarTextFilenamePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint CookieJarTextFilenamePropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint CookieJarTextFilenamePropertyInfo = CookieJarTextK
-    type AttrGetType CookieJarTextFilenamePropertyInfo = T.Text
+    type AttrGetType CookieJarTextFilenamePropertyInfo = (Maybe T.Text)
     type AttrLabel CookieJarTextFilenamePropertyInfo = "filename"
     attrGet _ = getCookieJarTextFilename
     attrSet _ = undefined
     attrConstruct _ = constructCookieJarTextFilename
+    attrClear _ = undefined
 
 type instance AttributeList CookieJarText = CookieJarTextAttributeList
 type CookieJarTextAttributeList = ('[ '("acceptPolicy", CookieJarAcceptPolicyPropertyInfo), '("filename", CookieJarTextFilenamePropertyInfo), '("readOnly", CookieJarReadOnlyPropertyInfo)] :: [(Symbol, *)])
 
+cookieJarTextFilename :: AttrLabelProxy "filename"
+cookieJarTextFilename = AttrLabelProxy
+
 type instance SignalList CookieJarText = CookieJarTextSignalList
 type CookieJarTextSignalList = ('[ '("changed", CookieJarChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
@@ -147,7 +153,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "read_only", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "CookieJarText"
+-- returnType : Just (TInterface "Soup" "CookieJarText")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Objects/CookieJarText.hs-boot b/GI/Soup/Objects/CookieJarText.hs-boot
--- a/GI/Soup/Objects/CookieJarText.hs-boot
+++ b/GI/Soup/Objects/CookieJarText.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.CookieJarText 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/Soup/Objects/Logger.hs b/GI/Soup/Objects/Logger.hs
--- a/GI/Soup/Objects/Logger.hs
+++ b/GI/Soup/Objects/Logger.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
@@ -130,15 +130,15 @@
 
 -- method Logger::new
 -- method type : Constructor
--- Args : [Arg {argCName = "level", argType = TInterface "Soup" "LoggerLogLevel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_body_size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "level", argType = TInterface "Soup" "LoggerLogLevel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_body_size", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Logger"
+-- returnType : Just (TInterface "Soup" "Logger")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_logger_new" soup_logger_new :: 
     CUInt ->                                -- level : TInterface "Soup" "LoggerLogLevel"
-    Int32 ->                                -- max_body_size : TBasicType TInt32
+    Int32 ->                                -- max_body_size : TBasicType TInt
     IO (Ptr Logger)
 
 
@@ -158,7 +158,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "session", argType = TInterface "Soup" "Session", 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
 
@@ -189,7 +189,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "session", argType = TInterface "Soup" "Session", 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
 
@@ -218,16 +218,16 @@
 
 -- method Logger::set_printer
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "printer", argType = TInterface "Soup" "LoggerPrinter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "printer_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "printer", argType = TInterface "Soup" "LoggerPrinter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "printer_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_logger_set_printer" soup_logger_set_printer :: 
     Ptr Logger ->                           -- _obj : TInterface "Soup" "Logger"
     FunPtr LoggerPrinterC ->                -- printer : TInterface "Soup" "LoggerPrinter"
-    Ptr () ->                               -- printer_data : TBasicType TVoid
+    Ptr () ->                               -- printer_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -252,16 +252,16 @@
 
 -- method Logger::set_request_filter
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "request_filter", argType = TInterface "Soup" "LoggerFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "request_filter", argType = TInterface "Soup" "LoggerFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_logger_set_request_filter" soup_logger_set_request_filter :: 
     Ptr Logger ->                           -- _obj : TInterface "Soup" "Logger"
     FunPtr LoggerFilterC ->                 -- request_filter : TInterface "Soup" "LoggerFilter"
-    Ptr () ->                               -- filter_data : TBasicType TVoid
+    Ptr () ->                               -- filter_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -286,16 +286,16 @@
 
 -- method Logger::set_response_filter
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "response_filter", argType = TInterface "Soup" "LoggerFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "response_filter", argType = TInterface "Soup" "LoggerFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_logger_set_response_filter" soup_logger_set_response_filter :: 
     Ptr Logger ->                           -- _obj : TInterface "Soup" "Logger"
     FunPtr LoggerFilterC ->                 -- response_filter : TInterface "Soup" "LoggerFilter"
-    Ptr () ->                               -- filter_data : TBasicType TVoid
+    Ptr () ->                               -- filter_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
     IO ()
 
diff --git a/GI/Soup/Objects/Logger.hs-boot b/GI/Soup/Objects/Logger.hs-boot
--- a/GI/Soup/Objects/Logger.hs-boot
+++ b/GI/Soup/Objects/Logger.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.Logger 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/Soup/Objects/Message.hs b/GI/Soup/Objects/Message.hs
--- a/GI/Soup/Objects/Message.hs
+++ b/GI/Soup/Objects/Message.hs
@@ -202,6 +202,7 @@
     MessageFirstPartyPropertyInfo           ,
     constructMessageFirstParty              ,
     getMessageFirstParty                    ,
+    messageFirstParty                       ,
     setMessageFirstParty                    ,
 
 
@@ -209,6 +210,7 @@
     MessageFlagsPropertyInfo                ,
     constructMessageFlags                   ,
     getMessageFlags                         ,
+    messageFlags                            ,
     setMessageFlags                         ,
 
 
@@ -216,13 +218,16 @@
     MessageHttpVersionPropertyInfo          ,
     constructMessageHttpVersion             ,
     getMessageHttpVersion                   ,
+    messageHttpVersion                      ,
     setMessageHttpVersion                   ,
 
 
 -- ** Method
     MessageMethodPropertyInfo               ,
+    clearMessageMethod                      ,
     constructMessageMethod                  ,
     getMessageMethod                        ,
+    messageMethod                           ,
     setMessageMethod                        ,
 
 
@@ -230,63 +235,76 @@
     MessagePriorityPropertyInfo             ,
     constructMessagePriority                ,
     getMessagePriority                      ,
+    messagePriority                         ,
     setMessagePriority                      ,
 
 
 -- ** ReasonPhrase
     MessageReasonPhrasePropertyInfo         ,
+    clearMessageReasonPhrase                ,
     constructMessageReasonPhrase            ,
     getMessageReasonPhrase                  ,
+    messageReasonPhrase                     ,
     setMessageReasonPhrase                  ,
 
 
 -- ** RequestBody
     MessageRequestBodyPropertyInfo          ,
     getMessageRequestBody                   ,
+    messageRequestBody                      ,
 
 
 -- ** RequestBodyData
     MessageRequestBodyDataPropertyInfo      ,
     getMessageRequestBodyData               ,
+    messageRequestBodyData                  ,
 
 
 -- ** RequestHeaders
     MessageRequestHeadersPropertyInfo       ,
     getMessageRequestHeaders                ,
+    messageRequestHeaders                   ,
 
 
 -- ** ResponseBody
     MessageResponseBodyPropertyInfo         ,
     getMessageResponseBody                  ,
+    messageResponseBody                     ,
 
 
 -- ** ResponseBodyData
     MessageResponseBodyDataPropertyInfo     ,
     getMessageResponseBodyData              ,
+    messageResponseBodyData                 ,
 
 
 -- ** ResponseHeaders
     MessageResponseHeadersPropertyInfo      ,
     getMessageResponseHeaders               ,
+    messageResponseHeaders                  ,
 
 
 -- ** ServerSide
     MessageServerSidePropertyInfo           ,
     constructMessageServerSide              ,
     getMessageServerSide                    ,
+    messageServerSide                       ,
 
 
 -- ** StatusCode
     MessageStatusCodePropertyInfo           ,
     constructMessageStatusCode              ,
     getMessageStatusCode                    ,
+    messageStatusCode                       ,
     setMessageStatusCode                    ,
 
 
 -- ** TlsCertificate
     MessageTlsCertificatePropertyInfo       ,
+    clearMessageTlsCertificate              ,
     constructMessageTlsCertificate          ,
     getMessageTlsCertificate                ,
+    messageTlsCertificate                   ,
     setMessageTlsCertificate                ,
 
 
@@ -294,6 +312,7 @@
     MessageTlsErrorsPropertyInfo            ,
     constructMessageTlsErrors               ,
     getMessageTlsErrors                     ,
+    messageTlsErrors                        ,
     setMessageTlsErrors                     ,
 
 
@@ -301,6 +320,7 @@
     MessageUriPropertyInfo                  ,
     constructMessageUri                     ,
     getMessageUri                           ,
+    messageUri                              ,
     setMessageUri                           ,
 
 
@@ -479,9 +499,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
@@ -1144,15 +1164,16 @@
 -- VVV Prop "first-party"
    -- Type: TInterface "Soup" "URI"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Just False,Just False)
 
 getMessageFirstParty :: (MonadIO m, MessageK o) => o -> m URI
-getMessageFirstParty obj = liftIO $ getObjectPropertyBoxed obj "first-party" URI
+getMessageFirstParty obj = liftIO $ checkUnexpectedNothing "getMessageFirstParty" $ getObjectPropertyBoxed obj "first-party" URI
 
 setMessageFirstParty :: (MonadIO m, MessageK o) => o -> URI -> m ()
-setMessageFirstParty obj val = liftIO $ setObjectPropertyBoxed obj "first-party" val
+setMessageFirstParty obj val = liftIO $ setObjectPropertyBoxed obj "first-party" (Just val)
 
 constructMessageFirstParty :: URI -> IO ([Char], GValue)
-constructMessageFirstParty val = constructObjectPropertyBoxed "first-party" val
+constructMessageFirstParty val = constructObjectPropertyBoxed "first-party" (Just val)
 
 data MessageFirstPartyPropertyInfo
 instance AttrInfo MessageFirstPartyPropertyInfo where
@@ -1164,10 +1185,12 @@
     attrGet _ = getMessageFirstParty
     attrSet _ = setMessageFirstParty
     attrConstruct _ = constructMessageFirstParty
+    attrClear _ = undefined
 
 -- VVV Prop "flags"
    -- Type: TInterface "Soup" "MessageFlags"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Just False,Just False)
 
 getMessageFlags :: (MonadIO m, MessageK o) => o -> m [MessageFlags]
 getMessageFlags obj = liftIO $ getObjectPropertyFlags obj "flags"
@@ -1188,10 +1211,12 @@
     attrGet _ = getMessageFlags
     attrSet _ = setMessageFlags
     attrConstruct _ = constructMessageFlags
+    attrClear _ = undefined
 
 -- VVV Prop "http-version"
    -- Type: TInterface "Soup" "HTTPVersion"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Just False,Just False)
 
 getMessageHttpVersion :: (MonadIO m, MessageK o) => o -> m HTTPVersion
 getMessageHttpVersion obj = liftIO $ getObjectPropertyEnum obj "http-version"
@@ -1212,34 +1237,41 @@
     attrGet _ = getMessageHttpVersion
     attrSet _ = setMessageHttpVersion
     attrConstruct _ = constructMessageHttpVersion
+    attrClear _ = undefined
 
 -- VVV Prop "method"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getMessageMethod :: (MonadIO m, MessageK o) => o -> m T.Text
+getMessageMethod :: (MonadIO m, MessageK o) => o -> m (Maybe T.Text)
 getMessageMethod obj = liftIO $ getObjectPropertyString obj "method"
 
 setMessageMethod :: (MonadIO m, MessageK o) => o -> T.Text -> m ()
-setMessageMethod obj val = liftIO $ setObjectPropertyString obj "method" val
+setMessageMethod obj val = liftIO $ setObjectPropertyString obj "method" (Just val)
 
 constructMessageMethod :: T.Text -> IO ([Char], GValue)
-constructMessageMethod val = constructObjectPropertyString "method" val
+constructMessageMethod val = constructObjectPropertyString "method" (Just val)
 
+clearMessageMethod :: (MonadIO m, MessageK o) => o -> m ()
+clearMessageMethod obj = liftIO $ setObjectPropertyString obj "method" (Nothing :: Maybe T.Text)
+
 data MessageMethodPropertyInfo
 instance AttrInfo MessageMethodPropertyInfo where
-    type AttrAllowedOps MessageMethodPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps MessageMethodPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint MessageMethodPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint MessageMethodPropertyInfo = MessageK
-    type AttrGetType MessageMethodPropertyInfo = T.Text
+    type AttrGetType MessageMethodPropertyInfo = (Maybe T.Text)
     type AttrLabel MessageMethodPropertyInfo = "method"
     attrGet _ = getMessageMethod
     attrSet _ = setMessageMethod
     attrConstruct _ = constructMessageMethod
+    attrClear _ = clearMessageMethod
 
 -- VVV Prop "priority"
    -- Type: TInterface "Soup" "MessagePriority"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Just False,Just False)
 
 getMessagePriority :: (MonadIO m, MessageK o) => o -> m MessagePriority
 getMessagePriority obj = liftIO $ getObjectPropertyEnum obj "priority"
@@ -1260,142 +1292,161 @@
     attrGet _ = getMessagePriority
     attrSet _ = setMessagePriority
     attrConstruct _ = constructMessagePriority
+    attrClear _ = undefined
 
 -- VVV Prop "reason-phrase"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getMessageReasonPhrase :: (MonadIO m, MessageK o) => o -> m T.Text
+getMessageReasonPhrase :: (MonadIO m, MessageK o) => o -> m (Maybe T.Text)
 getMessageReasonPhrase obj = liftIO $ getObjectPropertyString obj "reason-phrase"
 
 setMessageReasonPhrase :: (MonadIO m, MessageK o) => o -> T.Text -> m ()
-setMessageReasonPhrase obj val = liftIO $ setObjectPropertyString obj "reason-phrase" val
+setMessageReasonPhrase obj val = liftIO $ setObjectPropertyString obj "reason-phrase" (Just val)
 
 constructMessageReasonPhrase :: T.Text -> IO ([Char], GValue)
-constructMessageReasonPhrase val = constructObjectPropertyString "reason-phrase" val
+constructMessageReasonPhrase val = constructObjectPropertyString "reason-phrase" (Just val)
 
+clearMessageReasonPhrase :: (MonadIO m, MessageK o) => o -> m ()
+clearMessageReasonPhrase obj = liftIO $ setObjectPropertyString obj "reason-phrase" (Nothing :: Maybe T.Text)
+
 data MessageReasonPhrasePropertyInfo
 instance AttrInfo MessageReasonPhrasePropertyInfo where
-    type AttrAllowedOps MessageReasonPhrasePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps MessageReasonPhrasePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint MessageReasonPhrasePropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint MessageReasonPhrasePropertyInfo = MessageK
-    type AttrGetType MessageReasonPhrasePropertyInfo = T.Text
+    type AttrGetType MessageReasonPhrasePropertyInfo = (Maybe T.Text)
     type AttrLabel MessageReasonPhrasePropertyInfo = "reason-phrase"
     attrGet _ = getMessageReasonPhrase
     attrSet _ = setMessageReasonPhrase
     attrConstruct _ = constructMessageReasonPhrase
+    attrClear _ = clearMessageReasonPhrase
 
 -- VVV Prop "request-body"
    -- Type: TInterface "Soup" "MessageBody"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getMessageRequestBody :: (MonadIO m, MessageK o) => o -> m MessageBody
+getMessageRequestBody :: (MonadIO m, MessageK o) => o -> m (Maybe MessageBody)
 getMessageRequestBody obj = liftIO $ getObjectPropertyBoxed obj "request-body" MessageBody
 
 data MessageRequestBodyPropertyInfo
 instance AttrInfo MessageRequestBodyPropertyInfo where
-    type AttrAllowedOps MessageRequestBodyPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps MessageRequestBodyPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint MessageRequestBodyPropertyInfo = (~) ()
     type AttrBaseTypeConstraint MessageRequestBodyPropertyInfo = MessageK
-    type AttrGetType MessageRequestBodyPropertyInfo = MessageBody
+    type AttrGetType MessageRequestBodyPropertyInfo = (Maybe MessageBody)
     type AttrLabel MessageRequestBodyPropertyInfo = "request-body"
     attrGet _ = getMessageRequestBody
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "request-body-data"
    -- Type: TInterface "GLib" "Bytes"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getMessageRequestBodyData :: (MonadIO m, MessageK o) => o -> m GLib.Bytes
+getMessageRequestBodyData :: (MonadIO m, MessageK o) => o -> m (Maybe GLib.Bytes)
 getMessageRequestBodyData obj = liftIO $ getObjectPropertyBoxed obj "request-body-data" GLib.Bytes
 
 data MessageRequestBodyDataPropertyInfo
 instance AttrInfo MessageRequestBodyDataPropertyInfo where
-    type AttrAllowedOps MessageRequestBodyDataPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps MessageRequestBodyDataPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint MessageRequestBodyDataPropertyInfo = (~) ()
     type AttrBaseTypeConstraint MessageRequestBodyDataPropertyInfo = MessageK
-    type AttrGetType MessageRequestBodyDataPropertyInfo = GLib.Bytes
+    type AttrGetType MessageRequestBodyDataPropertyInfo = (Maybe GLib.Bytes)
     type AttrLabel MessageRequestBodyDataPropertyInfo = "request-body-data"
     attrGet _ = getMessageRequestBodyData
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "request-headers"
    -- Type: TInterface "Soup" "MessageHeaders"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getMessageRequestHeaders :: (MonadIO m, MessageK o) => o -> m MessageHeaders
+getMessageRequestHeaders :: (MonadIO m, MessageK o) => o -> m (Maybe MessageHeaders)
 getMessageRequestHeaders obj = liftIO $ getObjectPropertyBoxed obj "request-headers" MessageHeaders
 
 data MessageRequestHeadersPropertyInfo
 instance AttrInfo MessageRequestHeadersPropertyInfo where
-    type AttrAllowedOps MessageRequestHeadersPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps MessageRequestHeadersPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint MessageRequestHeadersPropertyInfo = (~) ()
     type AttrBaseTypeConstraint MessageRequestHeadersPropertyInfo = MessageK
-    type AttrGetType MessageRequestHeadersPropertyInfo = MessageHeaders
+    type AttrGetType MessageRequestHeadersPropertyInfo = (Maybe MessageHeaders)
     type AttrLabel MessageRequestHeadersPropertyInfo = "request-headers"
     attrGet _ = getMessageRequestHeaders
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "response-body"
    -- Type: TInterface "Soup" "MessageBody"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getMessageResponseBody :: (MonadIO m, MessageK o) => o -> m MessageBody
+getMessageResponseBody :: (MonadIO m, MessageK o) => o -> m (Maybe MessageBody)
 getMessageResponseBody obj = liftIO $ getObjectPropertyBoxed obj "response-body" MessageBody
 
 data MessageResponseBodyPropertyInfo
 instance AttrInfo MessageResponseBodyPropertyInfo where
-    type AttrAllowedOps MessageResponseBodyPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps MessageResponseBodyPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint MessageResponseBodyPropertyInfo = (~) ()
     type AttrBaseTypeConstraint MessageResponseBodyPropertyInfo = MessageK
-    type AttrGetType MessageResponseBodyPropertyInfo = MessageBody
+    type AttrGetType MessageResponseBodyPropertyInfo = (Maybe MessageBody)
     type AttrLabel MessageResponseBodyPropertyInfo = "response-body"
     attrGet _ = getMessageResponseBody
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "response-body-data"
    -- Type: TInterface "GLib" "Bytes"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getMessageResponseBodyData :: (MonadIO m, MessageK o) => o -> m GLib.Bytes
+getMessageResponseBodyData :: (MonadIO m, MessageK o) => o -> m (Maybe GLib.Bytes)
 getMessageResponseBodyData obj = liftIO $ getObjectPropertyBoxed obj "response-body-data" GLib.Bytes
 
 data MessageResponseBodyDataPropertyInfo
 instance AttrInfo MessageResponseBodyDataPropertyInfo where
-    type AttrAllowedOps MessageResponseBodyDataPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps MessageResponseBodyDataPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint MessageResponseBodyDataPropertyInfo = (~) ()
     type AttrBaseTypeConstraint MessageResponseBodyDataPropertyInfo = MessageK
-    type AttrGetType MessageResponseBodyDataPropertyInfo = GLib.Bytes
+    type AttrGetType MessageResponseBodyDataPropertyInfo = (Maybe GLib.Bytes)
     type AttrLabel MessageResponseBodyDataPropertyInfo = "response-body-data"
     attrGet _ = getMessageResponseBodyData
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "response-headers"
    -- Type: TInterface "Soup" "MessageHeaders"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getMessageResponseHeaders :: (MonadIO m, MessageK o) => o -> m MessageHeaders
+getMessageResponseHeaders :: (MonadIO m, MessageK o) => o -> m (Maybe MessageHeaders)
 getMessageResponseHeaders obj = liftIO $ getObjectPropertyBoxed obj "response-headers" MessageHeaders
 
 data MessageResponseHeadersPropertyInfo
 instance AttrInfo MessageResponseHeadersPropertyInfo where
-    type AttrAllowedOps MessageResponseHeadersPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps MessageResponseHeadersPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint MessageResponseHeadersPropertyInfo = (~) ()
     type AttrBaseTypeConstraint MessageResponseHeadersPropertyInfo = MessageK
-    type AttrGetType MessageResponseHeadersPropertyInfo = MessageHeaders
+    type AttrGetType MessageResponseHeadersPropertyInfo = (Maybe MessageHeaders)
     type AttrLabel MessageResponseHeadersPropertyInfo = "response-headers"
     attrGet _ = getMessageResponseHeaders
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "server-side"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getMessageServerSide :: (MonadIO m, MessageK o) => o -> m Bool
 getMessageServerSide obj = liftIO $ getObjectPropertyBool obj "server-side"
@@ -1413,19 +1464,21 @@
     attrGet _ = getMessageServerSide
     attrSet _ = undefined
     attrConstruct _ = constructMessageServerSide
+    attrClear _ = undefined
 
 -- VVV Prop "status-code"
-   -- Type: TBasicType TUInt32
+   -- Type: TBasicType TUInt
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getMessageStatusCode :: (MonadIO m, MessageK o) => o -> m Word32
-getMessageStatusCode obj = liftIO $ getObjectPropertyCUInt obj "status-code"
+getMessageStatusCode obj = liftIO $ getObjectPropertyUInt32 obj "status-code"
 
 setMessageStatusCode :: (MonadIO m, MessageK o) => o -> Word32 -> m ()
-setMessageStatusCode obj val = liftIO $ setObjectPropertyCUInt obj "status-code" val
+setMessageStatusCode obj val = liftIO $ setObjectPropertyUInt32 obj "status-code" val
 
 constructMessageStatusCode :: Word32 -> IO ([Char], GValue)
-constructMessageStatusCode val = constructObjectPropertyCUInt "status-code" val
+constructMessageStatusCode val = constructObjectPropertyUInt32 "status-code" val
 
 data MessageStatusCodePropertyInfo
 instance AttrInfo MessageStatusCodePropertyInfo where
@@ -1437,34 +1490,41 @@
     attrGet _ = getMessageStatusCode
     attrSet _ = setMessageStatusCode
     attrConstruct _ = constructMessageStatusCode
+    attrClear _ = undefined
 
 -- VVV Prop "tls-certificate"
    -- Type: TInterface "Gio" "TlsCertificate"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getMessageTlsCertificate :: (MonadIO m, MessageK o) => o -> m Gio.TlsCertificate
+getMessageTlsCertificate :: (MonadIO m, MessageK o) => o -> m (Maybe Gio.TlsCertificate)
 getMessageTlsCertificate obj = liftIO $ getObjectPropertyObject obj "tls-certificate" Gio.TlsCertificate
 
 setMessageTlsCertificate :: (MonadIO m, MessageK o, Gio.TlsCertificateK a) => o -> a -> m ()
-setMessageTlsCertificate obj val = liftIO $ setObjectPropertyObject obj "tls-certificate" val
+setMessageTlsCertificate obj val = liftIO $ setObjectPropertyObject obj "tls-certificate" (Just val)
 
 constructMessageTlsCertificate :: (Gio.TlsCertificateK a) => a -> IO ([Char], GValue)
-constructMessageTlsCertificate val = constructObjectPropertyObject "tls-certificate" val
+constructMessageTlsCertificate val = constructObjectPropertyObject "tls-certificate" (Just val)
 
+clearMessageTlsCertificate :: (MonadIO m, MessageK o) => o -> m ()
+clearMessageTlsCertificate obj = liftIO $ setObjectPropertyObject obj "tls-certificate" (Nothing :: Maybe Gio.TlsCertificate)
+
 data MessageTlsCertificatePropertyInfo
 instance AttrInfo MessageTlsCertificatePropertyInfo where
-    type AttrAllowedOps MessageTlsCertificatePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps MessageTlsCertificatePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint MessageTlsCertificatePropertyInfo = Gio.TlsCertificateK
     type AttrBaseTypeConstraint MessageTlsCertificatePropertyInfo = MessageK
-    type AttrGetType MessageTlsCertificatePropertyInfo = Gio.TlsCertificate
+    type AttrGetType MessageTlsCertificatePropertyInfo = (Maybe Gio.TlsCertificate)
     type AttrLabel MessageTlsCertificatePropertyInfo = "tls-certificate"
     attrGet _ = getMessageTlsCertificate
     attrSet _ = setMessageTlsCertificate
     attrConstruct _ = constructMessageTlsCertificate
+    attrClear _ = clearMessageTlsCertificate
 
 -- VVV Prop "tls-errors"
    -- Type: TInterface "Gio" "TlsCertificateFlags"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getMessageTlsErrors :: (MonadIO m, MessageK o) => o -> m [Gio.TlsCertificateFlags]
 getMessageTlsErrors obj = liftIO $ getObjectPropertyFlags obj "tls-errors"
@@ -1485,19 +1545,21 @@
     attrGet _ = getMessageTlsErrors
     attrSet _ = setMessageTlsErrors
     attrConstruct _ = constructMessageTlsErrors
+    attrClear _ = undefined
 
 -- VVV Prop "uri"
    -- Type: TInterface "Soup" "URI"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Just False,Just False)
 
 getMessageUri :: (MonadIO m, MessageK o) => o -> m URI
-getMessageUri obj = liftIO $ getObjectPropertyBoxed obj "uri" URI
+getMessageUri obj = liftIO $ checkUnexpectedNothing "getMessageUri" $ getObjectPropertyBoxed obj "uri" URI
 
 setMessageUri :: (MonadIO m, MessageK o) => o -> URI -> m ()
-setMessageUri obj val = liftIO $ setObjectPropertyBoxed obj "uri" val
+setMessageUri obj val = liftIO $ setObjectPropertyBoxed obj "uri" (Just val)
 
 constructMessageUri :: URI -> IO ([Char], GValue)
-constructMessageUri val = constructObjectPropertyBoxed "uri" val
+constructMessageUri val = constructObjectPropertyBoxed "uri" (Just val)
 
 data MessageUriPropertyInfo
 instance AttrInfo MessageUriPropertyInfo where
@@ -1509,10 +1571,62 @@
     attrGet _ = getMessageUri
     attrSet _ = setMessageUri
     attrConstruct _ = constructMessageUri
+    attrClear _ = undefined
 
 type instance AttributeList Message = MessageAttributeList
 type MessageAttributeList = ('[ '("firstParty", MessageFirstPartyPropertyInfo), '("flags", MessageFlagsPropertyInfo), '("httpVersion", MessageHttpVersionPropertyInfo), '("method", MessageMethodPropertyInfo), '("priority", MessagePriorityPropertyInfo), '("reasonPhrase", MessageReasonPhrasePropertyInfo), '("requestBody", MessageRequestBodyPropertyInfo), '("requestBodyData", MessageRequestBodyDataPropertyInfo), '("requestHeaders", MessageRequestHeadersPropertyInfo), '("responseBody", MessageResponseBodyPropertyInfo), '("responseBodyData", MessageResponseBodyDataPropertyInfo), '("responseHeaders", MessageResponseHeadersPropertyInfo), '("serverSide", MessageServerSidePropertyInfo), '("statusCode", MessageStatusCodePropertyInfo), '("tlsCertificate", MessageTlsCertificatePropertyInfo), '("tlsErrors", MessageTlsErrorsPropertyInfo), '("uri", MessageUriPropertyInfo)] :: [(Symbol, *)])
 
+messageFirstParty :: AttrLabelProxy "firstParty"
+messageFirstParty = AttrLabelProxy
+
+messageFlags :: AttrLabelProxy "flags"
+messageFlags = AttrLabelProxy
+
+messageHttpVersion :: AttrLabelProxy "httpVersion"
+messageHttpVersion = AttrLabelProxy
+
+messageMethod :: AttrLabelProxy "method"
+messageMethod = AttrLabelProxy
+
+messagePriority :: AttrLabelProxy "priority"
+messagePriority = AttrLabelProxy
+
+messageReasonPhrase :: AttrLabelProxy "reasonPhrase"
+messageReasonPhrase = AttrLabelProxy
+
+messageRequestBody :: AttrLabelProxy "requestBody"
+messageRequestBody = AttrLabelProxy
+
+messageRequestBodyData :: AttrLabelProxy "requestBodyData"
+messageRequestBodyData = AttrLabelProxy
+
+messageRequestHeaders :: AttrLabelProxy "requestHeaders"
+messageRequestHeaders = AttrLabelProxy
+
+messageResponseBody :: AttrLabelProxy "responseBody"
+messageResponseBody = AttrLabelProxy
+
+messageResponseBodyData :: AttrLabelProxy "responseBodyData"
+messageResponseBodyData = AttrLabelProxy
+
+messageResponseHeaders :: AttrLabelProxy "responseHeaders"
+messageResponseHeaders = AttrLabelProxy
+
+messageServerSide :: AttrLabelProxy "serverSide"
+messageServerSide = AttrLabelProxy
+
+messageStatusCode :: AttrLabelProxy "statusCode"
+messageStatusCode = AttrLabelProxy
+
+messageTlsCertificate :: AttrLabelProxy "tlsCertificate"
+messageTlsCertificate = AttrLabelProxy
+
+messageTlsErrors :: AttrLabelProxy "tlsErrors"
+messageTlsErrors = AttrLabelProxy
+
+messageUri :: AttrLabelProxy "uri"
+messageUri = AttrLabelProxy
+
 data MessageContentSniffedSignalInfo
 instance SignalInfo MessageContentSniffedSignalInfo where
     type HaskellCallbackType MessageContentSniffedSignalInfo = MessageContentSniffedCallback
@@ -1590,7 +1704,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "method", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Message"
+-- returnType : Just (TInterface "Soup" "Message")
 -- throws : False
 -- Skip return : False
 
@@ -1604,22 +1718,23 @@
     (MonadIO m) =>
     T.Text                                  -- method
     -> T.Text                               -- uriString
-    -> m Message                            -- result
+    -> m (Maybe Message)                    -- result
 messageNew method uriString = liftIO $ do
     method' <- textToCString method
     uriString' <- textToCString uriString
     result <- soup_message_new method' uriString'
-    checkUnexpectedReturnNULL "soup_message_new" result
-    result' <- (wrapObject Message) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapObject Message) result'
+        return result''
     freeMem method'
     freeMem uriString'
-    return result'
+    return maybeResult
 
 -- method Message::new_from_uri
 -- method type : Constructor
 -- Args : [Arg {argCName = "method", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Message"
+-- returnType : Just (TInterface "Soup" "Message")
 -- throws : False
 -- Skip return : False
 
@@ -1646,16 +1761,16 @@
 
 -- method Message::content_sniffed
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TGHash (TBasicType TPtr) (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 "soup_message_content_sniffed" soup_message_content_sniffed :: 
     Ptr Message ->                          -- _obj : TInterface "Soup" "Message"
     CString ->                              -- content_type : TBasicType TUTF8
-    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- params : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- params : TGHash (TBasicType TPtr) (TBasicType TPtr)
     IO ()
 
 
@@ -1686,7 +1801,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature_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
 
@@ -1716,7 +1831,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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
 
@@ -1743,7 +1858,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Address"
+-- returnType : Just (TInterface "Soup" "Address")
 -- throws : False
 -- Skip return : False
 
@@ -1772,7 +1887,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "URI"
+-- returnType : Just (TInterface "Soup" "URI")
 -- throws : False
 -- Skip return : False
 
@@ -1801,7 +1916,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "MessageFlags"
+-- returnType : Just (TInterface "Soup" "MessageFlags")
 -- throws : False
 -- Skip return : False
 
@@ -1829,7 +1944,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "HTTPVersion"
+-- returnType : Just (TInterface "Soup" "HTTPVersion")
 -- throws : False
 -- Skip return : False
 
@@ -1857,7 +1972,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "certificate", argType = TInterface "Gio" "TlsCertificate", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "errors", argType = TInterface "Gio" "TlsCertificateFlags", 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
 
@@ -1895,7 +2010,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "MessagePriority"
+-- returnType : Just (TInterface "Soup" "MessagePriority")
 -- throws : False
 -- Skip return : False
 
@@ -1923,7 +2038,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Request"
+-- returnType : Just (TInterface "Soup" "Request")
 -- throws : False
 -- Skip return : False
 
@@ -1952,7 +2067,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "URI"
+-- returnType : Just (TInterface "Soup" "URI")
 -- throws : False
 -- Skip return : False
 
@@ -1981,7 +2096,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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
 
@@ -2008,7 +2123,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "chunk", argType = TInterface "Soup" "Buffer", 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
 
@@ -2039,7 +2154,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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
 
@@ -2066,7 +2181,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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
 
@@ -2093,7 +2208,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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
 
@@ -2121,7 +2236,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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
 
@@ -2146,16 +2261,16 @@
 
 -- method Message::set_chunk_allocator
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allocator", argType = TInterface "Soup" "ChunkAllocator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allocator", argType = TInterface "Soup" "ChunkAllocator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_message_set_chunk_allocator" soup_message_set_chunk_allocator :: 
     Ptr Message ->                          -- _obj : TInterface "Soup" "Message"
     FunPtr ChunkAllocatorC ->               -- allocator : TInterface "Soup" "ChunkAllocator"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- destroy_notify : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -2182,7 +2297,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "first_party", argType = TInterface "Soup" "URI", 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
 
@@ -2213,7 +2328,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "Soup" "MessageFlags", 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
 
@@ -2243,7 +2358,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "version", argType = TInterface "Soup" "HTTPVersion", 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
 
@@ -2273,7 +2388,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TInterface "Soup" "MessagePriority", 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
 
@@ -2301,15 +2416,15 @@
 
 -- method Message::set_redirect
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "status_code", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "redirect_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "status_code", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "redirect_uri", 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 "soup_message_set_redirect" soup_message_set_redirect :: 
     Ptr Message ->                          -- _obj : TInterface "Soup" "Message"
-    Word32 ->                               -- status_code : TBasicType TUInt32
+    Word32 ->                               -- status_code : TBasicType TUInt
     CString ->                              -- redirect_uri : TBasicType TUTF8
     IO ()
 
@@ -2336,7 +2451,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "req_use", argType = TInterface "Soup" "MemoryUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "req_body", argType = TCArray False (-1) 4 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "req_length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "req_length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -2386,7 +2501,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "resp_use", argType = TInterface "Soup" "MemoryUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "resp_body", argType = TCArray False (-1) 4 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "resp_length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "resp_length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -2434,15 +2549,15 @@
 
 -- method Message::set_status
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "status_code", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "status_code", 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 "soup_message_set_status" soup_message_set_status :: 
     Ptr Message ->                          -- _obj : TInterface "Soup" "Message"
-    Word32 ->                               -- status_code : TBasicType TUInt32
+    Word32 ->                               -- status_code : TBasicType TUInt
     IO ()
 
 
@@ -2463,15 +2578,15 @@
 
 -- method Message::set_status_full
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "status_code", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reason_phrase", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "status_code", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reason_phrase", 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 "soup_message_set_status_full" soup_message_set_status_full :: 
     Ptr Message ->                          -- _obj : TInterface "Soup" "Message"
-    Word32 ->                               -- status_code : TBasicType TUInt32
+    Word32 ->                               -- status_code : TBasicType TUInt
     CString ->                              -- reason_phrase : TBasicType TUTF8
     IO ()
 
@@ -2498,7 +2613,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", 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
 
@@ -2529,7 +2644,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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
 
@@ -2556,7 +2671,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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
 
@@ -2583,7 +2698,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "chunk", argType = TInterface "Soup" "Buffer", 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
 
@@ -2614,7 +2729,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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
 
@@ -2641,7 +2756,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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
 
@@ -2668,7 +2783,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Message", 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/Soup/Objects/Message.hs-boot b/GI/Soup/Objects/Message.hs-boot
--- a/GI/Soup/Objects/Message.hs-boot
+++ b/GI/Soup/Objects/Message.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.Message 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/Soup/Objects/MultipartInputStream.hs b/GI/Soup/Objects/MultipartInputStream.hs
--- a/GI/Soup/Objects/MultipartInputStream.hs
+++ b/GI/Soup/Objects/MultipartInputStream.hs
@@ -48,15 +48,16 @@
     MultipartInputStreamMessagePropertyInfo ,
     constructMultipartInputStreamMessage    ,
     getMultipartInputStreamMessage          ,
+    multipartInputStreamMessage             ,
 
 
 
 
     ) 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
@@ -153,27 +154,32 @@
 -- VVV Prop "message"
    -- Type: TInterface "Soup" "Message"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
-getMultipartInputStreamMessage :: (MonadIO m, MultipartInputStreamK o) => o -> m Message
+getMultipartInputStreamMessage :: (MonadIO m, MultipartInputStreamK o) => o -> m (Maybe Message)
 getMultipartInputStreamMessage obj = liftIO $ getObjectPropertyObject obj "message" Message
 
 constructMultipartInputStreamMessage :: (MessageK a) => a -> IO ([Char], GValue)
-constructMultipartInputStreamMessage val = constructObjectPropertyObject "message" val
+constructMultipartInputStreamMessage val = constructObjectPropertyObject "message" (Just val)
 
 data MultipartInputStreamMessagePropertyInfo
 instance AttrInfo MultipartInputStreamMessagePropertyInfo where
-    type AttrAllowedOps MultipartInputStreamMessagePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps MultipartInputStreamMessagePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint MultipartInputStreamMessagePropertyInfo = MessageK
     type AttrBaseTypeConstraint MultipartInputStreamMessagePropertyInfo = MultipartInputStreamK
-    type AttrGetType MultipartInputStreamMessagePropertyInfo = Message
+    type AttrGetType MultipartInputStreamMessagePropertyInfo = (Maybe Message)
     type AttrLabel MultipartInputStreamMessagePropertyInfo = "message"
     attrGet _ = getMultipartInputStreamMessage
     attrSet _ = undefined
     attrConstruct _ = constructMultipartInputStreamMessage
+    attrClear _ = undefined
 
 type instance AttributeList MultipartInputStream = MultipartInputStreamAttributeList
 type MultipartInputStreamAttributeList = ('[ '("baseStream", Gio.FilterInputStreamBaseStreamPropertyInfo), '("closeBaseStream", Gio.FilterInputStreamCloseBaseStreamPropertyInfo), '("message", MultipartInputStreamMessagePropertyInfo)] :: [(Symbol, *)])
 
+multipartInputStreamMessage :: AttrLabelProxy "message"
+multipartInputStreamMessage = AttrLabelProxy
+
 type instance SignalList MultipartInputStream = MultipartInputStreamSignalList
 type MultipartInputStreamSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
@@ -181,7 +187,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "base_stream", argType = TInterface "Gio" "InputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "MultipartInputStream"
+-- returnType : Just (TInterface "Soup" "MultipartInputStream")
 -- throws : False
 -- Skip return : False
 
@@ -210,7 +216,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MultipartInputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "MessageHeaders"
+-- returnType : Just (TInterface "Soup" "MessageHeaders")
 -- throws : False
 -- Skip return : False
 
@@ -222,24 +228,25 @@
 multipartInputStreamGetHeaders ::
     (MonadIO m, MultipartInputStreamK a) =>
     a                                       -- _obj
-    -> m MessageHeaders                     -- result
+    -> m (Maybe MessageHeaders)             -- result
 multipartInputStreamGetHeaders _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_multipart_input_stream_get_headers _obj'
-    checkUnexpectedReturnNULL "soup_multipart_input_stream_get_headers" result
-    result' <- (newBoxed MessageHeaders) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newBoxed MessageHeaders) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data MultipartInputStreamGetHeadersMethodInfo
-instance (signature ~ (m MessageHeaders), MonadIO m, MultipartInputStreamK a) => MethodInfo MultipartInputStreamGetHeadersMethodInfo a signature where
+instance (signature ~ (m (Maybe MessageHeaders)), MonadIO m, MultipartInputStreamK a) => MethodInfo MultipartInputStreamGetHeadersMethodInfo a signature where
     overloadedMethod _ = multipartInputStreamGetHeaders
 
 -- method MultipartInputStream::next_part
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MultipartInputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "InputStream"
+-- returnType : Just (TInterface "Gio" "InputStream")
 -- throws : True
 -- Skip return : False
 
@@ -254,7 +261,7 @@
     (MonadIO m, MultipartInputStreamK a, Gio.CancellableK b) =>
     a                                       -- _obj
     -> Maybe (b)                            -- cancellable
-    -> m Gio.InputStream                    -- result
+    -> m (Maybe Gio.InputStream)            -- result
 multipartInputStreamNextPart _obj cancellable = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     maybeCancellable <- case cancellable of
@@ -264,33 +271,34 @@
             return jCancellable'
     onException (do
         result <- propagateGError $ soup_multipart_input_stream_next_part _obj' maybeCancellable
-        checkUnexpectedReturnNULL "soup_multipart_input_stream_next_part" result
-        result' <- (wrapObject Gio.InputStream) result
+        maybeResult <- convertIfNonNull result $ \result' -> do
+            result'' <- (wrapObject Gio.InputStream) result'
+            return result''
         touchManagedPtr _obj
         whenJust cancellable touchManagedPtr
-        return result'
+        return maybeResult
      ) (do
         return ()
      )
 
 data MultipartInputStreamNextPartMethodInfo
-instance (signature ~ (Maybe (b) -> m Gio.InputStream), MonadIO m, MultipartInputStreamK a, Gio.CancellableK b) => MethodInfo MultipartInputStreamNextPartMethodInfo a signature where
+instance (signature ~ (Maybe (b) -> m (Maybe Gio.InputStream)), MonadIO m, MultipartInputStreamK a, Gio.CancellableK b) => MethodInfo MultipartInputStreamNextPartMethodInfo a signature where
     overloadedMethod _ = multipartInputStreamNextPart
 
 -- method MultipartInputStream::next_part_async
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MultipartInputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "io_priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, 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 "Soup" "MultipartInputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "io_priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, 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 "soup_multipart_input_stream_next_part_async" soup_multipart_input_stream_next_part_async :: 
     Ptr MultipartInputStream ->             -- _obj : TInterface "Soup" "MultipartInputStream"
-    Int32 ->                                -- io_priority : TBasicType TInt32
+    Int32 ->                                -- io_priority : TBasicType TInt
     Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
     FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO ()
 
 
@@ -329,7 +337,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MultipartInputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "InputStream"
+-- returnType : Just (TInterface "Gio" "InputStream")
 -- throws : True
 -- Skip return : False
 
@@ -344,23 +352,24 @@
     (MonadIO m, MultipartInputStreamK a, Gio.AsyncResultK b) =>
     a                                       -- _obj
     -> b                                    -- result_
-    -> m Gio.InputStream                    -- result
+    -> m (Maybe Gio.InputStream)            -- result
 multipartInputStreamNextPartFinish _obj result_ = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let result_' = unsafeManagedPtrCastPtr result_
     onException (do
         result <- propagateGError $ soup_multipart_input_stream_next_part_finish _obj' result_'
-        checkUnexpectedReturnNULL "soup_multipart_input_stream_next_part_finish" result
-        result' <- (wrapObject Gio.InputStream) result
+        maybeResult <- convertIfNonNull result $ \result' -> do
+            result'' <- (wrapObject Gio.InputStream) result'
+            return result''
         touchManagedPtr _obj
         touchManagedPtr result_
-        return result'
+        return maybeResult
      ) (do
         return ()
      )
 
 data MultipartInputStreamNextPartFinishMethodInfo
-instance (signature ~ (b -> m Gio.InputStream), MonadIO m, MultipartInputStreamK a, Gio.AsyncResultK b) => MethodInfo MultipartInputStreamNextPartFinishMethodInfo a signature where
+instance (signature ~ (b -> m (Maybe Gio.InputStream)), MonadIO m, MultipartInputStreamK a, Gio.AsyncResultK b) => MethodInfo MultipartInputStreamNextPartFinishMethodInfo a signature where
     overloadedMethod _ = multipartInputStreamNextPartFinish
 
 
diff --git a/GI/Soup/Objects/MultipartInputStream.hs-boot b/GI/Soup/Objects/MultipartInputStream.hs-boot
--- a/GI/Soup/Objects/MultipartInputStream.hs-boot
+++ b/GI/Soup/Objects/MultipartInputStream.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.MultipartInputStream 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/Soup/Objects/ProxyResolverDefault.hs b/GI/Soup/Objects/ProxyResolverDefault.hs
--- a/GI/Soup/Objects/ProxyResolverDefault.hs
+++ b/GI/Soup/Objects/ProxyResolverDefault.hs
@@ -19,7 +19,9 @@
  -- * Properties
 -- ** GproxyResolver
     ProxyResolverDefaultGproxyResolverPropertyInfo,
+    clearProxyResolverDefaultGproxyResolver ,
     constructProxyResolverDefaultGproxyResolver,
+    proxyResolverDefaultGproxyResolver      ,
     setProxyResolverDefaultGproxyResolver   ,
 
 
@@ -27,9 +29,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,16 +105,20 @@
 -- VVV Prop "gproxy-resolver"
    -- Type: TInterface "Gio" "ProxyResolver"
    -- Flags: [PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 setProxyResolverDefaultGproxyResolver :: (MonadIO m, ProxyResolverDefaultK o, Gio.ProxyResolverK a) => o -> a -> m ()
-setProxyResolverDefaultGproxyResolver obj val = liftIO $ setObjectPropertyObject obj "gproxy-resolver" val
+setProxyResolverDefaultGproxyResolver obj val = liftIO $ setObjectPropertyObject obj "gproxy-resolver" (Just val)
 
 constructProxyResolverDefaultGproxyResolver :: (Gio.ProxyResolverK a) => a -> IO ([Char], GValue)
-constructProxyResolverDefaultGproxyResolver val = constructObjectPropertyObject "gproxy-resolver" val
+constructProxyResolverDefaultGproxyResolver val = constructObjectPropertyObject "gproxy-resolver" (Just val)
 
+clearProxyResolverDefaultGproxyResolver :: (MonadIO m, ProxyResolverDefaultK o) => o -> m ()
+clearProxyResolverDefaultGproxyResolver obj = liftIO $ setObjectPropertyObject obj "gproxy-resolver" (Nothing :: Maybe Gio.ProxyResolver)
+
 data ProxyResolverDefaultGproxyResolverPropertyInfo
 instance AttrInfo ProxyResolverDefaultGproxyResolverPropertyInfo where
-    type AttrAllowedOps ProxyResolverDefaultGproxyResolverPropertyInfo = '[ 'AttrSet, 'AttrConstruct]
+    type AttrAllowedOps ProxyResolverDefaultGproxyResolverPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrClear]
     type AttrSetTypeConstraint ProxyResolverDefaultGproxyResolverPropertyInfo = Gio.ProxyResolverK
     type AttrBaseTypeConstraint ProxyResolverDefaultGproxyResolverPropertyInfo = ProxyResolverDefaultK
     type AttrGetType ProxyResolverDefaultGproxyResolverPropertyInfo = ()
@@ -120,9 +126,13 @@
     attrGet _ = undefined
     attrSet _ = setProxyResolverDefaultGproxyResolver
     attrConstruct _ = constructProxyResolverDefaultGproxyResolver
+    attrClear _ = clearProxyResolverDefaultGproxyResolver
 
 type instance AttributeList ProxyResolverDefault = ProxyResolverDefaultAttributeList
 type ProxyResolverDefaultAttributeList = ('[ '("gproxyResolver", ProxyResolverDefaultGproxyResolverPropertyInfo)] :: [(Symbol, *)])
+
+proxyResolverDefaultGproxyResolver :: AttrLabelProxy "gproxyResolver"
+proxyResolverDefaultGproxyResolver = AttrLabelProxy
 
 type instance SignalList ProxyResolverDefault = ProxyResolverDefaultSignalList
 type ProxyResolverDefaultSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
diff --git a/GI/Soup/Objects/ProxyResolverDefault.hs-boot b/GI/Soup/Objects/ProxyResolverDefault.hs-boot
--- a/GI/Soup/Objects/ProxyResolverDefault.hs-boot
+++ b/GI/Soup/Objects/ProxyResolverDefault.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.ProxyResolverDefault 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/Soup/Objects/Request.hs b/GI/Soup/Objects/Request.hs
--- a/GI/Soup/Objects/Request.hs
+++ b/GI/Soup/Objects/Request.hs
@@ -59,21 +59,23 @@
     RequestSessionPropertyInfo              ,
     constructRequestSession                 ,
     getRequestSession                       ,
+    requestSession                          ,
 
 
 -- ** Uri
     RequestUriPropertyInfo                  ,
     constructRequestUri                     ,
     getRequestUri                           ,
+    requestUri                              ,
 
 
 
 
     ) 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,16 +150,17 @@
 -- VVV Prop "session"
    -- Type: TInterface "Soup" "Session"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just False,Nothing)
 
 getRequestSession :: (MonadIO m, RequestK o) => o -> m Session
-getRequestSession obj = liftIO $ getObjectPropertyObject obj "session" Session
+getRequestSession obj = liftIO $ checkUnexpectedNothing "getRequestSession" $ getObjectPropertyObject obj "session" Session
 
 constructRequestSession :: (SessionK a) => a -> IO ([Char], GValue)
-constructRequestSession val = constructObjectPropertyObject "session" val
+constructRequestSession val = constructObjectPropertyObject "session" (Just val)
 
 data RequestSessionPropertyInfo
 instance AttrInfo RequestSessionPropertyInfo where
-    type AttrAllowedOps RequestSessionPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps RequestSessionPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint RequestSessionPropertyInfo = SessionK
     type AttrBaseTypeConstraint RequestSessionPropertyInfo = RequestK
     type AttrGetType RequestSessionPropertyInfo = Session
@@ -165,20 +168,22 @@
     attrGet _ = getRequestSession
     attrSet _ = undefined
     attrConstruct _ = constructRequestSession
+    attrClear _ = undefined
 
 -- VVV Prop "uri"
    -- Type: TInterface "Soup" "URI"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just False,Nothing)
 
 getRequestUri :: (MonadIO m, RequestK o) => o -> m URI
-getRequestUri obj = liftIO $ getObjectPropertyBoxed obj "uri" URI
+getRequestUri obj = liftIO $ checkUnexpectedNothing "getRequestUri" $ getObjectPropertyBoxed obj "uri" URI
 
 constructRequestUri :: URI -> IO ([Char], GValue)
-constructRequestUri val = constructObjectPropertyBoxed "uri" val
+constructRequestUri val = constructObjectPropertyBoxed "uri" (Just val)
 
 data RequestUriPropertyInfo
 instance AttrInfo RequestUriPropertyInfo where
-    type AttrAllowedOps RequestUriPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps RequestUriPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint RequestUriPropertyInfo = (~) URI
     type AttrBaseTypeConstraint RequestUriPropertyInfo = RequestK
     type AttrGetType RequestUriPropertyInfo = URI
@@ -186,10 +191,17 @@
     attrGet _ = getRequestUri
     attrSet _ = undefined
     attrConstruct _ = constructRequestUri
+    attrClear _ = undefined
 
 type instance AttributeList Request = RequestAttributeList
 type RequestAttributeList = ('[ '("session", RequestSessionPropertyInfo), '("uri", RequestUriPropertyInfo)] :: [(Symbol, *)])
 
+requestSession :: AttrLabelProxy "session"
+requestSession = AttrLabelProxy
+
+requestUri :: AttrLabelProxy "uri"
+requestUri = AttrLabelProxy
+
 type instance SignalList Request = RequestSignalList
 type RequestSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
@@ -197,7 +209,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Request", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt64
+-- returnType : Just (TBasicType TInt64)
 -- throws : False
 -- Skip return : False
 
@@ -224,7 +236,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Request", 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
 
@@ -236,24 +248,25 @@
 requestGetContentType ::
     (MonadIO m, RequestK a) =>
     a                                       -- _obj
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 requestGetContentType _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_request_get_content_type _obj'
-    checkUnexpectedReturnNULL "soup_request_get_content_type" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data RequestGetContentTypeMethodInfo
-instance (signature ~ (m T.Text), MonadIO m, RequestK a) => MethodInfo RequestGetContentTypeMethodInfo a signature where
+instance (signature ~ (m (Maybe T.Text)), MonadIO m, RequestK a) => MethodInfo RequestGetContentTypeMethodInfo a signature where
     overloadedMethod _ = requestGetContentType
 
 -- method Request::get_session
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Request", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Session"
+-- returnType : Just (TInterface "Soup" "Session")
 -- throws : False
 -- Skip return : False
 
@@ -282,7 +295,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Request", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "URI"
+-- returnType : Just (TInterface "Soup" "URI")
 -- throws : False
 -- Skip return : False
 
@@ -311,7 +324,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Request", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "InputStream"
+-- returnType : Just (TInterface "Gio" "InputStream")
 -- throws : True
 -- Skip return : False
 
@@ -351,9 +364,9 @@
 
 -- method Request::send_async
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Request", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Request", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_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
 
@@ -361,7 +374,7 @@
     Ptr Request ->                          -- _obj : TInterface "Soup" "Request"
     Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
     FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 
@@ -399,7 +412,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Request", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "InputStream"
+-- returnType : Just (TInterface "Gio" "InputStream")
 -- throws : True
 -- Skip return : False
 
diff --git a/GI/Soup/Objects/Request.hs-boot b/GI/Soup/Objects/Request.hs-boot
--- a/GI/Soup/Objects/Request.hs-boot
+++ b/GI/Soup/Objects/Request.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.Request 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/Soup/Objects/RequestData.hs b/GI/Soup/Objects/RequestData.hs
--- a/GI/Soup/Objects/RequestData.hs
+++ b/GI/Soup/Objects/RequestData.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/Soup/Objects/RequestData.hs-boot b/GI/Soup/Objects/RequestData.hs-boot
--- a/GI/Soup/Objects/RequestData.hs-boot
+++ b/GI/Soup/Objects/RequestData.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.RequestData 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/Soup/Objects/RequestFile.hs b/GI/Soup/Objects/RequestFile.hs
--- a/GI/Soup/Objects/RequestFile.hs
+++ b/GI/Soup/Objects/RequestFile.hs
@@ -26,9 +26,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
@@ -111,7 +111,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "RequestFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "File"
+-- returnType : Just (TInterface "Gio" "File")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Objects/RequestFile.hs-boot b/GI/Soup/Objects/RequestFile.hs-boot
--- a/GI/Soup/Objects/RequestFile.hs-boot
+++ b/GI/Soup/Objects/RequestFile.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.RequestFile 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/Soup/Objects/RequestHTTP.hs b/GI/Soup/Objects/RequestHTTP.hs
--- a/GI/Soup/Objects/RequestHTTP.hs
+++ b/GI/Soup/Objects/RequestHTTP.hs
@@ -26,9 +26,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
@@ -111,7 +111,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "RequestHTTP", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Message"
+-- returnType : Just (TInterface "Soup" "Message")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Objects/RequestHTTP.hs-boot b/GI/Soup/Objects/RequestHTTP.hs-boot
--- a/GI/Soup/Objects/RequestHTTP.hs-boot
+++ b/GI/Soup/Objects/RequestHTTP.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.RequestHTTP 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/Soup/Objects/Requester.hs b/GI/Soup/Objects/Requester.hs
--- a/GI/Soup/Objects/Requester.hs
+++ b/GI/Soup/Objects/Requester.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
@@ -117,7 +117,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Soup" "Requester"
+-- returnType : Just (TInterface "Soup" "Requester")
 -- throws : False
 -- Skip return : False
 
@@ -138,7 +138,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Requester", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Request"
+-- returnType : Just (TInterface "Soup" "Request")
 -- throws : True
 -- Skip return : False
 
@@ -176,7 +176,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Requester", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Request"
+-- returnType : Just (TInterface "Soup" "Request")
 -- throws : True
 -- Skip return : False
 
diff --git a/GI/Soup/Objects/Requester.hs-boot b/GI/Soup/Objects/Requester.hs-boot
--- a/GI/Soup/Objects/Requester.hs-boot
+++ b/GI/Soup/Objects/Requester.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.Requester 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/Soup/Objects/Server.hs b/GI/Soup/Objects/Server.hs
--- a/GI/Soup/Objects/Server.hs
+++ b/GI/Soup/Objects/Server.hs
@@ -149,19 +149,24 @@
     ServerAsyncContextPropertyInfo          ,
     constructServerAsyncContext             ,
     getServerAsyncContext                   ,
+    serverAsyncContext                      ,
 
 
 -- ** HttpAliases
     ServerHttpAliasesPropertyInfo           ,
+    clearServerHttpAliases                  ,
     constructServerHttpAliases              ,
     getServerHttpAliases                    ,
+    serverHttpAliases                       ,
     setServerHttpAliases                    ,
 
 
 -- ** HttpsAliases
     ServerHttpsAliasesPropertyInfo          ,
+    clearServerHttpsAliases                 ,
     constructServerHttpsAliases             ,
     getServerHttpsAliases                   ,
+    serverHttpsAliases                      ,
     setServerHttpsAliases                   ,
 
 
@@ -169,24 +174,29 @@
     ServerInterfacePropertyInfo             ,
     constructServerInterface                ,
     getServerInterface                      ,
+    serverInterface                         ,
 
 
 -- ** Port
     ServerPortPropertyInfo                  ,
     constructServerPort                     ,
     getServerPort                           ,
+    serverPort                              ,
 
 
 -- ** RawPaths
     ServerRawPathsPropertyInfo              ,
     constructServerRawPaths                 ,
     getServerRawPaths                       ,
+    serverRawPaths                          ,
 
 
 -- ** ServerHeader
     ServerServerHeaderPropertyInfo          ,
+    clearServerServerHeader                 ,
     constructServerServerHeader             ,
     getServerServerHeader                   ,
+    serverServerHeader                      ,
     setServerServerHeader                   ,
 
 
@@ -194,18 +204,21 @@
     ServerSslCertFilePropertyInfo           ,
     constructServerSslCertFile              ,
     getServerSslCertFile                    ,
+    serverSslCertFile                       ,
 
 
 -- ** SslKeyFile
     ServerSslKeyFilePropertyInfo            ,
     constructServerSslKeyFile               ,
     getServerSslKeyFile                     ,
+    serverSslKeyFile                        ,
 
 
 -- ** TlsCertificate
     ServerTlsCertificatePropertyInfo        ,
     constructServerTlsCertificate           ,
     getServerTlsCertificate                 ,
+    serverTlsCertificate                    ,
 
 
 
@@ -263,9 +276,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
@@ -540,13 +553,14 @@
     connectSignalFunPtr obj "request-started" cb' after
 
 -- VVV Prop "async-context"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getServerAsyncContext :: (MonadIO m, ServerK o) => o -> m (Ptr ())
 getServerAsyncContext obj = liftIO $ getObjectPropertyPtr obj "async-context"
 
-constructServerAsyncContext :: (Ptr ()) -> IO ([Char], GValue)
+constructServerAsyncContext :: Ptr () -> IO ([Char], GValue)
 constructServerAsyncContext val = constructObjectPropertyPtr "async-context" val
 
 data ServerAsyncContextPropertyInfo
@@ -559,85 +573,99 @@
     attrGet _ = getServerAsyncContext
     attrSet _ = undefined
     attrConstruct _ = constructServerAsyncContext
+    attrClear _ = undefined
 
 -- VVV Prop "http-aliases"
    -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getServerHttpAliases :: (MonadIO m, ServerK o) => o -> m [T.Text]
+getServerHttpAliases :: (MonadIO m, ServerK o) => o -> m (Maybe [T.Text])
 getServerHttpAliases obj = liftIO $ getObjectPropertyStringArray obj "http-aliases"
 
 setServerHttpAliases :: (MonadIO m, ServerK o) => o -> [T.Text] -> m ()
-setServerHttpAliases obj val = liftIO $ setObjectPropertyStringArray obj "http-aliases" val
+setServerHttpAliases obj val = liftIO $ setObjectPropertyStringArray obj "http-aliases" (Just val)
 
 constructServerHttpAliases :: [T.Text] -> IO ([Char], GValue)
-constructServerHttpAliases val = constructObjectPropertyStringArray "http-aliases" val
+constructServerHttpAliases val = constructObjectPropertyStringArray "http-aliases" (Just val)
 
+clearServerHttpAliases :: (MonadIO m, ServerK o) => o -> m ()
+clearServerHttpAliases obj = liftIO $ setObjectPropertyStringArray obj "http-aliases" (Nothing :: Maybe [T.Text])
+
 data ServerHttpAliasesPropertyInfo
 instance AttrInfo ServerHttpAliasesPropertyInfo where
-    type AttrAllowedOps ServerHttpAliasesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ServerHttpAliasesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ServerHttpAliasesPropertyInfo = (~) [T.Text]
     type AttrBaseTypeConstraint ServerHttpAliasesPropertyInfo = ServerK
-    type AttrGetType ServerHttpAliasesPropertyInfo = [T.Text]
+    type AttrGetType ServerHttpAliasesPropertyInfo = (Maybe [T.Text])
     type AttrLabel ServerHttpAliasesPropertyInfo = "http-aliases"
     attrGet _ = getServerHttpAliases
     attrSet _ = setServerHttpAliases
     attrConstruct _ = constructServerHttpAliases
+    attrClear _ = clearServerHttpAliases
 
 -- VVV Prop "https-aliases"
    -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getServerHttpsAliases :: (MonadIO m, ServerK o) => o -> m [T.Text]
+getServerHttpsAliases :: (MonadIO m, ServerK o) => o -> m (Maybe [T.Text])
 getServerHttpsAliases obj = liftIO $ getObjectPropertyStringArray obj "https-aliases"
 
 setServerHttpsAliases :: (MonadIO m, ServerK o) => o -> [T.Text] -> m ()
-setServerHttpsAliases obj val = liftIO $ setObjectPropertyStringArray obj "https-aliases" val
+setServerHttpsAliases obj val = liftIO $ setObjectPropertyStringArray obj "https-aliases" (Just val)
 
 constructServerHttpsAliases :: [T.Text] -> IO ([Char], GValue)
-constructServerHttpsAliases val = constructObjectPropertyStringArray "https-aliases" val
+constructServerHttpsAliases val = constructObjectPropertyStringArray "https-aliases" (Just val)
 
+clearServerHttpsAliases :: (MonadIO m, ServerK o) => o -> m ()
+clearServerHttpsAliases obj = liftIO $ setObjectPropertyStringArray obj "https-aliases" (Nothing :: Maybe [T.Text])
+
 data ServerHttpsAliasesPropertyInfo
 instance AttrInfo ServerHttpsAliasesPropertyInfo where
-    type AttrAllowedOps ServerHttpsAliasesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ServerHttpsAliasesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ServerHttpsAliasesPropertyInfo = (~) [T.Text]
     type AttrBaseTypeConstraint ServerHttpsAliasesPropertyInfo = ServerK
-    type AttrGetType ServerHttpsAliasesPropertyInfo = [T.Text]
+    type AttrGetType ServerHttpsAliasesPropertyInfo = (Maybe [T.Text])
     type AttrLabel ServerHttpsAliasesPropertyInfo = "https-aliases"
     attrGet _ = getServerHttpsAliases
     attrSet _ = setServerHttpsAliases
     attrConstruct _ = constructServerHttpsAliases
+    attrClear _ = clearServerHttpsAliases
 
 -- VVV Prop "interface"
    -- Type: TInterface "Soup" "Address"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
-getServerInterface :: (MonadIO m, ServerK o) => o -> m Address
+getServerInterface :: (MonadIO m, ServerK o) => o -> m (Maybe Address)
 getServerInterface obj = liftIO $ getObjectPropertyObject obj "interface" Address
 
 constructServerInterface :: (AddressK a) => a -> IO ([Char], GValue)
-constructServerInterface val = constructObjectPropertyObject "interface" val
+constructServerInterface val = constructObjectPropertyObject "interface" (Just val)
 
 data ServerInterfacePropertyInfo
 instance AttrInfo ServerInterfacePropertyInfo where
-    type AttrAllowedOps ServerInterfacePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ServerInterfacePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ServerInterfacePropertyInfo = AddressK
     type AttrBaseTypeConstraint ServerInterfacePropertyInfo = ServerK
-    type AttrGetType ServerInterfacePropertyInfo = Address
+    type AttrGetType ServerInterfacePropertyInfo = (Maybe Address)
     type AttrLabel ServerInterfacePropertyInfo = "interface"
     attrGet _ = getServerInterface
     attrSet _ = undefined
     attrConstruct _ = constructServerInterface
+    attrClear _ = undefined
 
 -- VVV Prop "port"
-   -- Type: TBasicType TUInt32
+   -- Type: TBasicType TUInt
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just False,Nothing)
 
 getServerPort :: (MonadIO m, ServerK o) => o -> m Word32
-getServerPort obj = liftIO $ getObjectPropertyCUInt obj "port"
+getServerPort obj = liftIO $ getObjectPropertyUInt32 obj "port"
 
 constructServerPort :: Word32 -> IO ([Char], GValue)
-constructServerPort val = constructObjectPropertyCUInt "port" val
+constructServerPort val = constructObjectPropertyUInt32 "port" val
 
 data ServerPortPropertyInfo
 instance AttrInfo ServerPortPropertyInfo where
@@ -649,10 +677,12 @@
     attrGet _ = getServerPort
     attrSet _ = undefined
     attrConstruct _ = constructServerPort
+    attrClear _ = undefined
 
 -- VVV Prop "raw-paths"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getServerRawPaths :: (MonadIO m, ServerK o) => o -> m Bool
 getServerRawPaths obj = liftIO $ getObjectPropertyBool obj "raw-paths"
@@ -670,97 +700,139 @@
     attrGet _ = getServerRawPaths
     attrSet _ = undefined
     attrConstruct _ = constructServerRawPaths
+    attrClear _ = undefined
 
 -- VVV Prop "server-header"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]
+   -- Nullable: (Nothing,Nothing)
 
-getServerServerHeader :: (MonadIO m, ServerK o) => o -> m T.Text
+getServerServerHeader :: (MonadIO m, ServerK o) => o -> m (Maybe T.Text)
 getServerServerHeader obj = liftIO $ getObjectPropertyString obj "server-header"
 
 setServerServerHeader :: (MonadIO m, ServerK o) => o -> T.Text -> m ()
-setServerServerHeader obj val = liftIO $ setObjectPropertyString obj "server-header" val
+setServerServerHeader obj val = liftIO $ setObjectPropertyString obj "server-header" (Just val)
 
 constructServerServerHeader :: T.Text -> IO ([Char], GValue)
-constructServerServerHeader val = constructObjectPropertyString "server-header" val
+constructServerServerHeader val = constructObjectPropertyString "server-header" (Just val)
 
+clearServerServerHeader :: (MonadIO m, ServerK o) => o -> m ()
+clearServerServerHeader obj = liftIO $ setObjectPropertyString obj "server-header" (Nothing :: Maybe T.Text)
+
 data ServerServerHeaderPropertyInfo
 instance AttrInfo ServerServerHeaderPropertyInfo where
-    type AttrAllowedOps ServerServerHeaderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ServerServerHeaderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ServerServerHeaderPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint ServerServerHeaderPropertyInfo = ServerK
-    type AttrGetType ServerServerHeaderPropertyInfo = T.Text
+    type AttrGetType ServerServerHeaderPropertyInfo = (Maybe T.Text)
     type AttrLabel ServerServerHeaderPropertyInfo = "server-header"
     attrGet _ = getServerServerHeader
     attrSet _ = setServerServerHeader
     attrConstruct _ = constructServerServerHeader
+    attrClear _ = clearServerServerHeader
 
 -- VVV Prop "ssl-cert-file"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
-getServerSslCertFile :: (MonadIO m, ServerK o) => o -> m T.Text
+getServerSslCertFile :: (MonadIO m, ServerK o) => o -> m (Maybe T.Text)
 getServerSslCertFile obj = liftIO $ getObjectPropertyString obj "ssl-cert-file"
 
 constructServerSslCertFile :: T.Text -> IO ([Char], GValue)
-constructServerSslCertFile val = constructObjectPropertyString "ssl-cert-file" val
+constructServerSslCertFile val = constructObjectPropertyString "ssl-cert-file" (Just val)
 
 data ServerSslCertFilePropertyInfo
 instance AttrInfo ServerSslCertFilePropertyInfo where
-    type AttrAllowedOps ServerSslCertFilePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ServerSslCertFilePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ServerSslCertFilePropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint ServerSslCertFilePropertyInfo = ServerK
-    type AttrGetType ServerSslCertFilePropertyInfo = T.Text
+    type AttrGetType ServerSslCertFilePropertyInfo = (Maybe T.Text)
     type AttrLabel ServerSslCertFilePropertyInfo = "ssl-cert-file"
     attrGet _ = getServerSslCertFile
     attrSet _ = undefined
     attrConstruct _ = constructServerSslCertFile
+    attrClear _ = undefined
 
 -- VVV Prop "ssl-key-file"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
-getServerSslKeyFile :: (MonadIO m, ServerK o) => o -> m T.Text
+getServerSslKeyFile :: (MonadIO m, ServerK o) => o -> m (Maybe T.Text)
 getServerSslKeyFile obj = liftIO $ getObjectPropertyString obj "ssl-key-file"
 
 constructServerSslKeyFile :: T.Text -> IO ([Char], GValue)
-constructServerSslKeyFile val = constructObjectPropertyString "ssl-key-file" val
+constructServerSslKeyFile val = constructObjectPropertyString "ssl-key-file" (Just val)
 
 data ServerSslKeyFilePropertyInfo
 instance AttrInfo ServerSslKeyFilePropertyInfo where
-    type AttrAllowedOps ServerSslKeyFilePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ServerSslKeyFilePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ServerSslKeyFilePropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint ServerSslKeyFilePropertyInfo = ServerK
-    type AttrGetType ServerSslKeyFilePropertyInfo = T.Text
+    type AttrGetType ServerSslKeyFilePropertyInfo = (Maybe T.Text)
     type AttrLabel ServerSslKeyFilePropertyInfo = "ssl-key-file"
     attrGet _ = getServerSslKeyFile
     attrSet _ = undefined
     attrConstruct _ = constructServerSslKeyFile
+    attrClear _ = undefined
 
 -- VVV Prop "tls-certificate"
    -- Type: TInterface "Gio" "TlsCertificate"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
-getServerTlsCertificate :: (MonadIO m, ServerK o) => o -> m Gio.TlsCertificate
+getServerTlsCertificate :: (MonadIO m, ServerK o) => o -> m (Maybe Gio.TlsCertificate)
 getServerTlsCertificate obj = liftIO $ getObjectPropertyObject obj "tls-certificate" Gio.TlsCertificate
 
 constructServerTlsCertificate :: (Gio.TlsCertificateK a) => a -> IO ([Char], GValue)
-constructServerTlsCertificate val = constructObjectPropertyObject "tls-certificate" val
+constructServerTlsCertificate val = constructObjectPropertyObject "tls-certificate" (Just val)
 
 data ServerTlsCertificatePropertyInfo
 instance AttrInfo ServerTlsCertificatePropertyInfo where
-    type AttrAllowedOps ServerTlsCertificatePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps ServerTlsCertificatePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint ServerTlsCertificatePropertyInfo = Gio.TlsCertificateK
     type AttrBaseTypeConstraint ServerTlsCertificatePropertyInfo = ServerK
-    type AttrGetType ServerTlsCertificatePropertyInfo = Gio.TlsCertificate
+    type AttrGetType ServerTlsCertificatePropertyInfo = (Maybe Gio.TlsCertificate)
     type AttrLabel ServerTlsCertificatePropertyInfo = "tls-certificate"
     attrGet _ = getServerTlsCertificate
     attrSet _ = undefined
     attrConstruct _ = constructServerTlsCertificate
+    attrClear _ = undefined
 
 type instance AttributeList Server = ServerAttributeList
 type ServerAttributeList = ('[ '("asyncContext", ServerAsyncContextPropertyInfo), '("httpAliases", ServerHttpAliasesPropertyInfo), '("httpsAliases", ServerHttpsAliasesPropertyInfo), '("interface", ServerInterfacePropertyInfo), '("port", ServerPortPropertyInfo), '("rawPaths", ServerRawPathsPropertyInfo), '("serverHeader", ServerServerHeaderPropertyInfo), '("sslCertFile", ServerSslCertFilePropertyInfo), '("sslKeyFile", ServerSslKeyFilePropertyInfo), '("tlsCertificate", ServerTlsCertificatePropertyInfo)] :: [(Symbol, *)])
 
+serverAsyncContext :: AttrLabelProxy "asyncContext"
+serverAsyncContext = AttrLabelProxy
+
+serverHttpAliases :: AttrLabelProxy "httpAliases"
+serverHttpAliases = AttrLabelProxy
+
+serverHttpsAliases :: AttrLabelProxy "httpsAliases"
+serverHttpsAliases = AttrLabelProxy
+
+serverInterface :: AttrLabelProxy "interface"
+serverInterface = AttrLabelProxy
+
+serverPort :: AttrLabelProxy "port"
+serverPort = AttrLabelProxy
+
+serverRawPaths :: AttrLabelProxy "rawPaths"
+serverRawPaths = AttrLabelProxy
+
+serverServerHeader :: AttrLabelProxy "serverHeader"
+serverServerHeader = AttrLabelProxy
+
+serverSslCertFile :: AttrLabelProxy "sslCertFile"
+serverSslCertFile = AttrLabelProxy
+
+serverSslKeyFile :: AttrLabelProxy "sslKeyFile"
+serverSslKeyFile = AttrLabelProxy
+
+serverTlsCertificate :: AttrLabelProxy "tlsCertificate"
+serverTlsCertificate = AttrLabelProxy
+
 data ServerRequestAbortedSignalInfo
 instance SignalInfo ServerRequestAbortedSignalInfo where
     type HaskellCallbackType ServerRequestAbortedSignalInfo = ServerRequestAbortedCallback
@@ -788,7 +860,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stream", argType = TInterface "Gio" "IOStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "local_addr", argType = TInterface "Gio" "SocketAddress", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote_addr", argType = TInterface "Gio" "SocketAddress", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -840,7 +912,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth_domain", argType = TInterface "Soup" "AuthDomain", 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
 
@@ -869,9 +941,9 @@
 
 -- method Server::add_early_handler
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "ServerCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "ServerCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -879,7 +951,7 @@
     Ptr Server ->                           -- _obj : TInterface "Soup" "Server"
     CString ->                              -- path : TBasicType TUTF8
     FunPtr ServerCallbackC ->               -- callback : TInterface "Soup" "ServerCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -911,9 +983,9 @@
 
 -- method Server::add_handler
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "ServerCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "ServerCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -921,7 +993,7 @@
     Ptr Server ->                           -- _obj : TInterface "Soup" "Server"
     CString ->                              -- path : TBasicType TUTF8
     FunPtr ServerCallbackC ->               -- callback : TInterface "Soup" "ServerCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -953,9 +1025,9 @@
 
 -- method Server::add_websocket_handler
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "origin", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocols", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "ServerWebsocketCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 5, argDestroy = 6, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "origin", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocols", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "ServerWebsocketCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 5, argDestroy = 6, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -965,7 +1037,7 @@
     CString ->                              -- origin : TBasicType TUTF8
     Ptr CString ->                          -- protocols : TCArray True (-1) (-1) (TBasicType TUTF8)
     FunPtr ServerWebsocketCallbackC ->      -- callback : TInterface "Soup" "ServerWebsocketCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -1014,7 +1086,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", 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
 
@@ -1041,7 +1113,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "MainContext"
+-- returnType : Just (TInterface "GLib" "MainContext")
 -- throws : False
 -- Skip return : False
 
@@ -1053,24 +1125,25 @@
 serverGetAsyncContext ::
     (MonadIO m, ServerK a) =>
     a                                       -- _obj
-    -> m GLib.MainContext                   -- result
+    -> m (Maybe GLib.MainContext)           -- result
 serverGetAsyncContext _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_server_get_async_context _obj'
-    checkUnexpectedReturnNULL "soup_server_get_async_context" result
-    result' <- (newBoxed GLib.MainContext) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newBoxed GLib.MainContext) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ServerGetAsyncContextMethodInfo
-instance (signature ~ (m GLib.MainContext), MonadIO m, ServerK a) => MethodInfo ServerGetAsyncContextMethodInfo a signature where
+instance (signature ~ (m (Maybe GLib.MainContext)), MonadIO m, ServerK a) => MethodInfo ServerGetAsyncContextMethodInfo a signature where
     overloadedMethod _ = serverGetAsyncContext
 
 -- method Server::get_listener
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Socket"
+-- returnType : Just (TInterface "Soup" "Socket")
 -- throws : False
 -- Skip return : False
 
@@ -1099,7 +1172,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TInterface "Gio" "Socket")
+-- returnType : Just (TGSList (TInterface "Gio" "Socket"))
 -- throws : False
 -- Skip return : False
 
@@ -1115,7 +1188,6 @@
 serverGetListeners _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_server_get_listeners _obj'
-    checkUnexpectedReturnNULL "soup_server_get_listeners" result
     result' <- unpackGSList result
     result'' <- mapM (newObject Gio.Socket) result'
     g_slist_free result
@@ -1130,7 +1202,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -1157,7 +1229,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TInterface "Soup" "URI")
+-- returnType : Just (TGSList (TInterface "Soup" "URI"))
 -- throws : False
 -- Skip return : False
 
@@ -1173,7 +1245,6 @@
 serverGetUris _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_server_get_uris _obj'
-    checkUnexpectedReturnNULL "soup_server_get_uris" result
     result' <- unpackGSList result
     result'' <- mapM (wrapBoxed URI) result'
     g_slist_free result
@@ -1188,7 +1259,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", 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
 
@@ -1216,7 +1287,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "address", argType = TInterface "Gio" "SocketAddress", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface "Soup" "ServerListenOptions", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -1253,15 +1324,15 @@
 
 -- method Server::listen_all
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface "Soup" "ServerListenOptions", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface "Soup" "ServerListenOptions", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "soup_server_listen_all" soup_server_listen_all :: 
     Ptr Server ->                           -- _obj : TInterface "Soup" "Server"
-    Word32 ->                               -- port : TBasicType TUInt32
+    Word32 ->                               -- port : TBasicType TUInt
     CUInt ->                                -- options : TInterface "Soup" "ServerListenOptions"
     Ptr (Ptr GError) ->                     -- error
     IO CInt
@@ -1290,15 +1361,15 @@
 
 -- method Server::listen_fd
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface "Soup" "ServerListenOptions", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface "Soup" "ServerListenOptions", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "soup_server_listen_fd" soup_server_listen_fd :: 
     Ptr Server ->                           -- _obj : TInterface "Soup" "Server"
-    Int32 ->                                -- fd : TBasicType TInt32
+    Int32 ->                                -- fd : TBasicType TInt
     CUInt ->                                -- options : TInterface "Soup" "ServerListenOptions"
     Ptr (Ptr GError) ->                     -- error
     IO CInt
@@ -1327,15 +1398,15 @@
 
 -- method Server::listen_local
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface "Soup" "ServerListenOptions", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface "Soup" "ServerListenOptions", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "soup_server_listen_local" soup_server_listen_local :: 
     Ptr Server ->                           -- _obj : TInterface "Soup" "Server"
-    Word32 ->                               -- port : TBasicType TUInt32
+    Word32 ->                               -- port : TBasicType TUInt
     CUInt ->                                -- options : TInterface "Soup" "ServerListenOptions"
     Ptr (Ptr GError) ->                     -- error
     IO CInt
@@ -1366,7 +1437,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "socket", argType = TInterface "Gio" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface "Soup" "ServerListenOptions", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -1405,7 +1476,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -1436,7 +1507,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", 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
 
@@ -1463,7 +1534,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "auth_domain", argType = TInterface "Soup" "AuthDomain", 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
 
@@ -1494,7 +1565,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", 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
 
@@ -1525,7 +1596,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", 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
 
@@ -1552,7 +1623,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", 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
 
@@ -1579,7 +1650,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ssl_cert_file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ssl_key_file", 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 : True
 -- Skip return : False
 
@@ -1620,7 +1691,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Server", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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/Soup/Objects/Server.hs-boot b/GI/Soup/Objects/Server.hs-boot
--- a/GI/Soup/Objects/Server.hs-boot
+++ b/GI/Soup/Objects/Server.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.Server 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/Soup/Objects/Session.hs b/GI/Soup/Objects/Session.hs
--- a/GI/Soup/Objects/Session.hs
+++ b/GI/Soup/Objects/Session.hs
@@ -176,8 +176,10 @@
  -- * Properties
 -- ** AcceptLanguage
     SessionAcceptLanguagePropertyInfo       ,
+    clearSessionAcceptLanguage              ,
     constructSessionAcceptLanguage          ,
     getSessionAcceptLanguage                ,
+    sessionAcceptLanguage                   ,
     setSessionAcceptLanguage                ,
 
 
@@ -185,6 +187,7 @@
     SessionAcceptLanguageAutoPropertyInfo   ,
     constructSessionAcceptLanguageAuto      ,
     getSessionAcceptLanguageAuto            ,
+    sessionAcceptLanguageAuto               ,
     setSessionAcceptLanguageAuto            ,
 
 
@@ -192,19 +195,24 @@
     SessionAsyncContextPropertyInfo         ,
     constructSessionAsyncContext            ,
     getSessionAsyncContext                  ,
+    sessionAsyncContext                     ,
 
 
 -- ** HttpAliases
     SessionHttpAliasesPropertyInfo          ,
+    clearSessionHttpAliases                 ,
     constructSessionHttpAliases             ,
     getSessionHttpAliases                   ,
+    sessionHttpAliases                      ,
     setSessionHttpAliases                   ,
 
 
 -- ** HttpsAliases
     SessionHttpsAliasesPropertyInfo         ,
+    clearSessionHttpsAliases                ,
     constructSessionHttpsAliases            ,
     getSessionHttpsAliases                  ,
+    sessionHttpsAliases                     ,
     setSessionHttpsAliases                  ,
 
 
@@ -212,6 +220,7 @@
     SessionIdleTimeoutPropertyInfo          ,
     constructSessionIdleTimeout             ,
     getSessionIdleTimeout                   ,
+    sessionIdleTimeout                      ,
     setSessionIdleTimeout                   ,
 
 
@@ -219,12 +228,14 @@
     SessionLocalAddressPropertyInfo         ,
     constructSessionLocalAddress            ,
     getSessionLocalAddress                  ,
+    sessionLocalAddress                     ,
 
 
 -- ** MaxConns
     SessionMaxConnsPropertyInfo             ,
     constructSessionMaxConns                ,
     getSessionMaxConns                      ,
+    sessionMaxConns                         ,
     setSessionMaxConns                      ,
 
 
@@ -232,27 +243,34 @@
     SessionMaxConnsPerHostPropertyInfo      ,
     constructSessionMaxConnsPerHost         ,
     getSessionMaxConnsPerHost               ,
+    sessionMaxConnsPerHost                  ,
     setSessionMaxConnsPerHost               ,
 
 
 -- ** ProxyResolver
     SessionProxyResolverPropertyInfo        ,
+    clearSessionProxyResolver               ,
     constructSessionProxyResolver           ,
     getSessionProxyResolver                 ,
+    sessionProxyResolver                    ,
     setSessionProxyResolver                 ,
 
 
 -- ** ProxyUri
     SessionProxyUriPropertyInfo             ,
+    clearSessionProxyUri                    ,
     constructSessionProxyUri                ,
     getSessionProxyUri                      ,
+    sessionProxyUri                         ,
     setSessionProxyUri                      ,
 
 
 -- ** SslCaFile
     SessionSslCaFilePropertyInfo            ,
+    clearSessionSslCaFile                   ,
     constructSessionSslCaFile               ,
     getSessionSslCaFile                     ,
+    sessionSslCaFile                        ,
     setSessionSslCaFile                     ,
 
 
@@ -260,6 +278,7 @@
     SessionSslStrictPropertyInfo            ,
     constructSessionSslStrict               ,
     getSessionSslStrict                     ,
+    sessionSslStrict                        ,
     setSessionSslStrict                     ,
 
 
@@ -267,6 +286,7 @@
     SessionSslUseSystemCaFilePropertyInfo   ,
     constructSessionSslUseSystemCaFile      ,
     getSessionSslUseSystemCaFile            ,
+    sessionSslUseSystemCaFile               ,
     setSessionSslUseSystemCaFile            ,
 
 
@@ -274,20 +294,25 @@
     SessionTimeoutPropertyInfo              ,
     constructSessionTimeout                 ,
     getSessionTimeout                       ,
+    sessionTimeout                          ,
     setSessionTimeout                       ,
 
 
 -- ** TlsDatabase
     SessionTlsDatabasePropertyInfo          ,
+    clearSessionTlsDatabase                 ,
     constructSessionTlsDatabase             ,
     getSessionTlsDatabase                   ,
+    sessionTlsDatabase                      ,
     setSessionTlsDatabase                   ,
 
 
 -- ** TlsInteraction
     SessionTlsInteractionPropertyInfo       ,
+    clearSessionTlsInteraction              ,
     constructSessionTlsInteraction          ,
     getSessionTlsInteraction                ,
+    sessionTlsInteraction                   ,
     setSessionTlsInteraction                ,
 
 
@@ -295,6 +320,7 @@
     SessionUseNtlmPropertyInfo              ,
     constructSessionUseNtlm                 ,
     getSessionUseNtlm                       ,
+    sessionUseNtlm                          ,
     setSessionUseNtlm                       ,
 
 
@@ -302,13 +328,16 @@
     SessionUseThreadContextPropertyInfo     ,
     constructSessionUseThreadContext        ,
     getSessionUseThreadContext              ,
+    sessionUseThreadContext                 ,
     setSessionUseThreadContext              ,
 
 
 -- ** UserAgent
     SessionUserAgentPropertyInfo            ,
+    clearSessionUserAgent                   ,
     constructSessionUserAgent               ,
     getSessionUserAgent                     ,
+    sessionUserAgent                        ,
     setSessionUserAgent                     ,
 
 
@@ -391,9 +420,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
@@ -755,30 +784,36 @@
 -- VVV Prop "accept-language"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getSessionAcceptLanguage :: (MonadIO m, SessionK o) => o -> m T.Text
+getSessionAcceptLanguage :: (MonadIO m, SessionK o) => o -> m (Maybe T.Text)
 getSessionAcceptLanguage obj = liftIO $ getObjectPropertyString obj "accept-language"
 
 setSessionAcceptLanguage :: (MonadIO m, SessionK o) => o -> T.Text -> m ()
-setSessionAcceptLanguage obj val = liftIO $ setObjectPropertyString obj "accept-language" val
+setSessionAcceptLanguage obj val = liftIO $ setObjectPropertyString obj "accept-language" (Just val)
 
 constructSessionAcceptLanguage :: T.Text -> IO ([Char], GValue)
-constructSessionAcceptLanguage val = constructObjectPropertyString "accept-language" val
+constructSessionAcceptLanguage val = constructObjectPropertyString "accept-language" (Just val)
 
+clearSessionAcceptLanguage :: (MonadIO m, SessionK o) => o -> m ()
+clearSessionAcceptLanguage obj = liftIO $ setObjectPropertyString obj "accept-language" (Nothing :: Maybe T.Text)
+
 data SessionAcceptLanguagePropertyInfo
 instance AttrInfo SessionAcceptLanguagePropertyInfo where
-    type AttrAllowedOps SessionAcceptLanguagePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SessionAcceptLanguagePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SessionAcceptLanguagePropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint SessionAcceptLanguagePropertyInfo = SessionK
-    type AttrGetType SessionAcceptLanguagePropertyInfo = T.Text
+    type AttrGetType SessionAcceptLanguagePropertyInfo = (Maybe T.Text)
     type AttrLabel SessionAcceptLanguagePropertyInfo = "accept-language"
     attrGet _ = getSessionAcceptLanguage
     attrSet _ = setSessionAcceptLanguage
     attrConstruct _ = constructSessionAcceptLanguage
+    attrClear _ = clearSessionAcceptLanguage
 
 -- VVV Prop "accept-language-auto"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSessionAcceptLanguageAuto :: (MonadIO m, SessionK o) => o -> m Bool
 getSessionAcceptLanguageAuto obj = liftIO $ getObjectPropertyBool obj "accept-language-auto"
@@ -799,15 +834,17 @@
     attrGet _ = getSessionAcceptLanguageAuto
     attrSet _ = setSessionAcceptLanguageAuto
     attrConstruct _ = constructSessionAcceptLanguageAuto
+    attrClear _ = undefined
 
 -- VVV Prop "async-context"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getSessionAsyncContext :: (MonadIO m, SessionK o) => o -> m (Ptr ())
 getSessionAsyncContext obj = liftIO $ getObjectPropertyPtr obj "async-context"
 
-constructSessionAsyncContext :: (Ptr ()) -> IO ([Char], GValue)
+constructSessionAsyncContext :: Ptr () -> IO ([Char], GValue)
 constructSessionAsyncContext val = constructObjectPropertyPtr "async-context" val
 
 data SessionAsyncContextPropertyInfo
@@ -820,67 +857,79 @@
     attrGet _ = getSessionAsyncContext
     attrSet _ = undefined
     attrConstruct _ = constructSessionAsyncContext
+    attrClear _ = undefined
 
 -- VVV Prop "http-aliases"
    -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getSessionHttpAliases :: (MonadIO m, SessionK o) => o -> m [T.Text]
+getSessionHttpAliases :: (MonadIO m, SessionK o) => o -> m (Maybe [T.Text])
 getSessionHttpAliases obj = liftIO $ getObjectPropertyStringArray obj "http-aliases"
 
 setSessionHttpAliases :: (MonadIO m, SessionK o) => o -> [T.Text] -> m ()
-setSessionHttpAliases obj val = liftIO $ setObjectPropertyStringArray obj "http-aliases" val
+setSessionHttpAliases obj val = liftIO $ setObjectPropertyStringArray obj "http-aliases" (Just val)
 
 constructSessionHttpAliases :: [T.Text] -> IO ([Char], GValue)
-constructSessionHttpAliases val = constructObjectPropertyStringArray "http-aliases" val
+constructSessionHttpAliases val = constructObjectPropertyStringArray "http-aliases" (Just val)
 
+clearSessionHttpAliases :: (MonadIO m, SessionK o) => o -> m ()
+clearSessionHttpAliases obj = liftIO $ setObjectPropertyStringArray obj "http-aliases" (Nothing :: Maybe [T.Text])
+
 data SessionHttpAliasesPropertyInfo
 instance AttrInfo SessionHttpAliasesPropertyInfo where
-    type AttrAllowedOps SessionHttpAliasesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SessionHttpAliasesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SessionHttpAliasesPropertyInfo = (~) [T.Text]
     type AttrBaseTypeConstraint SessionHttpAliasesPropertyInfo = SessionK
-    type AttrGetType SessionHttpAliasesPropertyInfo = [T.Text]
+    type AttrGetType SessionHttpAliasesPropertyInfo = (Maybe [T.Text])
     type AttrLabel SessionHttpAliasesPropertyInfo = "http-aliases"
     attrGet _ = getSessionHttpAliases
     attrSet _ = setSessionHttpAliases
     attrConstruct _ = constructSessionHttpAliases
+    attrClear _ = clearSessionHttpAliases
 
 -- VVV Prop "https-aliases"
    -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getSessionHttpsAliases :: (MonadIO m, SessionK o) => o -> m [T.Text]
+getSessionHttpsAliases :: (MonadIO m, SessionK o) => o -> m (Maybe [T.Text])
 getSessionHttpsAliases obj = liftIO $ getObjectPropertyStringArray obj "https-aliases"
 
 setSessionHttpsAliases :: (MonadIO m, SessionK o) => o -> [T.Text] -> m ()
-setSessionHttpsAliases obj val = liftIO $ setObjectPropertyStringArray obj "https-aliases" val
+setSessionHttpsAliases obj val = liftIO $ setObjectPropertyStringArray obj "https-aliases" (Just val)
 
 constructSessionHttpsAliases :: [T.Text] -> IO ([Char], GValue)
-constructSessionHttpsAliases val = constructObjectPropertyStringArray "https-aliases" val
+constructSessionHttpsAliases val = constructObjectPropertyStringArray "https-aliases" (Just val)
 
+clearSessionHttpsAliases :: (MonadIO m, SessionK o) => o -> m ()
+clearSessionHttpsAliases obj = liftIO $ setObjectPropertyStringArray obj "https-aliases" (Nothing :: Maybe [T.Text])
+
 data SessionHttpsAliasesPropertyInfo
 instance AttrInfo SessionHttpsAliasesPropertyInfo where
-    type AttrAllowedOps SessionHttpsAliasesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SessionHttpsAliasesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SessionHttpsAliasesPropertyInfo = (~) [T.Text]
     type AttrBaseTypeConstraint SessionHttpsAliasesPropertyInfo = SessionK
-    type AttrGetType SessionHttpsAliasesPropertyInfo = [T.Text]
+    type AttrGetType SessionHttpsAliasesPropertyInfo = (Maybe [T.Text])
     type AttrLabel SessionHttpsAliasesPropertyInfo = "https-aliases"
     attrGet _ = getSessionHttpsAliases
     attrSet _ = setSessionHttpsAliases
     attrConstruct _ = constructSessionHttpsAliases
+    attrClear _ = clearSessionHttpsAliases
 
 -- VVV Prop "idle-timeout"
-   -- Type: TBasicType TUInt32
+   -- Type: TBasicType TUInt
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSessionIdleTimeout :: (MonadIO m, SessionK o) => o -> m Word32
-getSessionIdleTimeout obj = liftIO $ getObjectPropertyCUInt obj "idle-timeout"
+getSessionIdleTimeout obj = liftIO $ getObjectPropertyUInt32 obj "idle-timeout"
 
 setSessionIdleTimeout :: (MonadIO m, SessionK o) => o -> Word32 -> m ()
-setSessionIdleTimeout obj val = liftIO $ setObjectPropertyCUInt obj "idle-timeout" val
+setSessionIdleTimeout obj val = liftIO $ setObjectPropertyUInt32 obj "idle-timeout" val
 
 constructSessionIdleTimeout :: Word32 -> IO ([Char], GValue)
-constructSessionIdleTimeout val = constructObjectPropertyCUInt "idle-timeout" val
+constructSessionIdleTimeout val = constructObjectPropertyUInt32 "idle-timeout" val
 
 data SessionIdleTimeoutPropertyInfo
 instance AttrInfo SessionIdleTimeoutPropertyInfo where
@@ -892,40 +941,44 @@
     attrGet _ = getSessionIdleTimeout
     attrSet _ = setSessionIdleTimeout
     attrConstruct _ = constructSessionIdleTimeout
+    attrClear _ = undefined
 
 -- VVV Prop "local-address"
    -- Type: TInterface "Soup" "Address"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
-getSessionLocalAddress :: (MonadIO m, SessionK o) => o -> m Address
+getSessionLocalAddress :: (MonadIO m, SessionK o) => o -> m (Maybe Address)
 getSessionLocalAddress obj = liftIO $ getObjectPropertyObject obj "local-address" Address
 
 constructSessionLocalAddress :: (AddressK a) => a -> IO ([Char], GValue)
-constructSessionLocalAddress val = constructObjectPropertyObject "local-address" val
+constructSessionLocalAddress val = constructObjectPropertyObject "local-address" (Just val)
 
 data SessionLocalAddressPropertyInfo
 instance AttrInfo SessionLocalAddressPropertyInfo where
-    type AttrAllowedOps SessionLocalAddressPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SessionLocalAddressPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SessionLocalAddressPropertyInfo = AddressK
     type AttrBaseTypeConstraint SessionLocalAddressPropertyInfo = SessionK
-    type AttrGetType SessionLocalAddressPropertyInfo = Address
+    type AttrGetType SessionLocalAddressPropertyInfo = (Maybe Address)
     type AttrLabel SessionLocalAddressPropertyInfo = "local-address"
     attrGet _ = getSessionLocalAddress
     attrSet _ = undefined
     attrConstruct _ = constructSessionLocalAddress
+    attrClear _ = undefined
 
 -- VVV Prop "max-conns"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSessionMaxConns :: (MonadIO m, SessionK o) => o -> m Int32
-getSessionMaxConns obj = liftIO $ getObjectPropertyCInt obj "max-conns"
+getSessionMaxConns obj = liftIO $ getObjectPropertyInt32 obj "max-conns"
 
 setSessionMaxConns :: (MonadIO m, SessionK o) => o -> Int32 -> m ()
-setSessionMaxConns obj val = liftIO $ setObjectPropertyCInt obj "max-conns" val
+setSessionMaxConns obj val = liftIO $ setObjectPropertyInt32 obj "max-conns" val
 
 constructSessionMaxConns :: Int32 -> IO ([Char], GValue)
-constructSessionMaxConns val = constructObjectPropertyCInt "max-conns" val
+constructSessionMaxConns val = constructObjectPropertyInt32 "max-conns" val
 
 data SessionMaxConnsPropertyInfo
 instance AttrInfo SessionMaxConnsPropertyInfo where
@@ -937,19 +990,21 @@
     attrGet _ = getSessionMaxConns
     attrSet _ = setSessionMaxConns
     attrConstruct _ = constructSessionMaxConns
+    attrClear _ = undefined
 
 -- VVV Prop "max-conns-per-host"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSessionMaxConnsPerHost :: (MonadIO m, SessionK o) => o -> m Int32
-getSessionMaxConnsPerHost obj = liftIO $ getObjectPropertyCInt obj "max-conns-per-host"
+getSessionMaxConnsPerHost obj = liftIO $ getObjectPropertyInt32 obj "max-conns-per-host"
 
 setSessionMaxConnsPerHost :: (MonadIO m, SessionK o) => o -> Int32 -> m ()
-setSessionMaxConnsPerHost obj val = liftIO $ setObjectPropertyCInt obj "max-conns-per-host" val
+setSessionMaxConnsPerHost obj val = liftIO $ setObjectPropertyInt32 obj "max-conns-per-host" val
 
 constructSessionMaxConnsPerHost :: Int32 -> IO ([Char], GValue)
-constructSessionMaxConnsPerHost val = constructObjectPropertyCInt "max-conns-per-host" val
+constructSessionMaxConnsPerHost val = constructObjectPropertyInt32 "max-conns-per-host" val
 
 data SessionMaxConnsPerHostPropertyInfo
 instance AttrInfo SessionMaxConnsPerHostPropertyInfo where
@@ -961,82 +1016,99 @@
     attrGet _ = getSessionMaxConnsPerHost
     attrSet _ = setSessionMaxConnsPerHost
     attrConstruct _ = constructSessionMaxConnsPerHost
+    attrClear _ = undefined
 
 -- VVV Prop "proxy-resolver"
    -- Type: TInterface "Gio" "ProxyResolver"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getSessionProxyResolver :: (MonadIO m, SessionK o) => o -> m Gio.ProxyResolver
+getSessionProxyResolver :: (MonadIO m, SessionK o) => o -> m (Maybe Gio.ProxyResolver)
 getSessionProxyResolver obj = liftIO $ getObjectPropertyObject obj "proxy-resolver" Gio.ProxyResolver
 
 setSessionProxyResolver :: (MonadIO m, SessionK o, Gio.ProxyResolverK a) => o -> a -> m ()
-setSessionProxyResolver obj val = liftIO $ setObjectPropertyObject obj "proxy-resolver" val
+setSessionProxyResolver obj val = liftIO $ setObjectPropertyObject obj "proxy-resolver" (Just val)
 
 constructSessionProxyResolver :: (Gio.ProxyResolverK a) => a -> IO ([Char], GValue)
-constructSessionProxyResolver val = constructObjectPropertyObject "proxy-resolver" val
+constructSessionProxyResolver val = constructObjectPropertyObject "proxy-resolver" (Just val)
 
+clearSessionProxyResolver :: (MonadIO m, SessionK o) => o -> m ()
+clearSessionProxyResolver obj = liftIO $ setObjectPropertyObject obj "proxy-resolver" (Nothing :: Maybe Gio.ProxyResolver)
+
 data SessionProxyResolverPropertyInfo
 instance AttrInfo SessionProxyResolverPropertyInfo where
-    type AttrAllowedOps SessionProxyResolverPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SessionProxyResolverPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SessionProxyResolverPropertyInfo = Gio.ProxyResolverK
     type AttrBaseTypeConstraint SessionProxyResolverPropertyInfo = SessionK
-    type AttrGetType SessionProxyResolverPropertyInfo = Gio.ProxyResolver
+    type AttrGetType SessionProxyResolverPropertyInfo = (Maybe Gio.ProxyResolver)
     type AttrLabel SessionProxyResolverPropertyInfo = "proxy-resolver"
     attrGet _ = getSessionProxyResolver
     attrSet _ = setSessionProxyResolver
     attrConstruct _ = constructSessionProxyResolver
+    attrClear _ = clearSessionProxyResolver
 
 -- VVV Prop "proxy-uri"
    -- Type: TInterface "Soup" "URI"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getSessionProxyUri :: (MonadIO m, SessionK o) => o -> m URI
+getSessionProxyUri :: (MonadIO m, SessionK o) => o -> m (Maybe URI)
 getSessionProxyUri obj = liftIO $ getObjectPropertyBoxed obj "proxy-uri" URI
 
 setSessionProxyUri :: (MonadIO m, SessionK o) => o -> URI -> m ()
-setSessionProxyUri obj val = liftIO $ setObjectPropertyBoxed obj "proxy-uri" val
+setSessionProxyUri obj val = liftIO $ setObjectPropertyBoxed obj "proxy-uri" (Just val)
 
 constructSessionProxyUri :: URI -> IO ([Char], GValue)
-constructSessionProxyUri val = constructObjectPropertyBoxed "proxy-uri" val
+constructSessionProxyUri val = constructObjectPropertyBoxed "proxy-uri" (Just val)
 
+clearSessionProxyUri :: (MonadIO m, SessionK o) => o -> m ()
+clearSessionProxyUri obj = liftIO $ setObjectPropertyBoxed obj "proxy-uri" (Nothing :: Maybe URI)
+
 data SessionProxyUriPropertyInfo
 instance AttrInfo SessionProxyUriPropertyInfo where
-    type AttrAllowedOps SessionProxyUriPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SessionProxyUriPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SessionProxyUriPropertyInfo = (~) URI
     type AttrBaseTypeConstraint SessionProxyUriPropertyInfo = SessionK
-    type AttrGetType SessionProxyUriPropertyInfo = URI
+    type AttrGetType SessionProxyUriPropertyInfo = (Maybe URI)
     type AttrLabel SessionProxyUriPropertyInfo = "proxy-uri"
     attrGet _ = getSessionProxyUri
     attrSet _ = setSessionProxyUri
     attrConstruct _ = constructSessionProxyUri
+    attrClear _ = clearSessionProxyUri
 
 -- VVV Prop "ssl-ca-file"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getSessionSslCaFile :: (MonadIO m, SessionK o) => o -> m T.Text
+getSessionSslCaFile :: (MonadIO m, SessionK o) => o -> m (Maybe T.Text)
 getSessionSslCaFile obj = liftIO $ getObjectPropertyString obj "ssl-ca-file"
 
 setSessionSslCaFile :: (MonadIO m, SessionK o) => o -> T.Text -> m ()
-setSessionSslCaFile obj val = liftIO $ setObjectPropertyString obj "ssl-ca-file" val
+setSessionSslCaFile obj val = liftIO $ setObjectPropertyString obj "ssl-ca-file" (Just val)
 
 constructSessionSslCaFile :: T.Text -> IO ([Char], GValue)
-constructSessionSslCaFile val = constructObjectPropertyString "ssl-ca-file" val
+constructSessionSslCaFile val = constructObjectPropertyString "ssl-ca-file" (Just val)
 
+clearSessionSslCaFile :: (MonadIO m, SessionK o) => o -> m ()
+clearSessionSslCaFile obj = liftIO $ setObjectPropertyString obj "ssl-ca-file" (Nothing :: Maybe T.Text)
+
 data SessionSslCaFilePropertyInfo
 instance AttrInfo SessionSslCaFilePropertyInfo where
-    type AttrAllowedOps SessionSslCaFilePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SessionSslCaFilePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SessionSslCaFilePropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint SessionSslCaFilePropertyInfo = SessionK
-    type AttrGetType SessionSslCaFilePropertyInfo = T.Text
+    type AttrGetType SessionSslCaFilePropertyInfo = (Maybe T.Text)
     type AttrLabel SessionSslCaFilePropertyInfo = "ssl-ca-file"
     attrGet _ = getSessionSslCaFile
     attrSet _ = setSessionSslCaFile
     attrConstruct _ = constructSessionSslCaFile
+    attrClear _ = clearSessionSslCaFile
 
 -- VVV Prop "ssl-strict"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSessionSslStrict :: (MonadIO m, SessionK o) => o -> m Bool
 getSessionSslStrict obj = liftIO $ getObjectPropertyBool obj "ssl-strict"
@@ -1057,10 +1129,12 @@
     attrGet _ = getSessionSslStrict
     attrSet _ = setSessionSslStrict
     attrConstruct _ = constructSessionSslStrict
+    attrClear _ = undefined
 
 -- VVV Prop "ssl-use-system-ca-file"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSessionSslUseSystemCaFile :: (MonadIO m, SessionK o) => o -> m Bool
 getSessionSslUseSystemCaFile obj = liftIO $ getObjectPropertyBool obj "ssl-use-system-ca-file"
@@ -1081,19 +1155,21 @@
     attrGet _ = getSessionSslUseSystemCaFile
     attrSet _ = setSessionSslUseSystemCaFile
     attrConstruct _ = constructSessionSslUseSystemCaFile
+    attrClear _ = undefined
 
 -- VVV Prop "timeout"
-   -- Type: TBasicType TUInt32
+   -- Type: TBasicType TUInt
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSessionTimeout :: (MonadIO m, SessionK o) => o -> m Word32
-getSessionTimeout obj = liftIO $ getObjectPropertyCUInt obj "timeout"
+getSessionTimeout obj = liftIO $ getObjectPropertyUInt32 obj "timeout"
 
 setSessionTimeout :: (MonadIO m, SessionK o) => o -> Word32 -> m ()
-setSessionTimeout obj val = liftIO $ setObjectPropertyCUInt obj "timeout" val
+setSessionTimeout obj val = liftIO $ setObjectPropertyUInt32 obj "timeout" val
 
 constructSessionTimeout :: Word32 -> IO ([Char], GValue)
-constructSessionTimeout val = constructObjectPropertyCUInt "timeout" val
+constructSessionTimeout val = constructObjectPropertyUInt32 "timeout" val
 
 data SessionTimeoutPropertyInfo
 instance AttrInfo SessionTimeoutPropertyInfo where
@@ -1105,58 +1181,70 @@
     attrGet _ = getSessionTimeout
     attrSet _ = setSessionTimeout
     attrConstruct _ = constructSessionTimeout
+    attrClear _ = undefined
 
 -- VVV Prop "tls-database"
    -- Type: TInterface "Gio" "TlsDatabase"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getSessionTlsDatabase :: (MonadIO m, SessionK o) => o -> m Gio.TlsDatabase
+getSessionTlsDatabase :: (MonadIO m, SessionK o) => o -> m (Maybe Gio.TlsDatabase)
 getSessionTlsDatabase obj = liftIO $ getObjectPropertyObject obj "tls-database" Gio.TlsDatabase
 
 setSessionTlsDatabase :: (MonadIO m, SessionK o, Gio.TlsDatabaseK a) => o -> a -> m ()
-setSessionTlsDatabase obj val = liftIO $ setObjectPropertyObject obj "tls-database" val
+setSessionTlsDatabase obj val = liftIO $ setObjectPropertyObject obj "tls-database" (Just val)
 
 constructSessionTlsDatabase :: (Gio.TlsDatabaseK a) => a -> IO ([Char], GValue)
-constructSessionTlsDatabase val = constructObjectPropertyObject "tls-database" val
+constructSessionTlsDatabase val = constructObjectPropertyObject "tls-database" (Just val)
 
+clearSessionTlsDatabase :: (MonadIO m, SessionK o) => o -> m ()
+clearSessionTlsDatabase obj = liftIO $ setObjectPropertyObject obj "tls-database" (Nothing :: Maybe Gio.TlsDatabase)
+
 data SessionTlsDatabasePropertyInfo
 instance AttrInfo SessionTlsDatabasePropertyInfo where
-    type AttrAllowedOps SessionTlsDatabasePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SessionTlsDatabasePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SessionTlsDatabasePropertyInfo = Gio.TlsDatabaseK
     type AttrBaseTypeConstraint SessionTlsDatabasePropertyInfo = SessionK
-    type AttrGetType SessionTlsDatabasePropertyInfo = Gio.TlsDatabase
+    type AttrGetType SessionTlsDatabasePropertyInfo = (Maybe Gio.TlsDatabase)
     type AttrLabel SessionTlsDatabasePropertyInfo = "tls-database"
     attrGet _ = getSessionTlsDatabase
     attrSet _ = setSessionTlsDatabase
     attrConstruct _ = constructSessionTlsDatabase
+    attrClear _ = clearSessionTlsDatabase
 
 -- VVV Prop "tls-interaction"
    -- Type: TInterface "Gio" "TlsInteraction"
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getSessionTlsInteraction :: (MonadIO m, SessionK o) => o -> m Gio.TlsInteraction
+getSessionTlsInteraction :: (MonadIO m, SessionK o) => o -> m (Maybe Gio.TlsInteraction)
 getSessionTlsInteraction obj = liftIO $ getObjectPropertyObject obj "tls-interaction" Gio.TlsInteraction
 
 setSessionTlsInteraction :: (MonadIO m, SessionK o, Gio.TlsInteractionK a) => o -> a -> m ()
-setSessionTlsInteraction obj val = liftIO $ setObjectPropertyObject obj "tls-interaction" val
+setSessionTlsInteraction obj val = liftIO $ setObjectPropertyObject obj "tls-interaction" (Just val)
 
 constructSessionTlsInteraction :: (Gio.TlsInteractionK a) => a -> IO ([Char], GValue)
-constructSessionTlsInteraction val = constructObjectPropertyObject "tls-interaction" val
+constructSessionTlsInteraction val = constructObjectPropertyObject "tls-interaction" (Just val)
 
+clearSessionTlsInteraction :: (MonadIO m, SessionK o) => o -> m ()
+clearSessionTlsInteraction obj = liftIO $ setObjectPropertyObject obj "tls-interaction" (Nothing :: Maybe Gio.TlsInteraction)
+
 data SessionTlsInteractionPropertyInfo
 instance AttrInfo SessionTlsInteractionPropertyInfo where
-    type AttrAllowedOps SessionTlsInteractionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SessionTlsInteractionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SessionTlsInteractionPropertyInfo = Gio.TlsInteractionK
     type AttrBaseTypeConstraint SessionTlsInteractionPropertyInfo = SessionK
-    type AttrGetType SessionTlsInteractionPropertyInfo = Gio.TlsInteraction
+    type AttrGetType SessionTlsInteractionPropertyInfo = (Maybe Gio.TlsInteraction)
     type AttrLabel SessionTlsInteractionPropertyInfo = "tls-interaction"
     attrGet _ = getSessionTlsInteraction
     attrSet _ = setSessionTlsInteraction
     attrConstruct _ = constructSessionTlsInteraction
+    attrClear _ = clearSessionTlsInteraction
 
 -- VVV Prop "use-ntlm"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSessionUseNtlm :: (MonadIO m, SessionK o) => o -> m Bool
 getSessionUseNtlm obj = liftIO $ getObjectPropertyBool obj "use-ntlm"
@@ -1177,10 +1265,12 @@
     attrGet _ = getSessionUseNtlm
     attrSet _ = setSessionUseNtlm
     attrConstruct _ = constructSessionUseNtlm
+    attrClear _ = undefined
 
 -- VVV Prop "use-thread-context"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSessionUseThreadContext :: (MonadIO m, SessionK o) => o -> m Bool
 getSessionUseThreadContext obj = liftIO $ getObjectPropertyBool obj "use-thread-context"
@@ -1201,34 +1291,100 @@
     attrGet _ = getSessionUseThreadContext
     attrSet _ = setSessionUseThreadContext
     attrConstruct _ = constructSessionUseThreadContext
+    attrClear _ = undefined
 
 -- VVV Prop "user-agent"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
-getSessionUserAgent :: (MonadIO m, SessionK o) => o -> m T.Text
+getSessionUserAgent :: (MonadIO m, SessionK o) => o -> m (Maybe T.Text)
 getSessionUserAgent obj = liftIO $ getObjectPropertyString obj "user-agent"
 
 setSessionUserAgent :: (MonadIO m, SessionK o) => o -> T.Text -> m ()
-setSessionUserAgent obj val = liftIO $ setObjectPropertyString obj "user-agent" val
+setSessionUserAgent obj val = liftIO $ setObjectPropertyString obj "user-agent" (Just val)
 
 constructSessionUserAgent :: T.Text -> IO ([Char], GValue)
-constructSessionUserAgent val = constructObjectPropertyString "user-agent" val
+constructSessionUserAgent val = constructObjectPropertyString "user-agent" (Just val)
 
+clearSessionUserAgent :: (MonadIO m, SessionK o) => o -> m ()
+clearSessionUserAgent obj = liftIO $ setObjectPropertyString obj "user-agent" (Nothing :: Maybe T.Text)
+
 data SessionUserAgentPropertyInfo
 instance AttrInfo SessionUserAgentPropertyInfo where
-    type AttrAllowedOps SessionUserAgentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SessionUserAgentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SessionUserAgentPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint SessionUserAgentPropertyInfo = SessionK
-    type AttrGetType SessionUserAgentPropertyInfo = T.Text
+    type AttrGetType SessionUserAgentPropertyInfo = (Maybe T.Text)
     type AttrLabel SessionUserAgentPropertyInfo = "user-agent"
     attrGet _ = getSessionUserAgent
     attrSet _ = setSessionUserAgent
     attrConstruct _ = constructSessionUserAgent
+    attrClear _ = clearSessionUserAgent
 
 type instance AttributeList Session = SessionAttributeList
 type SessionAttributeList = ('[ '("acceptLanguage", SessionAcceptLanguagePropertyInfo), '("acceptLanguageAuto", SessionAcceptLanguageAutoPropertyInfo), '("asyncContext", SessionAsyncContextPropertyInfo), '("httpAliases", SessionHttpAliasesPropertyInfo), '("httpsAliases", SessionHttpsAliasesPropertyInfo), '("idleTimeout", SessionIdleTimeoutPropertyInfo), '("localAddress", SessionLocalAddressPropertyInfo), '("maxConns", SessionMaxConnsPropertyInfo), '("maxConnsPerHost", SessionMaxConnsPerHostPropertyInfo), '("proxyResolver", SessionProxyResolverPropertyInfo), '("proxyUri", SessionProxyUriPropertyInfo), '("sslCaFile", SessionSslCaFilePropertyInfo), '("sslStrict", SessionSslStrictPropertyInfo), '("sslUseSystemCaFile", SessionSslUseSystemCaFilePropertyInfo), '("timeout", SessionTimeoutPropertyInfo), '("tlsDatabase", SessionTlsDatabasePropertyInfo), '("tlsInteraction", SessionTlsInteractionPropertyInfo), '("useNtlm", SessionUseNtlmPropertyInfo), '("useThreadContext", SessionUseThreadContextPropertyInfo), '("userAgent", SessionUserAgentPropertyInfo)] :: [(Symbol, *)])
 
+sessionAcceptLanguage :: AttrLabelProxy "acceptLanguage"
+sessionAcceptLanguage = AttrLabelProxy
+
+sessionAcceptLanguageAuto :: AttrLabelProxy "acceptLanguageAuto"
+sessionAcceptLanguageAuto = AttrLabelProxy
+
+sessionAsyncContext :: AttrLabelProxy "asyncContext"
+sessionAsyncContext = AttrLabelProxy
+
+sessionHttpAliases :: AttrLabelProxy "httpAliases"
+sessionHttpAliases = AttrLabelProxy
+
+sessionHttpsAliases :: AttrLabelProxy "httpsAliases"
+sessionHttpsAliases = AttrLabelProxy
+
+sessionIdleTimeout :: AttrLabelProxy "idleTimeout"
+sessionIdleTimeout = AttrLabelProxy
+
+sessionLocalAddress :: AttrLabelProxy "localAddress"
+sessionLocalAddress = AttrLabelProxy
+
+sessionMaxConns :: AttrLabelProxy "maxConns"
+sessionMaxConns = AttrLabelProxy
+
+sessionMaxConnsPerHost :: AttrLabelProxy "maxConnsPerHost"
+sessionMaxConnsPerHost = AttrLabelProxy
+
+sessionProxyResolver :: AttrLabelProxy "proxyResolver"
+sessionProxyResolver = AttrLabelProxy
+
+sessionProxyUri :: AttrLabelProxy "proxyUri"
+sessionProxyUri = AttrLabelProxy
+
+sessionSslCaFile :: AttrLabelProxy "sslCaFile"
+sessionSslCaFile = AttrLabelProxy
+
+sessionSslStrict :: AttrLabelProxy "sslStrict"
+sessionSslStrict = AttrLabelProxy
+
+sessionSslUseSystemCaFile :: AttrLabelProxy "sslUseSystemCaFile"
+sessionSslUseSystemCaFile = AttrLabelProxy
+
+sessionTimeout :: AttrLabelProxy "timeout"
+sessionTimeout = AttrLabelProxy
+
+sessionTlsDatabase :: AttrLabelProxy "tlsDatabase"
+sessionTlsDatabase = AttrLabelProxy
+
+sessionTlsInteraction :: AttrLabelProxy "tlsInteraction"
+sessionTlsInteraction = AttrLabelProxy
+
+sessionUseNtlm :: AttrLabelProxy "useNtlm"
+sessionUseNtlm = AttrLabelProxy
+
+sessionUseThreadContext :: AttrLabelProxy "useThreadContext"
+sessionUseThreadContext = AttrLabelProxy
+
+sessionUserAgent :: AttrLabelProxy "userAgent"
+sessionUserAgent = AttrLabelProxy
+
 data SessionAuthenticateSignalInfo
 instance SignalInfo SessionAuthenticateSignalInfo where
     type HaskellCallbackType SessionAuthenticateSignalInfo = SessionAuthenticateCallback
@@ -1266,7 +1422,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Soup" "Session"
+-- returnType : Just (TInterface "Soup" "Session")
 -- throws : False
 -- Skip return : False
 
@@ -1287,7 +1443,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", 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
 
@@ -1314,7 +1470,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature", argType = TInterface "Soup" "SessionFeature", 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
 
@@ -1345,7 +1501,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature_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
 
@@ -1373,16 +1529,16 @@
 
 -- method Session::cancel_message
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "status_code", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "status_code", 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 "soup_session_cancel_message" soup_session_cancel_message :: 
     Ptr Session ->                          -- _obj : TInterface "Soup" "Session"
     Ptr Message ->                          -- msg : TInterface "Soup" "Message"
-    Word32 ->                               -- status_code : TBasicType TUInt32
+    Word32 ->                               -- status_code : TBasicType TUInt
     IO ()
 
 
@@ -1408,7 +1564,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "MainContext"
+-- returnType : Just (TInterface "GLib" "MainContext")
 -- throws : False
 -- Skip return : False
 
@@ -1420,24 +1576,25 @@
 sessionGetAsyncContext ::
     (MonadIO m, SessionK a) =>
     a                                       -- _obj
-    -> m GLib.MainContext                   -- result
+    -> m (Maybe GLib.MainContext)           -- result
 sessionGetAsyncContext _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_session_get_async_context _obj'
-    checkUnexpectedReturnNULL "soup_session_get_async_context" result
-    result' <- (newBoxed GLib.MainContext) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newBoxed GLib.MainContext) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data SessionGetAsyncContextMethodInfo
-instance (signature ~ (m GLib.MainContext), MonadIO m, SessionK a) => MethodInfo SessionGetAsyncContextMethodInfo a signature where
+instance (signature ~ (m (Maybe GLib.MainContext)), MonadIO m, SessionK a) => MethodInfo SessionGetAsyncContextMethodInfo a signature where
     overloadedMethod _ = sessionGetAsyncContext
 
 -- method Session::get_feature
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "SessionFeature"
+-- returnType : Just (TInterface "Soup" "SessionFeature")
 -- throws : False
 -- Skip return : False
 
@@ -1451,25 +1608,26 @@
     (MonadIO m, SessionK a) =>
     a                                       -- _obj
     -> GType                                -- featureType
-    -> m SessionFeature                     -- result
+    -> m (Maybe SessionFeature)             -- result
 sessionGetFeature _obj featureType = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let featureType' = gtypeToCGType featureType
     result <- soup_session_get_feature _obj' featureType'
-    checkUnexpectedReturnNULL "soup_session_get_feature" result
-    result' <- (newObject SessionFeature) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newObject SessionFeature) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data SessionGetFeatureMethodInfo
-instance (signature ~ (GType -> m SessionFeature), MonadIO m, SessionK a) => MethodInfo SessionGetFeatureMethodInfo a signature where
+instance (signature ~ (GType -> m (Maybe SessionFeature)), MonadIO m, SessionK a) => MethodInfo SessionGetFeatureMethodInfo a signature where
     overloadedMethod _ = sessionGetFeature
 
 -- method Session::get_feature_for_message
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "SessionFeature"
+-- returnType : Just (TInterface "Soup" "SessionFeature")
 -- throws : False
 -- Skip return : False
 
@@ -1485,27 +1643,28 @@
     a                                       -- _obj
     -> GType                                -- featureType
     -> b                                    -- msg
-    -> m SessionFeature                     -- result
+    -> m (Maybe SessionFeature)             -- result
 sessionGetFeatureForMessage _obj featureType msg = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let featureType' = gtypeToCGType featureType
     let msg' = unsafeManagedPtrCastPtr msg
     result <- soup_session_get_feature_for_message _obj' featureType' msg'
-    checkUnexpectedReturnNULL "soup_session_get_feature_for_message" result
-    result' <- (newObject SessionFeature) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newObject SessionFeature) result'
+        return result''
     touchManagedPtr _obj
     touchManagedPtr msg
-    return result'
+    return maybeResult
 
 data SessionGetFeatureForMessageMethodInfo
-instance (signature ~ (GType -> b -> m SessionFeature), MonadIO m, SessionK a, MessageK b) => MethodInfo SessionGetFeatureForMessageMethodInfo a signature where
+instance (signature ~ (GType -> b -> m (Maybe SessionFeature)), MonadIO m, SessionK a, MessageK b) => MethodInfo SessionGetFeatureForMessageMethodInfo a signature where
     overloadedMethod _ = sessionGetFeatureForMessage
 
 -- method Session::get_features
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGSList (TInterface "Soup" "SessionFeature")
+-- returnType : Just (TGSList (TInterface "Soup" "SessionFeature"))
 -- throws : False
 -- Skip return : False
 
@@ -1524,7 +1683,6 @@
     let _obj' = unsafeManagedPtrCastPtr _obj
     let featureType' = gtypeToCGType featureType
     result <- soup_session_get_features _obj' featureType'
-    checkUnexpectedReturnNULL "soup_session_get_features" result
     result' <- unpackGSList result
     result'' <- mapM (newObject SessionFeature) result'
     g_slist_free result
@@ -1539,7 +1697,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature_type", argType = TBasicType TGType, 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
 
@@ -1570,7 +1728,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -1599,9 +1757,9 @@
 
 -- method Session::prefetch_dns
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "AddressCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "AddressCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_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
 
@@ -1610,7 +1768,7 @@
     CString ->                              -- hostname : TBasicType TUTF8
     Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
     FunPtr AddressCallbackC ->              -- callback : TInterface "Soup" "AddressCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 
@@ -1651,7 +1809,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", 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
 
@@ -1680,9 +1838,9 @@
 
 -- method Session::queue_message
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "callback", argType = TInterface "Soup" "SessionCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "callback", argType = TInterface "Soup" "SessionCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1690,7 +1848,7 @@
     Ptr Session ->                          -- _obj : TInterface "Soup" "Session"
     Ptr Message ->                          -- msg : TInterface "Soup" "Message"
     FunPtr SessionCallbackC ->              -- callback : TInterface "Soup" "SessionCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 
@@ -1724,7 +1882,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -1756,7 +1914,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature", argType = TInterface "Soup" "SessionFeature", 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
 
@@ -1787,7 +1945,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature_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
 
@@ -1817,7 +1975,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Request"
+-- returnType : Just (TInterface "Soup" "Request")
 -- throws : True
 -- Skip return : False
 
@@ -1855,7 +2013,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "method", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "RequestHTTP"
+-- returnType : Just (TInterface "Soup" "RequestHTTP")
 -- throws : True
 -- Skip return : False
 
@@ -1898,7 +2056,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "method", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "RequestHTTP"
+-- returnType : Just (TInterface "Soup" "RequestHTTP")
 -- throws : True
 -- Skip return : False
 
@@ -1940,7 +2098,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Request"
+-- returnType : Just (TInterface "Soup" "Request")
 -- throws : True
 -- Skip return : False
 
@@ -1978,7 +2136,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -2009,7 +2167,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "InputStream"
+-- returnType : Just (TInterface "Gio" "InputStream")
 -- throws : True
 -- Skip return : False
 
@@ -2053,9 +2211,9 @@
 
 -- method Session::send_async
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_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
 
@@ -2064,7 +2222,7 @@
     Ptr Message ->                          -- msg : TInterface "Soup" "Message"
     Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
     FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 
@@ -2105,7 +2263,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "InputStream"
+-- returnType : Just (TInterface "Gio" "InputStream")
 -- throws : True
 -- Skip return : False
 
@@ -2143,7 +2301,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -2174,7 +2332,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "IOStream"
+-- returnType : Just (TInterface "Gio" "IOStream")
 -- throws : False
 -- Skip return : False
 
@@ -2207,7 +2365,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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
 
@@ -2236,9 +2394,9 @@
 
 -- method Session::websocket_connect_async
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "origin", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocols", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 6, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "origin", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocols", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 6, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_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
 
@@ -2249,7 +2407,7 @@
     Ptr CString ->                          -- protocols : TCArray True (-1) (-1) (TBasicType TUTF8)
     Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
     FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 
@@ -2305,7 +2463,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "WebsocketConnection"
+-- returnType : Just (TInterface "Soup" "WebsocketConnection")
 -- throws : True
 -- Skip return : False
 
@@ -2343,7 +2501,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msg", argType = TInterface "Soup" "Message", 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/Soup/Objects/Session.hs-boot b/GI/Soup/Objects/Session.hs-boot
--- a/GI/Soup/Objects/Session.hs-boot
+++ b/GI/Soup/Objects/Session.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.Session 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/Soup/Objects/SessionAsync.hs b/GI/Soup/Objects/SessionAsync.hs
--- a/GI/Soup/Objects/SessionAsync.hs
+++ b/GI/Soup/Objects/SessionAsync.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
@@ -130,7 +130,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Soup" "SessionAsync"
+-- returnType : Just (TInterface "Soup" "SessionAsync")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Objects/SessionAsync.hs-boot b/GI/Soup/Objects/SessionAsync.hs-boot
--- a/GI/Soup/Objects/SessionAsync.hs-boot
+++ b/GI/Soup/Objects/SessionAsync.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.SessionAsync 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/Soup/Objects/SessionSync.hs b/GI/Soup/Objects/SessionSync.hs
--- a/GI/Soup/Objects/SessionSync.hs
+++ b/GI/Soup/Objects/SessionSync.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
@@ -130,7 +130,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Soup" "SessionSync"
+-- returnType : Just (TInterface "Soup" "SessionSync")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Objects/SessionSync.hs-boot b/GI/Soup/Objects/SessionSync.hs-boot
--- a/GI/Soup/Objects/SessionSync.hs-boot
+++ b/GI/Soup/Objects/SessionSync.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.SessionSync 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/Soup/Objects/Socket.hs b/GI/Soup/Objects/Socket.hs
--- a/GI/Soup/Objects/Socket.hs
+++ b/GI/Soup/Objects/Socket.hs
@@ -94,22 +94,26 @@
     SocketAsyncContextPropertyInfo          ,
     constructSocketAsyncContext             ,
     getSocketAsyncContext                   ,
+    socketAsyncContext                      ,
 
 
 -- ** Fd
     SocketFdPropertyInfo                    ,
     constructSocketFd                       ,
     getSocketFd                             ,
+    socketFd                                ,
 
 
 -- ** Gsocket
     SocketGsocketPropertyInfo               ,
     constructSocketGsocket                  ,
+    socketGsocket                           ,
 
 
 -- ** Iostream
     SocketIostreamPropertyInfo              ,
     constructSocketIostream                 ,
+    socketIostream                          ,
 
 
 -- ** Ipv6Only
@@ -117,17 +121,20 @@
     constructSocketIpv6Only                 ,
     getSocketIpv6Only                       ,
     setSocketIpv6Only                       ,
+    socketIpv6Only                          ,
 
 
 -- ** IsServer
     SocketIsServerPropertyInfo              ,
     getSocketIsServer                       ,
+    socketIsServer                          ,
 
 
 -- ** LocalAddress
     SocketLocalAddressPropertyInfo          ,
     constructSocketLocalAddress             ,
     getSocketLocalAddress                   ,
+    socketLocalAddress                      ,
 
 
 -- ** NonBlocking
@@ -135,12 +142,14 @@
     constructSocketNonBlocking              ,
     getSocketNonBlocking                    ,
     setSocketNonBlocking                    ,
+    socketNonBlocking                       ,
 
 
 -- ** RemoteAddress
     SocketRemoteAddressPropertyInfo         ,
     constructSocketRemoteAddress            ,
     getSocketRemoteAddress                  ,
+    socketRemoteAddress                     ,
 
 
 -- ** SslCreds
@@ -148,18 +157,21 @@
     constructSocketSslCreds                 ,
     getSocketSslCreds                       ,
     setSocketSslCreds                       ,
+    socketSslCreds                          ,
 
 
 -- ** SslFallback
     SocketSslFallbackPropertyInfo           ,
     constructSocketSslFallback              ,
     getSocketSslFallback                    ,
+    socketSslFallback                       ,
 
 
 -- ** SslStrict
     SocketSslStrictPropertyInfo             ,
     constructSocketSslStrict                ,
     getSocketSslStrict                      ,
+    socketSslStrict                         ,
 
 
 -- ** Timeout
@@ -167,27 +179,32 @@
     constructSocketTimeout                  ,
     getSocketTimeout                        ,
     setSocketTimeout                        ,
+    socketTimeout                           ,
 
 
 -- ** TlsCertificate
     SocketTlsCertificatePropertyInfo        ,
     getSocketTlsCertificate                 ,
+    socketTlsCertificate                    ,
 
 
 -- ** TlsErrors
     SocketTlsErrorsPropertyInfo             ,
     getSocketTlsErrors                      ,
+    socketTlsErrors                         ,
 
 
 -- ** TrustedCertificate
     SocketTrustedCertificatePropertyInfo    ,
     getSocketTrustedCertificate             ,
+    socketTrustedCertificate                ,
 
 
 -- ** UseThreadContext
     SocketUseThreadContextPropertyInfo      ,
     constructSocketUseThreadContext         ,
     getSocketUseThreadContext               ,
+    socketUseThreadContext                  ,
 
 
 
@@ -257,9 +274,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
@@ -541,13 +558,14 @@
     connectSignalFunPtr obj "writable" cb' after
 
 -- VVV Prop "async-context"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketAsyncContext :: (MonadIO m, SocketK o) => o -> m (Ptr ())
 getSocketAsyncContext obj = liftIO $ getObjectPropertyPtr obj "async-context"
 
-constructSocketAsyncContext :: (Ptr ()) -> IO ([Char], GValue)
+constructSocketAsyncContext :: Ptr () -> IO ([Char], GValue)
 constructSocketAsyncContext val = constructObjectPropertyPtr "async-context" val
 
 data SocketAsyncContextPropertyInfo
@@ -560,16 +578,18 @@
     attrGet _ = getSocketAsyncContext
     attrSet _ = undefined
     attrConstruct _ = constructSocketAsyncContext
+    attrClear _ = undefined
 
 -- VVV Prop "fd"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just False,Nothing)
 
 getSocketFd :: (MonadIO m, SocketK o) => o -> m Int32
-getSocketFd obj = liftIO $ getObjectPropertyCInt obj "fd"
+getSocketFd obj = liftIO $ getObjectPropertyInt32 obj "fd"
 
 constructSocketFd :: Int32 -> IO ([Char], GValue)
-constructSocketFd val = constructObjectPropertyCInt "fd" val
+constructSocketFd val = constructObjectPropertyInt32 "fd" val
 
 data SocketFdPropertyInfo
 instance AttrInfo SocketFdPropertyInfo where
@@ -581,17 +601,19 @@
     attrGet _ = getSocketFd
     attrSet _ = undefined
     attrConstruct _ = constructSocketFd
+    attrClear _ = undefined
 
 -- VVV Prop "gsocket"
    -- Type: TInterface "Gio" "Socket"
    -- Flags: [PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 constructSocketGsocket :: (Gio.SocketK a) => a -> IO ([Char], GValue)
-constructSocketGsocket val = constructObjectPropertyObject "gsocket" val
+constructSocketGsocket val = constructObjectPropertyObject "gsocket" (Just val)
 
 data SocketGsocketPropertyInfo
 instance AttrInfo SocketGsocketPropertyInfo where
-    type AttrAllowedOps SocketGsocketPropertyInfo = '[ 'AttrConstruct]
+    type AttrAllowedOps SocketGsocketPropertyInfo = '[ 'AttrConstruct, 'AttrClear]
     type AttrSetTypeConstraint SocketGsocketPropertyInfo = Gio.SocketK
     type AttrBaseTypeConstraint SocketGsocketPropertyInfo = SocketK
     type AttrGetType SocketGsocketPropertyInfo = ()
@@ -599,17 +621,19 @@
     attrGet _ = undefined
     attrSet _ = undefined
     attrConstruct _ = constructSocketGsocket
+    attrClear _ = undefined
 
 -- VVV Prop "iostream"
    -- Type: TInterface "Gio" "IOStream"
    -- Flags: [PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 constructSocketIostream :: (Gio.IOStreamK a) => a -> IO ([Char], GValue)
-constructSocketIostream val = constructObjectPropertyObject "iostream" val
+constructSocketIostream val = constructObjectPropertyObject "iostream" (Just val)
 
 data SocketIostreamPropertyInfo
 instance AttrInfo SocketIostreamPropertyInfo where
-    type AttrAllowedOps SocketIostreamPropertyInfo = '[ 'AttrConstruct]
+    type AttrAllowedOps SocketIostreamPropertyInfo = '[ 'AttrConstruct, 'AttrClear]
     type AttrSetTypeConstraint SocketIostreamPropertyInfo = Gio.IOStreamK
     type AttrBaseTypeConstraint SocketIostreamPropertyInfo = SocketK
     type AttrGetType SocketIostreamPropertyInfo = ()
@@ -617,10 +641,12 @@
     attrGet _ = undefined
     attrSet _ = undefined
     attrConstruct _ = constructSocketIostream
+    attrClear _ = undefined
 
 -- VVV Prop "ipv6-only"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketIpv6Only :: (MonadIO m, SocketK o) => o -> m Bool
 getSocketIpv6Only obj = liftIO $ getObjectPropertyBool obj "ipv6-only"
@@ -641,10 +667,12 @@
     attrGet _ = getSocketIpv6Only
     attrSet _ = setSocketIpv6Only
     attrConstruct _ = constructSocketIpv6Only
+    attrClear _ = undefined
 
 -- VVV Prop "is-server"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketIsServer :: (MonadIO m, SocketK o) => o -> m Bool
 getSocketIsServer obj = liftIO $ getObjectPropertyBool obj "is-server"
@@ -659,20 +687,22 @@
     attrGet _ = getSocketIsServer
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "local-address"
    -- Type: TInterface "Soup" "Address"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just False,Nothing)
 
 getSocketLocalAddress :: (MonadIO m, SocketK o) => o -> m Address
-getSocketLocalAddress obj = liftIO $ getObjectPropertyObject obj "local-address" Address
+getSocketLocalAddress obj = liftIO $ checkUnexpectedNothing "getSocketLocalAddress" $ getObjectPropertyObject obj "local-address" Address
 
 constructSocketLocalAddress :: (AddressK a) => a -> IO ([Char], GValue)
-constructSocketLocalAddress val = constructObjectPropertyObject "local-address" val
+constructSocketLocalAddress val = constructObjectPropertyObject "local-address" (Just val)
 
 data SocketLocalAddressPropertyInfo
 instance AttrInfo SocketLocalAddressPropertyInfo where
-    type AttrAllowedOps SocketLocalAddressPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SocketLocalAddressPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SocketLocalAddressPropertyInfo = AddressK
     type AttrBaseTypeConstraint SocketLocalAddressPropertyInfo = SocketK
     type AttrGetType SocketLocalAddressPropertyInfo = Address
@@ -680,10 +710,12 @@
     attrGet _ = getSocketLocalAddress
     attrSet _ = undefined
     attrConstruct _ = constructSocketLocalAddress
+    attrClear _ = undefined
 
 -- VVV Prop "non-blocking"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketNonBlocking :: (MonadIO m, SocketK o) => o -> m Bool
 getSocketNonBlocking obj = liftIO $ getObjectPropertyBool obj "non-blocking"
@@ -704,20 +736,22 @@
     attrGet _ = getSocketNonBlocking
     attrSet _ = setSocketNonBlocking
     attrConstruct _ = constructSocketNonBlocking
+    attrClear _ = undefined
 
 -- VVV Prop "remote-address"
    -- Type: TInterface "Soup" "Address"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just False,Nothing)
 
 getSocketRemoteAddress :: (MonadIO m, SocketK o) => o -> m Address
-getSocketRemoteAddress obj = liftIO $ getObjectPropertyObject obj "remote-address" Address
+getSocketRemoteAddress obj = liftIO $ checkUnexpectedNothing "getSocketRemoteAddress" $ getObjectPropertyObject obj "remote-address" Address
 
 constructSocketRemoteAddress :: (AddressK a) => a -> IO ([Char], GValue)
-constructSocketRemoteAddress val = constructObjectPropertyObject "remote-address" val
+constructSocketRemoteAddress val = constructObjectPropertyObject "remote-address" (Just val)
 
 data SocketRemoteAddressPropertyInfo
 instance AttrInfo SocketRemoteAddressPropertyInfo where
-    type AttrAllowedOps SocketRemoteAddressPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps SocketRemoteAddressPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SocketRemoteAddressPropertyInfo = AddressK
     type AttrBaseTypeConstraint SocketRemoteAddressPropertyInfo = SocketK
     type AttrGetType SocketRemoteAddressPropertyInfo = Address
@@ -725,18 +759,20 @@
     attrGet _ = getSocketRemoteAddress
     attrSet _ = undefined
     attrConstruct _ = constructSocketRemoteAddress
+    attrClear _ = undefined
 
 -- VVV Prop "ssl-creds"
-   -- Type: TBasicType TVoid
+   -- Type: TBasicType TPtr
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketSslCreds :: (MonadIO m, SocketK o) => o -> m (Ptr ())
 getSocketSslCreds obj = liftIO $ getObjectPropertyPtr obj "ssl-creds"
 
-setSocketSslCreds :: (MonadIO m, SocketK o) => o -> (Ptr ()) -> m ()
+setSocketSslCreds :: (MonadIO m, SocketK o) => o -> Ptr () -> m ()
 setSocketSslCreds obj val = liftIO $ setObjectPropertyPtr obj "ssl-creds" val
 
-constructSocketSslCreds :: (Ptr ()) -> IO ([Char], GValue)
+constructSocketSslCreds :: Ptr () -> IO ([Char], GValue)
 constructSocketSslCreds val = constructObjectPropertyPtr "ssl-creds" val
 
 data SocketSslCredsPropertyInfo
@@ -749,10 +785,12 @@
     attrGet _ = getSocketSslCreds
     attrSet _ = setSocketSslCreds
     attrConstruct _ = constructSocketSslCreds
+    attrClear _ = undefined
 
 -- VVV Prop "ssl-fallback"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketSslFallback :: (MonadIO m, SocketK o) => o -> m Bool
 getSocketSslFallback obj = liftIO $ getObjectPropertyBool obj "ssl-fallback"
@@ -770,10 +808,12 @@
     attrGet _ = getSocketSslFallback
     attrSet _ = undefined
     attrConstruct _ = constructSocketSslFallback
+    attrClear _ = undefined
 
 -- VVV Prop "ssl-strict"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketSslStrict :: (MonadIO m, SocketK o) => o -> m Bool
 getSocketSslStrict obj = liftIO $ getObjectPropertyBool obj "ssl-strict"
@@ -791,19 +831,21 @@
     attrGet _ = getSocketSslStrict
     attrSet _ = undefined
     attrConstruct _ = constructSocketSslStrict
+    attrClear _ = undefined
 
 -- VVV Prop "timeout"
-   -- Type: TBasicType TUInt32
+   -- Type: TBasicType TUInt
    -- Flags: [PropertyReadable,PropertyWritable]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketTimeout :: (MonadIO m, SocketK o) => o -> m Word32
-getSocketTimeout obj = liftIO $ getObjectPropertyCUInt obj "timeout"
+getSocketTimeout obj = liftIO $ getObjectPropertyUInt32 obj "timeout"
 
 setSocketTimeout :: (MonadIO m, SocketK o) => o -> Word32 -> m ()
-setSocketTimeout obj val = liftIO $ setObjectPropertyCUInt obj "timeout" val
+setSocketTimeout obj val = liftIO $ setObjectPropertyUInt32 obj "timeout" val
 
 constructSocketTimeout :: Word32 -> IO ([Char], GValue)
-constructSocketTimeout val = constructObjectPropertyCUInt "timeout" val
+constructSocketTimeout val = constructObjectPropertyUInt32 "timeout" val
 
 data SocketTimeoutPropertyInfo
 instance AttrInfo SocketTimeoutPropertyInfo where
@@ -815,28 +857,32 @@
     attrGet _ = getSocketTimeout
     attrSet _ = setSocketTimeout
     attrConstruct _ = constructSocketTimeout
+    attrClear _ = undefined
 
 -- VVV Prop "tls-certificate"
    -- Type: TInterface "Gio" "TlsCertificate"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getSocketTlsCertificate :: (MonadIO m, SocketK o) => o -> m Gio.TlsCertificate
+getSocketTlsCertificate :: (MonadIO m, SocketK o) => o -> m (Maybe Gio.TlsCertificate)
 getSocketTlsCertificate obj = liftIO $ getObjectPropertyObject obj "tls-certificate" Gio.TlsCertificate
 
 data SocketTlsCertificatePropertyInfo
 instance AttrInfo SocketTlsCertificatePropertyInfo where
-    type AttrAllowedOps SocketTlsCertificatePropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps SocketTlsCertificatePropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint SocketTlsCertificatePropertyInfo = (~) ()
     type AttrBaseTypeConstraint SocketTlsCertificatePropertyInfo = SocketK
-    type AttrGetType SocketTlsCertificatePropertyInfo = Gio.TlsCertificate
+    type AttrGetType SocketTlsCertificatePropertyInfo = (Maybe Gio.TlsCertificate)
     type AttrLabel SocketTlsCertificatePropertyInfo = "tls-certificate"
     attrGet _ = getSocketTlsCertificate
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "tls-errors"
    -- Type: TInterface "Gio" "TlsCertificateFlags"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketTlsErrors :: (MonadIO m, SocketK o) => o -> m [Gio.TlsCertificateFlags]
 getSocketTlsErrors obj = liftIO $ getObjectPropertyFlags obj "tls-errors"
@@ -851,10 +897,12 @@
     attrGet _ = getSocketTlsErrors
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "trusted-certificate"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketTrustedCertificate :: (MonadIO m, SocketK o) => o -> m Bool
 getSocketTrustedCertificate obj = liftIO $ getObjectPropertyBool obj "trusted-certificate"
@@ -869,10 +917,12 @@
     attrGet _ = getSocketTrustedCertificate
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "use-thread-context"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Nothing,Nothing)
 
 getSocketUseThreadContext :: (MonadIO m, SocketK o) => o -> m Bool
 getSocketUseThreadContext obj = liftIO $ getObjectPropertyBool obj "use-thread-context"
@@ -890,10 +940,62 @@
     attrGet _ = getSocketUseThreadContext
     attrSet _ = undefined
     attrConstruct _ = constructSocketUseThreadContext
+    attrClear _ = undefined
 
 type instance AttributeList Socket = SocketAttributeList
 type SocketAttributeList = ('[ '("asyncContext", SocketAsyncContextPropertyInfo), '("fd", SocketFdPropertyInfo), '("gsocket", SocketGsocketPropertyInfo), '("iostream", SocketIostreamPropertyInfo), '("ipv6Only", SocketIpv6OnlyPropertyInfo), '("isServer", SocketIsServerPropertyInfo), '("localAddress", SocketLocalAddressPropertyInfo), '("nonBlocking", SocketNonBlockingPropertyInfo), '("remoteAddress", SocketRemoteAddressPropertyInfo), '("sslCreds", SocketSslCredsPropertyInfo), '("sslFallback", SocketSslFallbackPropertyInfo), '("sslStrict", SocketSslStrictPropertyInfo), '("timeout", SocketTimeoutPropertyInfo), '("tlsCertificate", SocketTlsCertificatePropertyInfo), '("tlsErrors", SocketTlsErrorsPropertyInfo), '("trustedCertificate", SocketTrustedCertificatePropertyInfo), '("useThreadContext", SocketUseThreadContextPropertyInfo)] :: [(Symbol, *)])
 
+socketAsyncContext :: AttrLabelProxy "asyncContext"
+socketAsyncContext = AttrLabelProxy
+
+socketFd :: AttrLabelProxy "fd"
+socketFd = AttrLabelProxy
+
+socketGsocket :: AttrLabelProxy "gsocket"
+socketGsocket = AttrLabelProxy
+
+socketIostream :: AttrLabelProxy "iostream"
+socketIostream = AttrLabelProxy
+
+socketIpv6Only :: AttrLabelProxy "ipv6Only"
+socketIpv6Only = AttrLabelProxy
+
+socketIsServer :: AttrLabelProxy "isServer"
+socketIsServer = AttrLabelProxy
+
+socketLocalAddress :: AttrLabelProxy "localAddress"
+socketLocalAddress = AttrLabelProxy
+
+socketNonBlocking :: AttrLabelProxy "nonBlocking"
+socketNonBlocking = AttrLabelProxy
+
+socketRemoteAddress :: AttrLabelProxy "remoteAddress"
+socketRemoteAddress = AttrLabelProxy
+
+socketSslCreds :: AttrLabelProxy "sslCreds"
+socketSslCreds = AttrLabelProxy
+
+socketSslFallback :: AttrLabelProxy "sslFallback"
+socketSslFallback = AttrLabelProxy
+
+socketSslStrict :: AttrLabelProxy "sslStrict"
+socketSslStrict = AttrLabelProxy
+
+socketTimeout :: AttrLabelProxy "timeout"
+socketTimeout = AttrLabelProxy
+
+socketTlsCertificate :: AttrLabelProxy "tlsCertificate"
+socketTlsCertificate = AttrLabelProxy
+
+socketTlsErrors :: AttrLabelProxy "tlsErrors"
+socketTlsErrors = AttrLabelProxy
+
+socketTrustedCertificate :: AttrLabelProxy "trustedCertificate"
+socketTrustedCertificate = AttrLabelProxy
+
+socketUseThreadContext :: AttrLabelProxy "useThreadContext"
+socketUseThreadContext = AttrLabelProxy
+
 data SocketDisconnectedSignalInfo
 instance SignalInfo SocketDisconnectedSignalInfo where
     type HaskellCallbackType SocketDisconnectedSignalInfo = SocketDisconnectedCallback
@@ -924,9 +1026,9 @@
 
 -- method Socket::connect_async
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "SocketCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "SocketCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_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
 
@@ -934,7 +1036,7 @@
     Ptr Socket ->                           -- _obj : TInterface "Soup" "Socket"
     Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
     FunPtr SocketCallbackC ->               -- callback : TInterface "Soup" "SocketCallback"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 
@@ -968,7 +1070,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -1003,7 +1105,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", 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
 
@@ -1030,7 +1132,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", 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
 
@@ -1057,7 +1159,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Address"
+-- returnType : Just (TInterface "Soup" "Address")
 -- throws : False
 -- Skip return : False
 
@@ -1086,7 +1188,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Address"
+-- returnType : Just (TInterface "Soup" "Address")
 -- throws : False
 -- Skip return : False
 
@@ -1115,7 +1217,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "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
 
@@ -1143,7 +1245,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "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
 
@@ -1171,7 +1273,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "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
 
@@ -1199,7 +1301,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nread", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TInterface "Soup" "SocketIOStatus"
+-- returnType : Just (TInterface "Soup" "SocketIOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -1249,9 +1351,9 @@
 
 -- method Socket::read_until
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boundary", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boundary_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nread", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "got_boundary", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boundary", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boundary_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nread", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "got_boundary", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TInterface "Soup" "SocketIOStatus"
+-- returnType : Just (TInterface "Soup" "SocketIOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -1259,7 +1361,7 @@
     Ptr Socket ->                           -- _obj : TInterface "Soup" "Socket"
     Ptr Word8 ->                            -- buffer : TCArray False (-1) 2 (TBasicType TUInt8)
     Word64 ->                               -- len : TBasicType TUInt64
-    Ptr () ->                               -- boundary : TBasicType TVoid
+    Ptr () ->                               -- boundary : TBasicType TPtr
     Word64 ->                               -- boundary_len : TBasicType TUInt64
     Ptr Word64 ->                           -- nread : TBasicType TUInt64
     CInt ->                                 -- got_boundary : TBasicType TBoolean
@@ -1310,7 +1412,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ssl_host", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -1350,7 +1452,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -1386,7 +1488,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Socket", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nwrote", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TInterface "Soup" "SocketIOStatus"
+-- returnType : Just (TInterface "Soup" "SocketIOStatus")
 -- throws : True
 -- Skip return : False
 
diff --git a/GI/Soup/Objects/Socket.hs-boot b/GI/Soup/Objects/Socket.hs-boot
--- a/GI/Soup/Objects/Socket.hs-boot
+++ b/GI/Soup/Objects/Socket.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.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/Soup/Objects/WebsocketConnection.hs b/GI/Soup/Objects/WebsocketConnection.hs
--- a/GI/Soup/Objects/WebsocketConnection.hs
+++ b/GI/Soup/Objects/WebsocketConnection.hs
@@ -83,35 +83,41 @@
     WebsocketConnectionConnectionTypePropertyInfo,
     constructWebsocketConnectionConnectionType,
     getWebsocketConnectionConnectionType    ,
+    websocketConnectionConnectionType       ,
 
 
 -- ** IoStream
     WebsocketConnectionIoStreamPropertyInfo ,
     constructWebsocketConnectionIoStream    ,
     getWebsocketConnectionIoStream          ,
+    websocketConnectionIoStream             ,
 
 
 -- ** Origin
     WebsocketConnectionOriginPropertyInfo   ,
     constructWebsocketConnectionOrigin      ,
     getWebsocketConnectionOrigin            ,
+    websocketConnectionOrigin               ,
 
 
 -- ** Protocol
     WebsocketConnectionProtocolPropertyInfo ,
     constructWebsocketConnectionProtocol    ,
     getWebsocketConnectionProtocol          ,
+    websocketConnectionProtocol             ,
 
 
 -- ** State
     WebsocketConnectionStatePropertyInfo    ,
     getWebsocketConnectionState             ,
+    websocketConnectionState                ,
 
 
 -- ** Uri
     WebsocketConnectionUriPropertyInfo      ,
     constructWebsocketConnectionUri         ,
     getWebsocketConnectionUri               ,
+    websocketConnectionUri                  ,
 
 
 
@@ -169,9 +175,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
@@ -413,6 +419,7 @@
 -- VVV Prop "connection-type"
    -- Type: TInterface "Soup" "WebsocketConnectionType"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just False,Nothing)
 
 getWebsocketConnectionConnectionType :: (MonadIO m, WebsocketConnectionK o) => o -> m WebsocketConnectionType
 getWebsocketConnectionConnectionType obj = liftIO $ getObjectPropertyEnum obj "connection-type"
@@ -430,20 +437,22 @@
     attrGet _ = getWebsocketConnectionConnectionType
     attrSet _ = undefined
     attrConstruct _ = constructWebsocketConnectionConnectionType
+    attrClear _ = undefined
 
 -- VVV Prop "io-stream"
    -- Type: TInterface "Gio" "IOStream"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just False,Nothing)
 
 getWebsocketConnectionIoStream :: (MonadIO m, WebsocketConnectionK o) => o -> m Gio.IOStream
-getWebsocketConnectionIoStream obj = liftIO $ getObjectPropertyObject obj "io-stream" Gio.IOStream
+getWebsocketConnectionIoStream obj = liftIO $ checkUnexpectedNothing "getWebsocketConnectionIoStream" $ getObjectPropertyObject obj "io-stream" Gio.IOStream
 
 constructWebsocketConnectionIoStream :: (Gio.IOStreamK a) => a -> IO ([Char], GValue)
-constructWebsocketConnectionIoStream val = constructObjectPropertyObject "io-stream" val
+constructWebsocketConnectionIoStream val = constructObjectPropertyObject "io-stream" (Just val)
 
 data WebsocketConnectionIoStreamPropertyInfo
 instance AttrInfo WebsocketConnectionIoStreamPropertyInfo where
-    type AttrAllowedOps WebsocketConnectionIoStreamPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps WebsocketConnectionIoStreamPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint WebsocketConnectionIoStreamPropertyInfo = Gio.IOStreamK
     type AttrBaseTypeConstraint WebsocketConnectionIoStreamPropertyInfo = WebsocketConnectionK
     type AttrGetType WebsocketConnectionIoStreamPropertyInfo = Gio.IOStream
@@ -451,52 +460,58 @@
     attrGet _ = getWebsocketConnectionIoStream
     attrSet _ = undefined
     attrConstruct _ = constructWebsocketConnectionIoStream
+    attrClear _ = undefined
 
 -- VVV Prop "origin"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just True,Nothing)
 
-getWebsocketConnectionOrigin :: (MonadIO m, WebsocketConnectionK o) => o -> m T.Text
+getWebsocketConnectionOrigin :: (MonadIO m, WebsocketConnectionK o) => o -> m (Maybe T.Text)
 getWebsocketConnectionOrigin obj = liftIO $ getObjectPropertyString obj "origin"
 
 constructWebsocketConnectionOrigin :: T.Text -> IO ([Char], GValue)
-constructWebsocketConnectionOrigin val = constructObjectPropertyString "origin" val
+constructWebsocketConnectionOrigin val = constructObjectPropertyString "origin" (Just val)
 
 data WebsocketConnectionOriginPropertyInfo
 instance AttrInfo WebsocketConnectionOriginPropertyInfo where
-    type AttrAllowedOps WebsocketConnectionOriginPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps WebsocketConnectionOriginPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint WebsocketConnectionOriginPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint WebsocketConnectionOriginPropertyInfo = WebsocketConnectionK
-    type AttrGetType WebsocketConnectionOriginPropertyInfo = T.Text
+    type AttrGetType WebsocketConnectionOriginPropertyInfo = (Maybe T.Text)
     type AttrLabel WebsocketConnectionOriginPropertyInfo = "origin"
     attrGet _ = getWebsocketConnectionOrigin
     attrSet _ = undefined
     attrConstruct _ = constructWebsocketConnectionOrigin
+    attrClear _ = undefined
 
 -- VVV Prop "protocol"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just True,Nothing)
 
-getWebsocketConnectionProtocol :: (MonadIO m, WebsocketConnectionK o) => o -> m T.Text
+getWebsocketConnectionProtocol :: (MonadIO m, WebsocketConnectionK o) => o -> m (Maybe T.Text)
 getWebsocketConnectionProtocol obj = liftIO $ getObjectPropertyString obj "protocol"
 
 constructWebsocketConnectionProtocol :: T.Text -> IO ([Char], GValue)
-constructWebsocketConnectionProtocol val = constructObjectPropertyString "protocol" val
+constructWebsocketConnectionProtocol val = constructObjectPropertyString "protocol" (Just val)
 
 data WebsocketConnectionProtocolPropertyInfo
 instance AttrInfo WebsocketConnectionProtocolPropertyInfo where
-    type AttrAllowedOps WebsocketConnectionProtocolPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps WebsocketConnectionProtocolPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint WebsocketConnectionProtocolPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint WebsocketConnectionProtocolPropertyInfo = WebsocketConnectionK
-    type AttrGetType WebsocketConnectionProtocolPropertyInfo = T.Text
+    type AttrGetType WebsocketConnectionProtocolPropertyInfo = (Maybe T.Text)
     type AttrLabel WebsocketConnectionProtocolPropertyInfo = "protocol"
     attrGet _ = getWebsocketConnectionProtocol
     attrSet _ = undefined
     attrConstruct _ = constructWebsocketConnectionProtocol
+    attrClear _ = undefined
 
 -- VVV Prop "state"
    -- Type: TInterface "Soup" "WebsocketState"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Just False,Nothing)
 
 getWebsocketConnectionState :: (MonadIO m, WebsocketConnectionK o) => o -> m WebsocketState
 getWebsocketConnectionState obj = liftIO $ getObjectPropertyEnum obj "state"
@@ -511,20 +526,22 @@
     attrGet _ = getWebsocketConnectionState
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "uri"
    -- Type: TInterface "Soup" "URI"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+   -- Nullable: (Just False,Nothing)
 
 getWebsocketConnectionUri :: (MonadIO m, WebsocketConnectionK o) => o -> m URI
-getWebsocketConnectionUri obj = liftIO $ getObjectPropertyBoxed obj "uri" URI
+getWebsocketConnectionUri obj = liftIO $ checkUnexpectedNothing "getWebsocketConnectionUri" $ getObjectPropertyBoxed obj "uri" URI
 
 constructWebsocketConnectionUri :: URI -> IO ([Char], GValue)
-constructWebsocketConnectionUri val = constructObjectPropertyBoxed "uri" val
+constructWebsocketConnectionUri val = constructObjectPropertyBoxed "uri" (Just val)
 
 data WebsocketConnectionUriPropertyInfo
 instance AttrInfo WebsocketConnectionUriPropertyInfo where
-    type AttrAllowedOps WebsocketConnectionUriPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrAllowedOps WebsocketConnectionUriPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint WebsocketConnectionUriPropertyInfo = (~) URI
     type AttrBaseTypeConstraint WebsocketConnectionUriPropertyInfo = WebsocketConnectionK
     type AttrGetType WebsocketConnectionUriPropertyInfo = URI
@@ -532,10 +549,29 @@
     attrGet _ = getWebsocketConnectionUri
     attrSet _ = undefined
     attrConstruct _ = constructWebsocketConnectionUri
+    attrClear _ = undefined
 
 type instance AttributeList WebsocketConnection = WebsocketConnectionAttributeList
 type WebsocketConnectionAttributeList = ('[ '("connectionType", WebsocketConnectionConnectionTypePropertyInfo), '("ioStream", WebsocketConnectionIoStreamPropertyInfo), '("origin", WebsocketConnectionOriginPropertyInfo), '("protocol", WebsocketConnectionProtocolPropertyInfo), '("state", WebsocketConnectionStatePropertyInfo), '("uri", WebsocketConnectionUriPropertyInfo)] :: [(Symbol, *)])
 
+websocketConnectionConnectionType :: AttrLabelProxy "connectionType"
+websocketConnectionConnectionType = AttrLabelProxy
+
+websocketConnectionIoStream :: AttrLabelProxy "ioStream"
+websocketConnectionIoStream = AttrLabelProxy
+
+websocketConnectionOrigin :: AttrLabelProxy "origin"
+websocketConnectionOrigin = AttrLabelProxy
+
+websocketConnectionProtocol :: AttrLabelProxy "protocol"
+websocketConnectionProtocol = AttrLabelProxy
+
+websocketConnectionState :: AttrLabelProxy "state"
+websocketConnectionState = AttrLabelProxy
+
+websocketConnectionUri :: AttrLabelProxy "uri"
+websocketConnectionUri = AttrLabelProxy
+
 data WebsocketConnectionClosedSignalInfo
 instance SignalInfo WebsocketConnectionClosedSignalInfo where
     type HaskellCallbackType WebsocketConnectionClosedSignalInfo = WebsocketConnectionClosedCallback
@@ -563,7 +599,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "stream", argType = TInterface "Gio" "IOStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "Soup" "WebsocketConnectionType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "origin", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "WebsocketConnection"
+-- returnType : Just (TInterface "Soup" "WebsocketConnection")
 -- throws : False
 -- Skip return : False
 
@@ -611,7 +647,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "code", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -648,7 +684,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt16
+-- returnType : Just (TBasicType TUInt16)
 -- throws : False
 -- Skip return : False
 
@@ -675,7 +711,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", 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
 
@@ -704,7 +740,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "WebsocketConnectionType"
+-- returnType : Just (TInterface "Soup" "WebsocketConnectionType")
 -- throws : False
 -- Skip return : False
 
@@ -732,7 +768,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "IOStream"
+-- returnType : Just (TInterface "Gio" "IOStream")
 -- throws : False
 -- Skip return : False
 
@@ -761,7 +797,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", 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
 
@@ -773,24 +809,25 @@
 websocketConnectionGetOrigin ::
     (MonadIO m, WebsocketConnectionK a) =>
     a                                       -- _obj
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 websocketConnectionGetOrigin _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_websocket_connection_get_origin _obj'
-    checkUnexpectedReturnNULL "soup_websocket_connection_get_origin" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data WebsocketConnectionGetOriginMethodInfo
-instance (signature ~ (m T.Text), MonadIO m, WebsocketConnectionK a) => MethodInfo WebsocketConnectionGetOriginMethodInfo a signature where
+instance (signature ~ (m (Maybe T.Text)), MonadIO m, WebsocketConnectionK a) => MethodInfo WebsocketConnectionGetOriginMethodInfo a signature where
     overloadedMethod _ = websocketConnectionGetOrigin
 
 -- method WebsocketConnection::get_protocol
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", 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
 
@@ -802,24 +839,25 @@
 websocketConnectionGetProtocol ::
     (MonadIO m, WebsocketConnectionK a) =>
     a                                       -- _obj
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 websocketConnectionGetProtocol _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- soup_websocket_connection_get_protocol _obj'
-    checkUnexpectedReturnNULL "soup_websocket_connection_get_protocol" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data WebsocketConnectionGetProtocolMethodInfo
-instance (signature ~ (m T.Text), MonadIO m, WebsocketConnectionK a) => MethodInfo WebsocketConnectionGetProtocolMethodInfo a signature where
+instance (signature ~ (m (Maybe T.Text)), MonadIO m, WebsocketConnectionK a) => MethodInfo WebsocketConnectionGetProtocolMethodInfo a signature where
     overloadedMethod _ = websocketConnectionGetProtocol
 
 -- method WebsocketConnection::get_state
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "WebsocketState"
+-- returnType : Just (TInterface "Soup" "WebsocketState")
 -- throws : False
 -- Skip return : False
 
@@ -847,7 +885,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "URI"
+-- returnType : Just (TInterface "Soup" "URI")
 -- throws : False
 -- Skip return : False
 
@@ -876,7 +914,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -909,7 +947,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "WebsocketConnection", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", 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/Soup/Objects/WebsocketConnection.hs-boot b/GI/Soup/Objects/WebsocketConnection.hs-boot
--- a/GI/Soup/Objects/WebsocketConnection.hs-boot
+++ b/GI/Soup/Objects/WebsocketConnection.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Objects.WebsocketConnection 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/Soup/Structs.hs b/GI/Soup/Structs.hs
--- a/GI/Soup/Structs.hs
+++ b/GI/Soup/Structs.hs
@@ -40,9 +40,9 @@
 import GI.Soup.Structs.URI
 import GI.Soup.Structs.XMLRPCParams
 
-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/Soup/Structs/Buffer.hs b/GI/Soup/Structs/Buffer.hs
--- a/GI/Soup/Structs/Buffer.hs
+++ b/GI/Soup/Structs/Buffer.hs
@@ -64,20 +64,25 @@
 
  -- * Properties
 -- ** Data
+    bufferClearData                         ,
+    bufferData                              ,
     bufferReadData                          ,
+    bufferWriteData                         ,
 
 
 -- ** Length
+    bufferLength                            ,
     bufferReadLength                        ,
+    bufferWriteLength                       ,
 
 
 
 
     ) 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
@@ -97,24 +102,79 @@
 newZeroBuffer :: MonadIO m => m Buffer
 newZeroBuffer = liftIO $ callocBoxedBytes 16 >>= wrapBoxed Buffer
 
+instance tag ~ 'AttrSet => Constructible Buffer tag where
+    new _ attrs = do
+        o <- newZeroBuffer
+        GI.Attributes.set o attrs
+        return o
+
+
 noBuffer :: Maybe Buffer
 noBuffer = Nothing
 
-bufferReadData :: Buffer -> IO (Ptr ())
-bufferReadData s = withManagedPtr s $ \ptr -> do
+bufferReadData :: MonadIO m => Buffer -> m (Ptr ())
+bufferReadData s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
     return val
 
-bufferReadLength :: Buffer -> IO Word64
-bufferReadLength s = withManagedPtr s $ \ptr -> do
+bufferWriteData :: MonadIO m => Buffer -> Ptr () -> m ()
+bufferWriteData s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ())
+
+bufferClearData :: MonadIO m => Buffer -> m ()
+bufferClearData s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ())
+
+data BufferDataFieldInfo
+instance AttrInfo BufferDataFieldInfo where
+    type AttrAllowedOps BufferDataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint BufferDataFieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint BufferDataFieldInfo = (~) Buffer
+    type AttrGetType BufferDataFieldInfo = Ptr ()
+    type AttrLabel BufferDataFieldInfo = "data"
+    attrGet _ = bufferReadData
+    attrSet _ = bufferWriteData
+    attrConstruct = undefined
+    attrClear _ = bufferClearData
+
+bufferData :: AttrLabelProxy "data"
+bufferData = AttrLabelProxy
+
+
+bufferReadLength :: MonadIO m => Buffer -> m Word64
+bufferReadLength s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word64
     return val
 
+bufferWriteLength :: MonadIO m => Buffer -> Word64 -> m ()
+bufferWriteLength s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Word64)
+
+data BufferLengthFieldInfo
+instance AttrInfo BufferLengthFieldInfo where
+    type AttrAllowedOps BufferLengthFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint BufferLengthFieldInfo = (~) Word64
+    type AttrBaseTypeConstraint BufferLengthFieldInfo = (~) Buffer
+    type AttrGetType BufferLengthFieldInfo = Word64
+    type AttrLabel BufferLengthFieldInfo = "length"
+    attrGet _ = bufferReadLength
+    attrSet _ = bufferWriteLength
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+bufferLength :: AttrLabelProxy "length"
+bufferLength = AttrLabelProxy
+
+
+
+type instance AttributeList Buffer = BufferAttributeList
+type BufferAttributeList = ('[ '("data", BufferDataFieldInfo), '("length", BufferLengthFieldInfo)] :: [(Symbol, *)])
+
 -- method Buffer::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TInterface "Soup" "Buffer"
+-- returnType : Just (TInterface "Soup" "Buffer")
 -- throws : False
 -- Skip return : False
 
@@ -138,16 +198,16 @@
 
 -- method Buffer::new_with_owner
 -- method type : Constructor
--- Args : [Arg {argCName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner_dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner_dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TInterface "Soup" "Buffer"
+-- returnType : Just (TInterface "Soup" "Buffer")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_buffer_new_with_owner" soup_buffer_new_with_owner :: 
     Ptr Word8 ->                            -- data : TCArray False (-1) 1 (TBasicType TUInt8)
     Word64 ->                               -- length : TBasicType TUInt64
-    Ptr () ->                               -- owner : TBasicType TVoid
+    Ptr () ->                               -- owner : TBasicType TPtr
     FunPtr GLib.DestroyNotifyC ->           -- owner_dnotify : TInterface "GLib" "DestroyNotify"
     IO (Ptr Buffer)
 
@@ -178,7 +238,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Buffer"
+-- returnType : Just (TInterface "Soup" "Buffer")
 -- throws : False
 -- Skip return : False
 
@@ -207,7 +267,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Buffer", 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 +294,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Bytes"
+-- returnType : Just (TInterface "GLib" "Bytes")
 -- throws : False
 -- Skip return : False
 
@@ -263,7 +323,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -299,34 +359,34 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Buffer", 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 "soup_buffer_get_owner" soup_buffer_get_owner :: 
     Ptr Buffer ->                           -- _obj : TInterface "Soup" "Buffer"
-    IO ()
+    IO (Ptr ())
 
 
 bufferGetOwner ::
     (MonadIO m) =>
     Buffer                                  -- _obj
-    -> m ()                                 -- result
+    -> m (Ptr ())                           -- result
 bufferGetOwner _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    soup_buffer_get_owner _obj'
+    result <- soup_buffer_get_owner _obj'
     touchManagedPtr _obj
-    return ()
+    return result
 
 data BufferGetOwnerMethodInfo
-instance (signature ~ (m ()), MonadIO m) => MethodInfo BufferGetOwnerMethodInfo Buffer signature where
+instance (signature ~ (m (Ptr ())), MonadIO m) => MethodInfo BufferGetOwnerMethodInfo Buffer signature where
     overloadedMethod _ = bufferGetOwner
 
 -- method Buffer::new_subbuffer
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Buffer"
+-- returnType : Just (TInterface "Soup" "Buffer")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Structs/Buffer.hs-boot b/GI/Soup/Structs/Buffer.hs-boot
--- a/GI/Soup/Structs/Buffer.hs-boot
+++ b/GI/Soup/Structs/Buffer.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.Buffer 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/Soup/Structs/ClientContext.hs b/GI/Soup/Structs/ClientContext.hs
--- a/GI/Soup/Structs/ClientContext.hs
+++ b/GI/Soup/Structs/ClientContext.hs
@@ -76,9 +76,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
@@ -97,11 +97,15 @@
 noClientContext :: Maybe ClientContext
 noClientContext = Nothing
 
+
+type instance AttributeList ClientContext = ClientContextAttributeList
+type ClientContextAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method ClientContext::get_address
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ClientContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Address"
+-- returnType : Just (TInterface "Soup" "Address")
 -- throws : False
 -- Skip return : False
 
@@ -113,24 +117,25 @@
 clientContextGetAddress ::
     (MonadIO m) =>
     ClientContext                           -- _obj
-    -> m Address                            -- result
+    -> m (Maybe Address)                    -- result
 clientContextGetAddress _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- soup_client_context_get_address _obj'
-    checkUnexpectedReturnNULL "soup_client_context_get_address" result
-    result' <- (newObject Address) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newObject Address) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ClientContextGetAddressMethodInfo
-instance (signature ~ (m Address), MonadIO m) => MethodInfo ClientContextGetAddressMethodInfo ClientContext signature where
+instance (signature ~ (m (Maybe Address)), MonadIO m) => MethodInfo ClientContextGetAddressMethodInfo ClientContext signature where
     overloadedMethod _ = clientContextGetAddress
 
 -- method ClientContext::get_auth_domain
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ClientContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "AuthDomain"
+-- returnType : Just (TInterface "Soup" "AuthDomain")
 -- throws : False
 -- Skip return : False
 
@@ -142,24 +147,25 @@
 clientContextGetAuthDomain ::
     (MonadIO m) =>
     ClientContext                           -- _obj
-    -> m AuthDomain                         -- result
+    -> m (Maybe AuthDomain)                 -- result
 clientContextGetAuthDomain _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- soup_client_context_get_auth_domain _obj'
-    checkUnexpectedReturnNULL "soup_client_context_get_auth_domain" result
-    result' <- (newObject AuthDomain) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newObject AuthDomain) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ClientContextGetAuthDomainMethodInfo
-instance (signature ~ (m AuthDomain), MonadIO m) => MethodInfo ClientContextGetAuthDomainMethodInfo ClientContext signature where
+instance (signature ~ (m (Maybe AuthDomain)), MonadIO m) => MethodInfo ClientContextGetAuthDomainMethodInfo ClientContext signature where
     overloadedMethod _ = clientContextGetAuthDomain
 
 -- method ClientContext::get_auth_user
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ClientContext", 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
 
@@ -171,24 +177,25 @@
 clientContextGetAuthUser ::
     (MonadIO m) =>
     ClientContext                           -- _obj
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 clientContextGetAuthUser _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- soup_client_context_get_auth_user _obj'
-    checkUnexpectedReturnNULL "soup_client_context_get_auth_user" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ClientContextGetAuthUserMethodInfo
-instance (signature ~ (m T.Text), MonadIO m) => MethodInfo ClientContextGetAuthUserMethodInfo ClientContext signature where
+instance (signature ~ (m (Maybe T.Text)), MonadIO m) => MethodInfo ClientContextGetAuthUserMethodInfo ClientContext signature where
     overloadedMethod _ = clientContextGetAuthUser
 
 -- method ClientContext::get_gsocket
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ClientContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "Socket"
+-- returnType : Just (TInterface "Gio" "Socket")
 -- throws : False
 -- Skip return : False
 
@@ -200,24 +207,25 @@
 clientContextGetGsocket ::
     (MonadIO m) =>
     ClientContext                           -- _obj
-    -> m Gio.Socket                         -- result
+    -> m (Maybe Gio.Socket)                 -- result
 clientContextGetGsocket _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- soup_client_context_get_gsocket _obj'
-    checkUnexpectedReturnNULL "soup_client_context_get_gsocket" result
-    result' <- (newObject Gio.Socket) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newObject Gio.Socket) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ClientContextGetGsocketMethodInfo
-instance (signature ~ (m Gio.Socket), MonadIO m) => MethodInfo ClientContextGetGsocketMethodInfo ClientContext signature where
+instance (signature ~ (m (Maybe Gio.Socket)), MonadIO m) => MethodInfo ClientContextGetGsocketMethodInfo ClientContext signature where
     overloadedMethod _ = clientContextGetGsocket
 
 -- method ClientContext::get_host
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ClientContext", 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
 
@@ -229,24 +237,25 @@
 clientContextGetHost ::
     (MonadIO m) =>
     ClientContext                           -- _obj
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 clientContextGetHost _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- soup_client_context_get_host _obj'
-    checkUnexpectedReturnNULL "soup_client_context_get_host" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ClientContextGetHostMethodInfo
-instance (signature ~ (m T.Text), MonadIO m) => MethodInfo ClientContextGetHostMethodInfo ClientContext signature where
+instance (signature ~ (m (Maybe T.Text)), MonadIO m) => MethodInfo ClientContextGetHostMethodInfo ClientContext signature where
     overloadedMethod _ = clientContextGetHost
 
 -- method ClientContext::get_local_address
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ClientContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "SocketAddress"
+-- returnType : Just (TInterface "Gio" "SocketAddress")
 -- throws : False
 -- Skip return : False
 
@@ -258,24 +267,25 @@
 clientContextGetLocalAddress ::
     (MonadIO m) =>
     ClientContext                           -- _obj
-    -> m Gio.SocketAddress                  -- result
+    -> m (Maybe Gio.SocketAddress)          -- result
 clientContextGetLocalAddress _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- soup_client_context_get_local_address _obj'
-    checkUnexpectedReturnNULL "soup_client_context_get_local_address" result
-    result' <- (newObject Gio.SocketAddress) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newObject Gio.SocketAddress) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ClientContextGetLocalAddressMethodInfo
-instance (signature ~ (m Gio.SocketAddress), MonadIO m) => MethodInfo ClientContextGetLocalAddressMethodInfo ClientContext signature where
+instance (signature ~ (m (Maybe Gio.SocketAddress)), MonadIO m) => MethodInfo ClientContextGetLocalAddressMethodInfo ClientContext signature where
     overloadedMethod _ = clientContextGetLocalAddress
 
 -- method ClientContext::get_remote_address
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ClientContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "SocketAddress"
+-- returnType : Just (TInterface "Gio" "SocketAddress")
 -- throws : False
 -- Skip return : False
 
@@ -287,24 +297,25 @@
 clientContextGetRemoteAddress ::
     (MonadIO m) =>
     ClientContext                           -- _obj
-    -> m Gio.SocketAddress                  -- result
+    -> m (Maybe Gio.SocketAddress)          -- result
 clientContextGetRemoteAddress _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- soup_client_context_get_remote_address _obj'
-    checkUnexpectedReturnNULL "soup_client_context_get_remote_address" result
-    result' <- (newObject Gio.SocketAddress) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (newObject Gio.SocketAddress) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data ClientContextGetRemoteAddressMethodInfo
-instance (signature ~ (m Gio.SocketAddress), MonadIO m) => MethodInfo ClientContextGetRemoteAddressMethodInfo ClientContext signature where
+instance (signature ~ (m (Maybe Gio.SocketAddress)), MonadIO m) => MethodInfo ClientContextGetRemoteAddressMethodInfo ClientContext signature where
     overloadedMethod _ = clientContextGetRemoteAddress
 
 -- method ClientContext::get_socket
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ClientContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Socket"
+-- returnType : Just (TInterface "Soup" "Socket")
 -- throws : False
 -- Skip return : False
 
@@ -333,7 +344,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "ClientContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Gio" "IOStream"
+-- returnType : Just (TInterface "Gio" "IOStream")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Structs/ClientContext.hs-boot b/GI/Soup/Structs/ClientContext.hs-boot
--- a/GI/Soup/Structs/ClientContext.hs-boot
+++ b/GI/Soup/Structs/ClientContext.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.ClientContext 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/Soup/Structs/Connection.hs b/GI/Soup/Structs/Connection.hs
--- a/GI/Soup/Structs/Connection.hs
+++ b/GI/Soup/Structs/Connection.hs
@@ -16,9 +16,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
@@ -29,6 +29,10 @@
 newtype Connection = Connection (ForeignPtr Connection)
 noConnection :: Maybe Connection
 noConnection = Nothing
+
+
+type instance AttributeList Connection = ConnectionAttributeList
+type ConnectionAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveConnectionMethod (t :: Symbol) (o :: *) :: * where
     ResolveConnectionMethod l o = MethodResolutionFailed l o
diff --git a/GI/Soup/Structs/Connection.hs-boot b/GI/Soup/Structs/Connection.hs-boot
--- a/GI/Soup/Structs/Connection.hs-boot
+++ b/GI/Soup/Structs/Connection.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.Connection 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/Soup/Structs/Cookie.hs b/GI/Soup/Structs/Cookie.hs
--- a/GI/Soup/Structs/Cookie.hs
+++ b/GI/Soup/Structs/Cookie.hs
@@ -159,40 +159,59 @@
 
  -- * Properties
 -- ** Domain
+    cookieClearDomain                       ,
+    cookieDomain                            ,
     cookieReadDomain                        ,
+    cookieWriteDomain                       ,
 
 
 -- ** Expires
+    cookieClearExpires                      ,
+    cookieExpires                           ,
     cookieReadExpires                       ,
+    cookieWriteExpires                      ,
 
 
 -- ** HttpOnly
+    cookieHttpOnly                          ,
     cookieReadHttpOnly                      ,
+    cookieWriteHttpOnly                     ,
 
 
 -- ** Name
+    cookieClearName                         ,
+    cookieName                              ,
     cookieReadName                          ,
+    cookieWriteName                         ,
 
 
 -- ** Path
+    cookieClearPath                         ,
+    cookiePath                              ,
     cookieReadPath                          ,
+    cookieWritePath                         ,
 
 
 -- ** Secure
     cookieReadSecure                        ,
+    cookieSecure                            ,
+    cookieWriteSecure                       ,
 
 
 -- ** Value
+    cookieClearValue                        ,
     cookieReadValue                         ,
+    cookieValue                             ,
+    cookieWriteValue                        ,
 
 
 
 
     ) 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
@@ -211,56 +230,239 @@
 newZeroCookie :: MonadIO m => m Cookie
 newZeroCookie = liftIO $ callocBoxedBytes 48 >>= wrapBoxed Cookie
 
+instance tag ~ 'AttrSet => Constructible Cookie tag where
+    new _ attrs = do
+        o <- newZeroCookie
+        GI.Attributes.set o attrs
+        return o
+
+
 noCookie :: Maybe Cookie
 noCookie = Nothing
 
-cookieReadName :: Cookie -> IO T.Text
-cookieReadName s = withManagedPtr s $ \ptr -> do
+cookieReadName :: MonadIO m => Cookie -> m (Maybe T.Text)
+cookieReadName 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
 
-cookieReadValue :: Cookie -> IO T.Text
-cookieReadValue s = withManagedPtr s $ \ptr -> do
+cookieWriteName :: MonadIO m => Cookie -> CString -> m ()
+cookieWriteName s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+cookieClearName :: MonadIO m => Cookie -> m ()
+cookieClearName s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data CookieNameFieldInfo
+instance AttrInfo CookieNameFieldInfo where
+    type AttrAllowedOps CookieNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint CookieNameFieldInfo = (~) CString
+    type AttrBaseTypeConstraint CookieNameFieldInfo = (~) Cookie
+    type AttrGetType CookieNameFieldInfo = Maybe T.Text
+    type AttrLabel CookieNameFieldInfo = "name"
+    attrGet _ = cookieReadName
+    attrSet _ = cookieWriteName
+    attrConstruct = undefined
+    attrClear _ = cookieClearName
+
+cookieName :: AttrLabelProxy "name"
+cookieName = AttrLabelProxy
+
+
+cookieReadValue :: MonadIO m => Cookie -> m (Maybe T.Text)
+cookieReadValue 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
 
-cookieReadDomain :: Cookie -> IO T.Text
-cookieReadDomain s = withManagedPtr s $ \ptr -> do
+cookieWriteValue :: MonadIO m => Cookie -> CString -> m ()
+cookieWriteValue s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+cookieClearValue :: MonadIO m => Cookie -> m ()
+cookieClearValue s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data CookieValueFieldInfo
+instance AttrInfo CookieValueFieldInfo where
+    type AttrAllowedOps CookieValueFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint CookieValueFieldInfo = (~) CString
+    type AttrBaseTypeConstraint CookieValueFieldInfo = (~) Cookie
+    type AttrGetType CookieValueFieldInfo = Maybe T.Text
+    type AttrLabel CookieValueFieldInfo = "value"
+    attrGet _ = cookieReadValue
+    attrSet _ = cookieWriteValue
+    attrConstruct = undefined
+    attrClear _ = cookieClearValue
+
+cookieValue :: AttrLabelProxy "value"
+cookieValue = AttrLabelProxy
+
+
+cookieReadDomain :: MonadIO m => Cookie -> m (Maybe T.Text)
+cookieReadDomain 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
 
-cookieReadPath :: Cookie -> IO T.Text
-cookieReadPath s = withManagedPtr s $ \ptr -> do
+cookieWriteDomain :: MonadIO m => Cookie -> CString -> m ()
+cookieWriteDomain s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: CString)
+
+cookieClearDomain :: MonadIO m => Cookie -> m ()
+cookieClearDomain s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: CString)
+
+data CookieDomainFieldInfo
+instance AttrInfo CookieDomainFieldInfo where
+    type AttrAllowedOps CookieDomainFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint CookieDomainFieldInfo = (~) CString
+    type AttrBaseTypeConstraint CookieDomainFieldInfo = (~) Cookie
+    type AttrGetType CookieDomainFieldInfo = Maybe T.Text
+    type AttrLabel CookieDomainFieldInfo = "domain"
+    attrGet _ = cookieReadDomain
+    attrSet _ = cookieWriteDomain
+    attrConstruct = undefined
+    attrClear _ = cookieClearDomain
+
+cookieDomain :: AttrLabelProxy "domain"
+cookieDomain = AttrLabelProxy
+
+
+cookieReadPath :: MonadIO m => Cookie -> m (Maybe T.Text)
+cookieReadPath 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
 
-cookieReadExpires :: Cookie -> IO Date
-cookieReadExpires s = withManagedPtr s $ \ptr -> do
+cookieWritePath :: MonadIO m => Cookie -> CString -> m ()
+cookieWritePath s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: CString)
+
+cookieClearPath :: MonadIO m => Cookie -> m ()
+cookieClearPath s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: CString)
+
+data CookiePathFieldInfo
+instance AttrInfo CookiePathFieldInfo where
+    type AttrAllowedOps CookiePathFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint CookiePathFieldInfo = (~) CString
+    type AttrBaseTypeConstraint CookiePathFieldInfo = (~) Cookie
+    type AttrGetType CookiePathFieldInfo = Maybe T.Text
+    type AttrLabel CookiePathFieldInfo = "path"
+    attrGet _ = cookieReadPath
+    attrSet _ = cookieWritePath
+    attrConstruct = undefined
+    attrClear _ = cookieClearPath
+
+cookiePath :: AttrLabelProxy "path"
+cookiePath = AttrLabelProxy
+
+
+cookieReadExpires :: MonadIO m => Cookie -> m (Maybe Date)
+cookieReadExpires s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO (Ptr Date)
-    val' <- (newBoxed Date) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Date) val'
+        return val''
+    return result
 
-cookieReadSecure :: Cookie -> IO Bool
-cookieReadSecure s = withManagedPtr s $ \ptr -> do
+cookieWriteExpires :: MonadIO m => Cookie -> Ptr Date -> m ()
+cookieWriteExpires s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Ptr Date)
+
+cookieClearExpires :: MonadIO m => Cookie -> m ()
+cookieClearExpires s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (nullPtr :: Ptr Date)
+
+data CookieExpiresFieldInfo
+instance AttrInfo CookieExpiresFieldInfo where
+    type AttrAllowedOps CookieExpiresFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint CookieExpiresFieldInfo = (~) (Ptr Date)
+    type AttrBaseTypeConstraint CookieExpiresFieldInfo = (~) Cookie
+    type AttrGetType CookieExpiresFieldInfo = Maybe Date
+    type AttrLabel CookieExpiresFieldInfo = "expires"
+    attrGet _ = cookieReadExpires
+    attrSet _ = cookieWriteExpires
+    attrConstruct = undefined
+    attrClear _ = cookieClearExpires
+
+cookieExpires :: AttrLabelProxy "expires"
+cookieExpires = AttrLabelProxy
+
+
+cookieReadSecure :: MonadIO m => Cookie -> m Bool
+cookieReadSecure s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 40) :: IO CInt
     let val' = (/= 0) val
     return val'
 
-cookieReadHttpOnly :: Cookie -> IO Bool
-cookieReadHttpOnly s = withManagedPtr s $ \ptr -> do
+cookieWriteSecure :: MonadIO m => Cookie -> Bool -> m ()
+cookieWriteSecure s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 40) (val' :: CInt)
+
+data CookieSecureFieldInfo
+instance AttrInfo CookieSecureFieldInfo where
+    type AttrAllowedOps CookieSecureFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint CookieSecureFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint CookieSecureFieldInfo = (~) Cookie
+    type AttrGetType CookieSecureFieldInfo = Bool
+    type AttrLabel CookieSecureFieldInfo = "secure"
+    attrGet _ = cookieReadSecure
+    attrSet _ = cookieWriteSecure
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+cookieSecure :: AttrLabelProxy "secure"
+cookieSecure = AttrLabelProxy
+
+
+cookieReadHttpOnly :: MonadIO m => Cookie -> m Bool
+cookieReadHttpOnly s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 44) :: IO CInt
     let val' = (/= 0) val
     return val'
 
+cookieWriteHttpOnly :: MonadIO m => Cookie -> Bool -> m ()
+cookieWriteHttpOnly s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 44) (val' :: CInt)
+
+data CookieHttpOnlyFieldInfo
+instance AttrInfo CookieHttpOnlyFieldInfo where
+    type AttrAllowedOps CookieHttpOnlyFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint CookieHttpOnlyFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint CookieHttpOnlyFieldInfo = (~) Cookie
+    type AttrGetType CookieHttpOnlyFieldInfo = Bool
+    type AttrLabel CookieHttpOnlyFieldInfo = "http_only"
+    attrGet _ = cookieReadHttpOnly
+    attrSet _ = cookieWriteHttpOnly
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+cookieHttpOnly :: AttrLabelProxy "httpOnly"
+cookieHttpOnly = AttrLabelProxy
+
+
+
+type instance AttributeList Cookie = CookieAttributeList
+type CookieAttributeList = ('[ '("name", CookieNameFieldInfo), '("value", CookieValueFieldInfo), '("domain", CookieDomainFieldInfo), '("path", CookiePathFieldInfo), '("expires", CookieExpiresFieldInfo), '("secure", CookieSecureFieldInfo), '("httpOnly", CookieHttpOnlyFieldInfo)] :: [(Symbol, *)])
+
 -- method Cookie::new
 -- method type : Constructor
--- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_age", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_age", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Cookie"
+-- returnType : Just (TInterface "Soup" "Cookie")
 -- throws : False
 -- Skip return : False
 
@@ -269,7 +471,7 @@
     CString ->                              -- value : TBasicType TUTF8
     CString ->                              -- domain : TBasicType TUTF8
     CString ->                              -- path : TBasicType TUTF8
-    Int32 ->                                -- max_age : TBasicType TInt32
+    Int32 ->                                -- max_age : TBasicType TInt
     IO (Ptr Cookie)
 
 
@@ -299,7 +501,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface "Soup" "URI", 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
 
@@ -331,7 +533,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Cookie"
+-- returnType : Just (TInterface "Soup" "Cookie")
 -- throws : False
 -- Skip return : False
 
@@ -360,7 +562,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "host", 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
 
@@ -392,7 +594,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cookie2", argType = TInterface "Soup" "Cookie", 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
 
@@ -424,7 +626,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", 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
 
@@ -451,7 +653,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", 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
 
@@ -480,7 +682,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Date"
+-- returnType : Just (TInterface "Soup" "Date")
 -- throws : False
 -- Skip return : False
 
@@ -509,7 +711,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", 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
 
@@ -537,7 +739,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", 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
 
@@ -566,7 +768,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", 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
 
@@ -595,7 +797,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", 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
 
@@ -623,7 +825,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", 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
 
@@ -652,7 +854,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "domain", 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
 
@@ -683,7 +885,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expires", argType = TInterface "Soup" "Date", 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
 
@@ -714,7 +916,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "http_only", 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
 
@@ -742,15 +944,15 @@
 
 -- method Cookie::set_max_age
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_age", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_age", 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 "soup_cookie_set_max_age" soup_cookie_set_max_age :: 
     Ptr Cookie ->                           -- _obj : TInterface "Soup" "Cookie"
-    Int32 ->                                -- max_age : TBasicType TInt32
+    Int32 ->                                -- max_age : TBasicType TInt
     IO ()
 
 
@@ -773,7 +975,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", 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
 
@@ -804,7 +1006,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", 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
 
@@ -835,7 +1037,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "secure", 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
 
@@ -865,7 +1067,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", 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
 
@@ -896,7 +1098,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", 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
 
@@ -926,7 +1128,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Cookie", 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
 
@@ -956,7 +1158,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "header", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "origin", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Cookie"
+-- returnType : Just (TInterface "Soup" "Cookie")
 -- throws : False
 -- Skip return : False
 
@@ -970,16 +1172,17 @@
     (MonadIO m) =>
     T.Text                                  -- header
     -> URI                                  -- origin
-    -> m Cookie                             -- result
+    -> m (Maybe Cookie)                     -- result
 cookieParse header origin = liftIO $ do
     header' <- textToCString header
     let origin' = unsafeManagedPtrGetPtr origin
     result <- soup_cookie_parse header' origin'
-    checkUnexpectedReturnNULL "soup_cookie_parse" result
-    result' <- (wrapBoxed Cookie) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapBoxed Cookie) result'
+        return result''
     touchManagedPtr origin
     freeMem header'
-    return result'
+    return maybeResult
 
 type family ResolveCookieMethod (t :: Symbol) (o :: *) :: * where
     ResolveCookieMethod "appliesToUri" o = CookieAppliesToUriMethodInfo
diff --git a/GI/Soup/Structs/Cookie.hs-boot b/GI/Soup/Structs/Cookie.hs-boot
--- a/GI/Soup/Structs/Cookie.hs-boot
+++ b/GI/Soup/Structs/Cookie.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.Cookie 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/Soup/Structs/Date.hs b/GI/Soup/Structs/Date.hs
--- a/GI/Soup/Structs/Date.hs
+++ b/GI/Soup/Structs/Date.hs
@@ -114,44 +114,60 @@
 
  -- * Properties
 -- ** Day
+    dateDay                                 ,
     dateReadDay                             ,
+    dateWriteDay                            ,
 
 
 -- ** Hour
+    dateHour                                ,
     dateReadHour                            ,
+    dateWriteHour                           ,
 
 
 -- ** Minute
+    dateMinute                              ,
     dateReadMinute                          ,
+    dateWriteMinute                         ,
 
 
 -- ** Month
+    dateMonth                               ,
     dateReadMonth                           ,
+    dateWriteMonth                          ,
 
 
 -- ** Offset
+    dateOffset                              ,
     dateReadOffset                          ,
+    dateWriteOffset                         ,
 
 
 -- ** Second
     dateReadSecond                          ,
+    dateSecond                              ,
+    dateWriteSecond                         ,
 
 
 -- ** Utc
     dateReadUtc                             ,
+    dateUtc                                 ,
+    dateWriteUtc                            ,
 
 
 -- ** Year
     dateReadYear                            ,
+    dateWriteYear                           ,
+    dateYear                                ,
 
 
 
 
     ) 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
@@ -171,65 +187,237 @@
 newZeroDate :: MonadIO m => m Date
 newZeroDate = liftIO $ callocBoxedBytes 32 >>= wrapBoxed Date
 
+instance tag ~ 'AttrSet => Constructible Date tag where
+    new _ attrs = do
+        o <- newZeroDate
+        GI.Attributes.set o attrs
+        return o
+
+
 noDate :: Maybe Date
 noDate = Nothing
 
-dateReadYear :: Date -> IO Int32
-dateReadYear s = withManagedPtr s $ \ptr -> do
+dateReadYear :: MonadIO m => Date -> m Int32
+dateReadYear s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Int32
     return val
 
-dateReadMonth :: Date -> IO Int32
-dateReadMonth s = withManagedPtr s $ \ptr -> do
+dateWriteYear :: MonadIO m => Date -> Int32 -> m ()
+dateWriteYear s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Int32)
+
+data DateYearFieldInfo
+instance AttrInfo DateYearFieldInfo where
+    type AttrAllowedOps DateYearFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateYearFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint DateYearFieldInfo = (~) Date
+    type AttrGetType DateYearFieldInfo = Int32
+    type AttrLabel DateYearFieldInfo = "year"
+    attrGet _ = dateReadYear
+    attrSet _ = dateWriteYear
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateYear :: AttrLabelProxy "year"
+dateYear = AttrLabelProxy
+
+
+dateReadMonth :: MonadIO m => Date -> m Int32
+dateReadMonth s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO Int32
     return val
 
-dateReadDay :: Date -> IO Int32
-dateReadDay s = withManagedPtr s $ \ptr -> do
+dateWriteMonth :: MonadIO m => Date -> Int32 -> m ()
+dateWriteMonth s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 4) (val :: Int32)
+
+data DateMonthFieldInfo
+instance AttrInfo DateMonthFieldInfo where
+    type AttrAllowedOps DateMonthFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateMonthFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint DateMonthFieldInfo = (~) Date
+    type AttrGetType DateMonthFieldInfo = Int32
+    type AttrLabel DateMonthFieldInfo = "month"
+    attrGet _ = dateReadMonth
+    attrSet _ = dateWriteMonth
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateMonth :: AttrLabelProxy "month"
+dateMonth = AttrLabelProxy
+
+
+dateReadDay :: MonadIO m => Date -> m Int32
+dateReadDay s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Int32
     return val
 
-dateReadHour :: Date -> IO Int32
-dateReadHour s = withManagedPtr s $ \ptr -> do
+dateWriteDay :: MonadIO m => Date -> Int32 -> m ()
+dateWriteDay s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Int32)
+
+data DateDayFieldInfo
+instance AttrInfo DateDayFieldInfo where
+    type AttrAllowedOps DateDayFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateDayFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint DateDayFieldInfo = (~) Date
+    type AttrGetType DateDayFieldInfo = Int32
+    type AttrLabel DateDayFieldInfo = "day"
+    attrGet _ = dateReadDay
+    attrSet _ = dateWriteDay
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateDay :: AttrLabelProxy "day"
+dateDay = AttrLabelProxy
+
+
+dateReadHour :: MonadIO m => Date -> m Int32
+dateReadHour s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 12) :: IO Int32
     return val
 
-dateReadMinute :: Date -> IO Int32
-dateReadMinute s = withManagedPtr s $ \ptr -> do
+dateWriteHour :: MonadIO m => Date -> Int32 -> m ()
+dateWriteHour s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 12) (val :: Int32)
+
+data DateHourFieldInfo
+instance AttrInfo DateHourFieldInfo where
+    type AttrAllowedOps DateHourFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateHourFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint DateHourFieldInfo = (~) Date
+    type AttrGetType DateHourFieldInfo = Int32
+    type AttrLabel DateHourFieldInfo = "hour"
+    attrGet _ = dateReadHour
+    attrSet _ = dateWriteHour
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateHour :: AttrLabelProxy "hour"
+dateHour = AttrLabelProxy
+
+
+dateReadMinute :: MonadIO m => Date -> m Int32
+dateReadMinute s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO Int32
     return val
 
-dateReadSecond :: Date -> IO Int32
-dateReadSecond s = withManagedPtr s $ \ptr -> do
+dateWriteMinute :: MonadIO m => Date -> Int32 -> m ()
+dateWriteMinute s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Int32)
+
+data DateMinuteFieldInfo
+instance AttrInfo DateMinuteFieldInfo where
+    type AttrAllowedOps DateMinuteFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateMinuteFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint DateMinuteFieldInfo = (~) Date
+    type AttrGetType DateMinuteFieldInfo = Int32
+    type AttrLabel DateMinuteFieldInfo = "minute"
+    attrGet _ = dateReadMinute
+    attrSet _ = dateWriteMinute
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateMinute :: AttrLabelProxy "minute"
+dateMinute = AttrLabelProxy
+
+
+dateReadSecond :: MonadIO m => Date -> m Int32
+dateReadSecond s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 20) :: IO Int32
     return val
 
-dateReadUtc :: Date -> IO Bool
-dateReadUtc s = withManagedPtr s $ \ptr -> do
+dateWriteSecond :: MonadIO m => Date -> Int32 -> m ()
+dateWriteSecond s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 20) (val :: Int32)
+
+data DateSecondFieldInfo
+instance AttrInfo DateSecondFieldInfo where
+    type AttrAllowedOps DateSecondFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateSecondFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint DateSecondFieldInfo = (~) Date
+    type AttrGetType DateSecondFieldInfo = Int32
+    type AttrLabel DateSecondFieldInfo = "second"
+    attrGet _ = dateReadSecond
+    attrSet _ = dateWriteSecond
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateSecond :: AttrLabelProxy "second"
+dateSecond = AttrLabelProxy
+
+
+dateReadUtc :: MonadIO m => Date -> m Bool
+dateReadUtc s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO CInt
     let val' = (/= 0) val
     return val'
 
-dateReadOffset :: Date -> IO Int32
-dateReadOffset s = withManagedPtr s $ \ptr -> do
+dateWriteUtc :: MonadIO m => Date -> Bool -> m ()
+dateWriteUtc s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 24) (val' :: CInt)
+
+data DateUtcFieldInfo
+instance AttrInfo DateUtcFieldInfo where
+    type AttrAllowedOps DateUtcFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateUtcFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint DateUtcFieldInfo = (~) Date
+    type AttrGetType DateUtcFieldInfo = Bool
+    type AttrLabel DateUtcFieldInfo = "utc"
+    attrGet _ = dateReadUtc
+    attrSet _ = dateWriteUtc
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateUtc :: AttrLabelProxy "utc"
+dateUtc = AttrLabelProxy
+
+
+dateReadOffset :: MonadIO m => Date -> m Int32
+dateReadOffset s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 28) :: IO Int32
     return val
 
+dateWriteOffset :: MonadIO m => Date -> Int32 -> m ()
+dateWriteOffset s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 28) (val :: Int32)
+
+data DateOffsetFieldInfo
+instance AttrInfo DateOffsetFieldInfo where
+    type AttrAllowedOps DateOffsetFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateOffsetFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint DateOffsetFieldInfo = (~) Date
+    type AttrGetType DateOffsetFieldInfo = Int32
+    type AttrLabel DateOffsetFieldInfo = "offset"
+    attrGet _ = dateReadOffset
+    attrSet _ = dateWriteOffset
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateOffset :: AttrLabelProxy "offset"
+dateOffset = AttrLabelProxy
+
+
+
+type instance AttributeList Date = DateAttributeList
+type DateAttributeList = ('[ '("year", DateYearFieldInfo), '("month", DateMonthFieldInfo), '("day", DateDayFieldInfo), '("hour", DateHourFieldInfo), '("minute", DateMinuteFieldInfo), '("second", DateSecondFieldInfo), '("utc", DateUtcFieldInfo), '("offset", DateOffsetFieldInfo)] :: [(Symbol, *)])
+
 -- method Date::new
 -- method type : Constructor
--- Args : [Arg {argCName = "year", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hour", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minute", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "second", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "year", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hour", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minute", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "second", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Date"
+-- returnType : Just (TInterface "Soup" "Date")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_date_new" soup_date_new :: 
-    Int32 ->                                -- year : TBasicType TInt32
-    Int32 ->                                -- month : TBasicType TInt32
-    Int32 ->                                -- day : TBasicType TInt32
-    Int32 ->                                -- hour : TBasicType TInt32
-    Int32 ->                                -- minute : TBasicType TInt32
-    Int32 ->                                -- second : TBasicType TInt32
+    Int32 ->                                -- year : TBasicType TInt
+    Int32 ->                                -- month : TBasicType TInt
+    Int32 ->                                -- day : TBasicType TInt
+    Int32 ->                                -- hour : TBasicType TInt
+    Int32 ->                                -- minute : TBasicType TInt
+    Int32 ->                                -- second : TBasicType TInt
     IO (Ptr Date)
 
 
@@ -250,14 +438,14 @@
 
 -- method Date::new_from_now
 -- method type : Constructor
--- Args : [Arg {argCName = "offset_seconds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "offset_seconds", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Date"
+-- returnType : Just (TInterface "Soup" "Date")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_date_new_from_now" soup_date_new_from_now :: 
-    Int32 ->                                -- offset_seconds : TBasicType TInt32
+    Int32 ->                                -- offset_seconds : TBasicType TInt
     IO (Ptr Date)
 
 
@@ -275,7 +463,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "date_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Date"
+-- returnType : Just (TInterface "Soup" "Date")
 -- throws : False
 -- Skip return : False
 
@@ -287,31 +475,32 @@
 dateNewFromString ::
     (MonadIO m) =>
     T.Text                                  -- dateString
-    -> m Date                               -- result
+    -> m (Maybe Date)                       -- result
 dateNewFromString dateString = liftIO $ do
     dateString' <- textToCString dateString
     result <- soup_date_new_from_string dateString'
-    checkUnexpectedReturnNULL "soup_date_new_from_string" result
-    result' <- (wrapBoxed Date) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapBoxed Date) result'
+        return result''
     freeMem dateString'
-    return result'
+    return maybeResult
 
 -- method Date::new_from_time_t
 -- method type : Constructor
--- Args : [Arg {argCName = "when", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "when", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Date"
+-- returnType : Just (TInterface "Soup" "Date")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_date_new_from_time_t" soup_date_new_from_time_t :: 
-    Int64 ->                                -- when : TBasicType TInt64
+    CLong ->                                -- when : TBasicType TLong
     IO (Ptr Date)
 
 
 dateNewFromTimeT ::
     (MonadIO m) =>
-    Int64                                   -- when_
+    CLong                                   -- when_
     -> m Date                               -- result
 dateNewFromTimeT when_ = liftIO $ do
     result <- soup_date_new_from_time_t when_
@@ -323,7 +512,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Date"
+-- returnType : Just (TInterface "Soup" "Date")
 -- throws : False
 -- Skip return : False
 
@@ -352,7 +541,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", 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
 
@@ -379,7 +568,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", 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
 
@@ -406,7 +595,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", 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
 
@@ -433,7 +622,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", 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
 
@@ -460,7 +649,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", 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
 
@@ -487,7 +676,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", 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
 
@@ -514,7 +703,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", 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
 
@@ -541,7 +730,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", 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
 
@@ -568,7 +757,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", 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
 
@@ -595,7 +784,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", 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
 
@@ -623,7 +812,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface "Soup" "DateFormat", 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
 
@@ -656,19 +845,19 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt64
+-- returnType : Just (TBasicType TLong)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_date_to_time_t" soup_date_to_time_t :: 
     Ptr Date ->                             -- _obj : TInterface "Soup" "Date"
-    IO Int64
+    IO CLong
 
 
 dateToTimeT ::
     (MonadIO m) =>
     Date                                    -- _obj
-    -> m Int64                              -- result
+    -> m CLong                              -- result
 dateToTimeT _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- soup_date_to_time_t _obj'
@@ -676,14 +865,14 @@
     return result
 
 data DateToTimeTMethodInfo
-instance (signature ~ (m Int64), MonadIO m) => MethodInfo DateToTimeTMethodInfo Date signature where
+instance (signature ~ (m CLong), MonadIO m) => MethodInfo DateToTimeTMethodInfo Date signature where
     overloadedMethod _ = dateToTimeT
 
 -- method Date::to_timeval
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time", argType = TInterface "GLib" "TimeVal", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Soup/Structs/Date.hs-boot b/GI/Soup/Structs/Date.hs-boot
--- a/GI/Soup/Structs/Date.hs-boot
+++ b/GI/Soup/Structs/Date.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.Date 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/Soup/Structs/MessageBody.hs b/GI/Soup/Structs/MessageBody.hs
--- a/GI/Soup/Structs/MessageBody.hs
+++ b/GI/Soup/Structs/MessageBody.hs
@@ -93,20 +93,25 @@
 
  -- * Properties
 -- ** Data
+    messageBodyClearData                    ,
+    messageBodyData                         ,
     messageBodyReadData                     ,
+    messageBodyWriteData                    ,
 
 
 -- ** Length
+    messageBodyLength                       ,
     messageBodyReadLength                   ,
+    messageBodyWriteLength                  ,
 
 
 
 
     ) 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
@@ -125,25 +130,82 @@
 newZeroMessageBody :: MonadIO m => m MessageBody
 newZeroMessageBody = liftIO $ callocBoxedBytes 16 >>= wrapBoxed MessageBody
 
+instance tag ~ 'AttrSet => Constructible MessageBody tag where
+    new _ attrs = do
+        o <- newZeroMessageBody
+        GI.Attributes.set o attrs
+        return o
+
+
 noMessageBody :: Maybe MessageBody
 noMessageBody = Nothing
 
-messageBodyReadData :: MessageBody -> IO T.Text
-messageBodyReadData s = withManagedPtr s $ \ptr -> do
+messageBodyReadData :: MonadIO m => MessageBody -> m (Maybe T.Text)
+messageBodyReadData 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
 
-messageBodyReadLength :: MessageBody -> IO Int64
-messageBodyReadLength s = withManagedPtr s $ \ptr -> do
+messageBodyWriteData :: MonadIO m => MessageBody -> CString -> m ()
+messageBodyWriteData s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+messageBodyClearData :: MonadIO m => MessageBody -> m ()
+messageBodyClearData s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data MessageBodyDataFieldInfo
+instance AttrInfo MessageBodyDataFieldInfo where
+    type AttrAllowedOps MessageBodyDataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint MessageBodyDataFieldInfo = (~) CString
+    type AttrBaseTypeConstraint MessageBodyDataFieldInfo = (~) MessageBody
+    type AttrGetType MessageBodyDataFieldInfo = Maybe T.Text
+    type AttrLabel MessageBodyDataFieldInfo = "data"
+    attrGet _ = messageBodyReadData
+    attrSet _ = messageBodyWriteData
+    attrConstruct = undefined
+    attrClear _ = messageBodyClearData
+
+messageBodyData :: AttrLabelProxy "data"
+messageBodyData = AttrLabelProxy
+
+
+messageBodyReadLength :: MonadIO m => MessageBody -> m Int64
+messageBodyReadLength s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Int64
     return val
 
+messageBodyWriteLength :: MonadIO m => MessageBody -> Int64 -> m ()
+messageBodyWriteLength s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Int64)
+
+data MessageBodyLengthFieldInfo
+instance AttrInfo MessageBodyLengthFieldInfo where
+    type AttrAllowedOps MessageBodyLengthFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint MessageBodyLengthFieldInfo = (~) Int64
+    type AttrBaseTypeConstraint MessageBodyLengthFieldInfo = (~) MessageBody
+    type AttrGetType MessageBodyLengthFieldInfo = Int64
+    type AttrLabel MessageBodyLengthFieldInfo = "length"
+    attrGet _ = messageBodyReadLength
+    attrSet _ = messageBodyWriteLength
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+messageBodyLength :: AttrLabelProxy "length"
+messageBodyLength = AttrLabelProxy
+
+
+
+type instance AttributeList MessageBody = MessageBodyAttributeList
+type MessageBodyAttributeList = ('[ '("data", MessageBodyDataFieldInfo), '("length", MessageBodyLengthFieldInfo)] :: [(Symbol, *)])
+
 -- method MessageBody::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Soup" "MessageBody"
+-- returnType : Just (TInterface "Soup" "MessageBody")
 -- throws : False
 -- Skip return : False
 
@@ -164,7 +226,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TInterface "Soup" "Buffer", 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
 
@@ -195,7 +257,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -227,7 +289,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", 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
 
@@ -254,7 +316,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Buffer"
+-- returnType : Just (TInterface "Soup" "Buffer")
 -- throws : False
 -- Skip return : False
 
@@ -283,7 +345,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", 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
 
@@ -310,7 +372,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", 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
 
@@ -338,7 +400,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Buffer"
+-- returnType : Just (TInterface "Soup" "Buffer")
 -- throws : False
 -- Skip return : False
 
@@ -352,24 +414,25 @@
     (MonadIO m) =>
     MessageBody                             -- _obj
     -> Int64                                -- offset
-    -> m Buffer                             -- result
+    -> m (Maybe Buffer)                     -- result
 messageBodyGetChunk _obj offset = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- soup_message_body_get_chunk _obj' offset
-    checkUnexpectedReturnNULL "soup_message_body_get_chunk" result
-    result' <- (wrapBoxed Buffer) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapBoxed Buffer) result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data MessageBodyGetChunkMethodInfo
-instance (signature ~ (Int64 -> m Buffer), MonadIO m) => MethodInfo MessageBodyGetChunkMethodInfo MessageBody signature where
+instance (signature ~ (Int64 -> m (Maybe Buffer)), MonadIO m) => MethodInfo MessageBodyGetChunkMethodInfo MessageBody signature where
     overloadedMethod _ = messageBodyGetChunk
 
 -- method MessageBody::got_chunk
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "chunk", argType = TInterface "Soup" "Buffer", 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
 
@@ -400,7 +463,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accumulate", 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
 
@@ -430,7 +493,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", 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
 
@@ -457,7 +520,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageBody", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "chunk", argType = TInterface "Soup" "Buffer", 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/Soup/Structs/MessageBody.hs-boot b/GI/Soup/Structs/MessageBody.hs-boot
--- a/GI/Soup/Structs/MessageBody.hs-boot
+++ b/GI/Soup/Structs/MessageBody.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.MessageBody 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/Soup/Structs/MessageHeaders.hs b/GI/Soup/Structs/MessageHeaders.hs
--- a/GI/Soup/Structs/MessageHeaders.hs
+++ b/GI/Soup/Structs/MessageHeaders.hs
@@ -170,9 +170,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
@@ -190,11 +190,15 @@
 noMessageHeaders :: Maybe MessageHeaders
 noMessageHeaders = Nothing
 
+
+type instance AttributeList MessageHeaders = MessageHeadersAttributeList
+type MessageHeadersAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method MessageHeaders::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "type", argType = TInterface "Soup" "MessageHeadersType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "MessageHeaders"
+-- returnType : Just (TInterface "Soup" "MessageHeaders")
 -- throws : False
 -- Skip return : False
 
@@ -218,7 +222,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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},Arg {argCName = "value", 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
 
@@ -253,7 +257,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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
 
@@ -280,7 +284,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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
 
@@ -305,16 +309,16 @@
 
 -- method MessageHeaders::foreach
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "Soup" "MessageHeadersForeachFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "Soup" "MessageHeadersForeachFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_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 "soup_message_headers_foreach" soup_message_headers_foreach :: 
     Ptr MessageHeaders ->                   -- _obj : TInterface "Soup" "MessageHeaders"
     FunPtr MessageHeadersForeachFuncC ->    -- func : TInterface "Soup" "MessageHeadersForeachFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 
@@ -340,7 +344,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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
 
@@ -367,7 +371,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ranges", argType = TInterface "Soup" "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
 
@@ -398,7 +402,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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 TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -412,26 +416,27 @@
     (MonadIO m) =>
     MessageHeaders                          -- _obj
     -> T.Text                               -- name
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 messageHeadersGet _obj name = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     name' <- textToCString name
     result <- soup_message_headers_get _obj' name'
-    checkUnexpectedReturnNULL "soup_message_headers_get" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
     freeMem name'
-    return result'
+    return maybeResult
 
 data MessageHeadersGetMethodInfo
-instance (signature ~ (T.Text -> m T.Text), MonadIO m) => MethodInfo MessageHeadersGetMethodInfo MessageHeaders signature where
+instance (signature ~ (T.Text -> m (Maybe T.Text)), MonadIO m) => MethodInfo MessageHeadersGetMethodInfo MessageHeaders signature where
     overloadedMethod _ = messageHeadersGet
 
 -- method MessageHeaders::get_content_disposition
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "disposition", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "params", argType = TGHash (TBasicType TUTF8) (TBasicType TUTF8), 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
 
@@ -476,7 +481,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt64
+-- returnType : Just (TBasicType TInt64)
 -- throws : False
 -- Skip return : False
 
@@ -503,7 +508,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "total_length", argType = TBasicType TInt64, 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
 
@@ -537,7 +542,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TGHash (TBasicType TUTF8) (TBasicType TUTF8), 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
 
@@ -550,13 +555,14 @@
 messageHeadersGetContentType ::
     (MonadIO m) =>
     MessageHeaders                          -- _obj
-    -> m (T.Text,(Map.Map T.Text T.Text))   -- result
+    -> m ((Maybe T.Text),(Map.Map T.Text T.Text))-- result
 messageHeadersGetContentType _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     params <- allocMem :: IO (Ptr (Ptr (GHashTable CString CString)))
     result <- soup_message_headers_get_content_type _obj' params
-    checkUnexpectedReturnNULL "soup_message_headers_get_content_type" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     params' <- peek params
     params'' <- unpackGHashTable params'
     let params''' = mapFirst cstringUnpackPtr params''
@@ -567,17 +573,17 @@
     unrefGHashTable params'
     touchManagedPtr _obj
     freeMem params
-    return (result', params''''''')
+    return (maybeResult, params''''''')
 
 data MessageHeadersGetContentTypeMethodInfo
-instance (signature ~ (m (T.Text,(Map.Map T.Text T.Text))), MonadIO m) => MethodInfo MessageHeadersGetContentTypeMethodInfo MessageHeaders signature where
+instance (signature ~ (m ((Maybe T.Text),(Map.Map T.Text T.Text))), MonadIO m) => MethodInfo MessageHeadersGetContentTypeMethodInfo MessageHeaders signature where
     overloadedMethod _ = messageHeadersGetContentType
 
 -- method MessageHeaders::get_encoding
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Encoding"
+-- returnType : Just (TInterface "Soup" "Encoding")
 -- throws : False
 -- Skip return : False
 
@@ -605,7 +611,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Expectation"
+-- returnType : Just (TInterface "Soup" "Expectation")
 -- throws : False
 -- Skip return : False
 
@@ -633,7 +639,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "MessageHeadersType"
+-- returnType : Just (TInterface "Soup" "MessageHeadersType")
 -- throws : False
 -- Skip return : False
 
@@ -661,7 +667,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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 TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -675,26 +681,27 @@
     (MonadIO m) =>
     MessageHeaders                          -- _obj
     -> T.Text                               -- name
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 messageHeadersGetList _obj name = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     name' <- textToCString name
     result <- soup_message_headers_get_list _obj' name'
-    checkUnexpectedReturnNULL "soup_message_headers_get_list" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
     freeMem name'
-    return result'
+    return maybeResult
 
 data MessageHeadersGetListMethodInfo
-instance (signature ~ (T.Text -> m T.Text), MonadIO m) => MethodInfo MessageHeadersGetListMethodInfo MessageHeaders signature where
+instance (signature ~ (T.Text -> m (Maybe T.Text)), MonadIO m) => MethodInfo MessageHeadersGetListMethodInfo MessageHeaders signature where
     overloadedMethod _ = messageHeadersGetList
 
 -- method MessageHeaders::get_one
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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 TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -708,26 +715,27 @@
     (MonadIO m) =>
     MessageHeaders                          -- _obj
     -> T.Text                               -- name
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 messageHeadersGetOne _obj name = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     name' <- textToCString name
     result <- soup_message_headers_get_one _obj' name'
-    checkUnexpectedReturnNULL "soup_message_headers_get_one" result
-    result' <- cstringToText result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
     touchManagedPtr _obj
     freeMem name'
-    return result'
+    return maybeResult
 
 data MessageHeadersGetOneMethodInfo
-instance (signature ~ (T.Text -> m T.Text), MonadIO m) => MethodInfo MessageHeadersGetOneMethodInfo MessageHeaders signature where
+instance (signature ~ (T.Text -> m (Maybe T.Text)), MonadIO m) => MethodInfo MessageHeadersGetOneMethodInfo MessageHeaders signature where
     overloadedMethod _ = messageHeadersGetOne
 
 -- method MessageHeaders::get_ranges
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "total_length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ranges", argType = TCArray False (-1) 3 (TInterface "Soup" "Range"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : [Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TBasicType TBoolean
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "total_length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ranges", argType = TCArray False (-1) 3 (TInterface "Soup" "Range"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "length", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -735,7 +743,7 @@
     Ptr MessageHeaders ->                   -- _obj : TInterface "Soup" "MessageHeaders"
     Int64 ->                                -- total_length : TBasicType TInt64
     Ptr (Ptr Range) ->                      -- ranges : TCArray False (-1) 3 (TInterface "Soup" "Range")
-    Ptr Int32 ->                            -- length : TBasicType TInt32
+    Ptr Int32 ->                            -- length : TBasicType TInt
     IO CInt
 
 
@@ -768,7 +776,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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},Arg {argCName = "token", 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
 
@@ -804,7 +812,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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},Arg {argCName = "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
 
@@ -840,7 +848,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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
 
@@ -871,7 +879,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", 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},Arg {argCName = "value", 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
 
@@ -906,7 +914,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "disposition", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TGHash (TBasicType TUTF8) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -950,7 +958,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_length", argType = TBasicType TInt64, 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
 
@@ -979,7 +987,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "total_length", argType = TBasicType TInt64, 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
 
@@ -1012,7 +1020,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TGHash (TBasicType TUTF8) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1056,7 +1064,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "encoding", argType = TInterface "Soup" "Encoding", 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
 
@@ -1086,7 +1094,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expectations", argType = TInterface "Soup" "Expectation", 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
 
@@ -1116,7 +1124,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt64, 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
 
@@ -1145,16 +1153,16 @@
 
 -- method MessageHeaders::set_ranges
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ranges", argType = TInterface "Soup" "Range", 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ranges", argType = TInterface "Soup" "Range", 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}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "soup_message_headers_set_ranges" soup_message_headers_set_ranges :: 
     Ptr MessageHeaders ->                   -- _obj : TInterface "Soup" "MessageHeaders"
     Ptr Range ->                            -- ranges : TInterface "Soup" "Range"
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     IO ()
 
 
diff --git a/GI/Soup/Structs/MessageHeaders.hs-boot b/GI/Soup/Structs/MessageHeaders.hs-boot
--- a/GI/Soup/Structs/MessageHeaders.hs-boot
+++ b/GI/Soup/Structs/MessageHeaders.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.MessageHeaders 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/Soup/Structs/MessageHeadersIter.hs b/GI/Soup/Structs/MessageHeadersIter.hs
--- a/GI/Soup/Structs/MessageHeadersIter.hs
+++ b/GI/Soup/Structs/MessageHeadersIter.hs
@@ -38,9 +38,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
@@ -53,14 +53,25 @@
 newZeroMessageHeadersIter :: MonadIO m => m MessageHeadersIter
 newZeroMessageHeadersIter = liftIO $ callocBytes 24 >>= wrapPtr MessageHeadersIter
 
+instance tag ~ 'AttrSet => Constructible MessageHeadersIter tag where
+    new _ attrs = do
+        o <- newZeroMessageHeadersIter
+        GI.Attributes.set o attrs
+        return o
+
+
 noMessageHeadersIter :: Maybe MessageHeadersIter
 noMessageHeadersIter = Nothing
 
+
+type instance AttributeList MessageHeadersIter = MessageHeadersIterAttributeList
+type MessageHeadersIterAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method MessageHeadersIter::next
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "MessageHeadersIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionOut, 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
 
@@ -98,7 +109,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "iter", argType = TInterface "Soup" "MessageHeadersIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "hdrs", argType = TInterface "Soup" "MessageHeaders", 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/Soup/Structs/MessageHeadersIter.hs-boot b/GI/Soup/Structs/MessageHeadersIter.hs-boot
--- a/GI/Soup/Structs/MessageHeadersIter.hs-boot
+++ b/GI/Soup/Structs/MessageHeadersIter.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.MessageHeadersIter 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/Soup/Structs/MessageQueue.hs b/GI/Soup/Structs/MessageQueue.hs
--- a/GI/Soup/Structs/MessageQueue.hs
+++ b/GI/Soup/Structs/MessageQueue.hs
@@ -16,9 +16,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
@@ -29,6 +29,10 @@
 newtype MessageQueue = MessageQueue (ForeignPtr MessageQueue)
 noMessageQueue :: Maybe MessageQueue
 noMessageQueue = Nothing
+
+
+type instance AttributeList MessageQueue = MessageQueueAttributeList
+type MessageQueueAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveMessageQueueMethod (t :: Symbol) (o :: *) :: * where
     ResolveMessageQueueMethod l o = MethodResolutionFailed l o
diff --git a/GI/Soup/Structs/MessageQueue.hs-boot b/GI/Soup/Structs/MessageQueue.hs-boot
--- a/GI/Soup/Structs/MessageQueue.hs-boot
+++ b/GI/Soup/Structs/MessageQueue.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.MessageQueue 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/Soup/Structs/MessageQueueItem.hs b/GI/Soup/Structs/MessageQueueItem.hs
--- a/GI/Soup/Structs/MessageQueueItem.hs
+++ b/GI/Soup/Structs/MessageQueueItem.hs
@@ -16,9 +16,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
@@ -29,6 +29,10 @@
 newtype MessageQueueItem = MessageQueueItem (ForeignPtr MessageQueueItem)
 noMessageQueueItem :: Maybe MessageQueueItem
 noMessageQueueItem = Nothing
+
+
+type instance AttributeList MessageQueueItem = MessageQueueItemAttributeList
+type MessageQueueItemAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveMessageQueueItemMethod (t :: Symbol) (o :: *) :: * where
     ResolveMessageQueueItemMethod l o = MethodResolutionFailed l o
diff --git a/GI/Soup/Structs/MessageQueueItem.hs-boot b/GI/Soup/Structs/MessageQueueItem.hs-boot
--- a/GI/Soup/Structs/MessageQueueItem.hs-boot
+++ b/GI/Soup/Structs/MessageQueueItem.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.MessageQueueItem 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/Soup/Structs/Multipart.hs b/GI/Soup/Structs/Multipart.hs
--- a/GI/Soup/Structs/Multipart.hs
+++ b/GI/Soup/Structs/Multipart.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
@@ -94,11 +94,15 @@
 noMultipart :: Maybe Multipart
 noMultipart = Nothing
 
+
+type instance AttributeList Multipart = MultipartAttributeList
+type MultipartAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Multipart::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Multipart"
+-- returnType : Just (TInterface "Soup" "Multipart")
 -- throws : False
 -- Skip return : False
 
@@ -123,7 +127,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "headers", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "body", argType = TInterface "Soup" "MessageBody", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "Multipart"
+-- returnType : Just (TInterface "Soup" "Multipart")
 -- throws : False
 -- Skip return : False
 
@@ -137,22 +141,23 @@
     (MonadIO m) =>
     MessageHeaders                          -- headers
     -> MessageBody                          -- body
-    -> m Multipart                          -- result
+    -> m (Maybe Multipart)                  -- result
 multipartNewFromMessage headers body = liftIO $ do
     let headers' = unsafeManagedPtrGetPtr headers
     let body' = unsafeManagedPtrGetPtr body
     result <- soup_multipart_new_from_message headers' body'
-    checkUnexpectedReturnNULL "soup_multipart_new_from_message" result
-    result' <- (wrapBoxed Multipart) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapBoxed Multipart) result'
+        return result''
     touchManagedPtr headers
     touchManagedPtr body
-    return result'
+    return maybeResult
 
 -- method Multipart::append_form_file
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Multipart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "control_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "body", argType = TInterface "Soup" "Buffer", 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
 
@@ -195,7 +200,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Multipart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "control_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", 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
 
@@ -230,7 +235,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Multipart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "headers", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "body", argType = TInterface "Soup" "Buffer", 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
 
@@ -265,7 +270,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Multipart", 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
 
@@ -292,7 +297,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Multipart", 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
 
@@ -317,15 +322,15 @@
 
 -- method Multipart::get_part
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Multipart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "part", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "headers", argType = TInterface "Soup" "MessageHeaders", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "body", argType = TInterface "Soup" "Buffer", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Multipart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "part", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "headers", argType = TInterface "Soup" "MessageHeaders", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "body", argType = TInterface "Soup" "Buffer", direction = DirectionOut, 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 "soup_multipart_get_part" soup_multipart_get_part :: 
     Ptr Multipart ->                        -- _obj : TInterface "Soup" "Multipart"
-    Int32 ->                                -- part : TBasicType TInt32
+    Int32 ->                                -- part : TBasicType TInt
     Ptr (Ptr MessageHeaders) ->             -- headers : TInterface "Soup" "MessageHeaders"
     Ptr Buffer ->                           -- body : TInterface "Soup" "Buffer"
     IO CInt
@@ -357,7 +362,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Multipart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_headers", argType = TInterface "Soup" "MessageHeaders", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_body", argType = TInterface "Soup" "MessageBody", 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/Soup/Structs/Multipart.hs-boot b/GI/Soup/Structs/Multipart.hs-boot
--- a/GI/Soup/Structs/Multipart.hs-boot
+++ b/GI/Soup/Structs/Multipart.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.Multipart 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/Soup/Structs/Range.hs b/GI/Soup/Structs/Range.hs
--- a/GI/Soup/Structs/Range.hs
+++ b/GI/Soup/Structs/Range.hs
@@ -32,20 +32,24 @@
 
  -- * Properties
 -- ** End
+    rangeEnd                                ,
     rangeReadEnd                            ,
+    rangeWriteEnd                           ,
 
 
 -- ** Start
     rangeReadStart                          ,
+    rangeStart                              ,
+    rangeWriteStart                         ,
 
 
 
 
     ) 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
@@ -58,18 +62,69 @@
 newZeroRange :: MonadIO m => m Range
 newZeroRange = liftIO $ callocBytes 16 >>= wrapPtr Range
 
+instance tag ~ 'AttrSet => Constructible Range tag where
+    new _ attrs = do
+        o <- newZeroRange
+        GI.Attributes.set o attrs
+        return o
+
+
 noRange :: Maybe Range
 noRange = Nothing
 
-rangeReadStart :: Range -> IO Int64
-rangeReadStart s = withManagedPtr s $ \ptr -> do
+rangeReadStart :: MonadIO m => Range -> m Int64
+rangeReadStart s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Int64
     return val
 
-rangeReadEnd :: Range -> IO Int64
-rangeReadEnd s = withManagedPtr s $ \ptr -> do
+rangeWriteStart :: MonadIO m => Range -> Int64 -> m ()
+rangeWriteStart s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Int64)
+
+data RangeStartFieldInfo
+instance AttrInfo RangeStartFieldInfo where
+    type AttrAllowedOps RangeStartFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint RangeStartFieldInfo = (~) Int64
+    type AttrBaseTypeConstraint RangeStartFieldInfo = (~) Range
+    type AttrGetType RangeStartFieldInfo = Int64
+    type AttrLabel RangeStartFieldInfo = "start"
+    attrGet _ = rangeReadStart
+    attrSet _ = rangeWriteStart
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+rangeStart :: AttrLabelProxy "start"
+rangeStart = AttrLabelProxy
+
+
+rangeReadEnd :: MonadIO m => Range -> m Int64
+rangeReadEnd s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Int64
     return val
+
+rangeWriteEnd :: MonadIO m => Range -> Int64 -> m ()
+rangeWriteEnd s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Int64)
+
+data RangeEndFieldInfo
+instance AttrInfo RangeEndFieldInfo where
+    type AttrAllowedOps RangeEndFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint RangeEndFieldInfo = (~) Int64
+    type AttrBaseTypeConstraint RangeEndFieldInfo = (~) Range
+    type AttrGetType RangeEndFieldInfo = Int64
+    type AttrLabel RangeEndFieldInfo = "end"
+    attrGet _ = rangeReadEnd
+    attrSet _ = rangeWriteEnd
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+rangeEnd :: AttrLabelProxy "end"
+rangeEnd = AttrLabelProxy
+
+
+
+type instance AttributeList Range = RangeAttributeList
+type RangeAttributeList = ('[ '("start", RangeStartFieldInfo), '("end", RangeEndFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveRangeMethod (t :: Symbol) (o :: *) :: * where
     ResolveRangeMethod l o = MethodResolutionFailed l o
diff --git a/GI/Soup/Structs/Range.hs-boot b/GI/Soup/Structs/Range.hs-boot
--- a/GI/Soup/Structs/Range.hs-boot
+++ b/GI/Soup/Structs/Range.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.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/Soup/Structs/URI.hs b/GI/Soup/Structs/URI.hs
--- a/GI/Soup/Structs/URI.hs
+++ b/GI/Soup/Structs/URI.hs
@@ -208,44 +208,67 @@
 
  -- * Properties
 -- ** Fragment
+    uRIClearFragment                        ,
+    uRIFragment                             ,
     uRIReadFragment                         ,
+    uRIWriteFragment                        ,
 
 
 -- ** Host
+    uRIClearHost                            ,
+    uRIHost                                 ,
     uRIReadHost                             ,
+    uRIWriteHost                            ,
 
 
 -- ** Password
+    uRIClearPassword                        ,
+    uRIPassword                             ,
     uRIReadPassword                         ,
+    uRIWritePassword                        ,
 
 
 -- ** Path
+    uRIClearPath                            ,
+    uRIPath                                 ,
     uRIReadPath                             ,
+    uRIWritePath                            ,
 
 
 -- ** Port
+    uRIPort                                 ,
     uRIReadPort                             ,
+    uRIWritePort                            ,
 
 
 -- ** Query
+    uRIClearQuery                           ,
+    uRIQuery                                ,
     uRIReadQuery                            ,
+    uRIWriteQuery                           ,
 
 
 -- ** Scheme
+    uRIClearScheme                          ,
     uRIReadScheme                           ,
+    uRIScheme                               ,
+    uRIWriteScheme                          ,
 
 
 -- ** User
+    uRIClearUser                            ,
     uRIReadUser                             ,
+    uRIUser                                 ,
+    uRIWriteUser                            ,
 
 
 
 
     ) 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
@@ -264,61 +287,274 @@
 newZeroURI :: MonadIO m => m URI
 newZeroURI = liftIO $ callocBoxedBytes 64 >>= wrapBoxed URI
 
+instance tag ~ 'AttrSet => Constructible URI tag where
+    new _ attrs = do
+        o <- newZeroURI
+        GI.Attributes.set o attrs
+        return o
+
+
 noURI :: Maybe URI
 noURI = Nothing
 
-uRIReadScheme :: URI -> IO T.Text
-uRIReadScheme s = withManagedPtr s $ \ptr -> do
+uRIReadScheme :: MonadIO m => URI -> m (Maybe T.Text)
+uRIReadScheme 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
 
-uRIReadUser :: URI -> IO T.Text
-uRIReadUser s = withManagedPtr s $ \ptr -> do
+uRIWriteScheme :: MonadIO m => URI -> CString -> m ()
+uRIWriteScheme s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+uRIClearScheme :: MonadIO m => URI -> m ()
+uRIClearScheme s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data URISchemeFieldInfo
+instance AttrInfo URISchemeFieldInfo where
+    type AttrAllowedOps URISchemeFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint URISchemeFieldInfo = (~) CString
+    type AttrBaseTypeConstraint URISchemeFieldInfo = (~) URI
+    type AttrGetType URISchemeFieldInfo = Maybe T.Text
+    type AttrLabel URISchemeFieldInfo = "scheme"
+    attrGet _ = uRIReadScheme
+    attrSet _ = uRIWriteScheme
+    attrConstruct = undefined
+    attrClear _ = uRIClearScheme
+
+uRIScheme :: AttrLabelProxy "scheme"
+uRIScheme = AttrLabelProxy
+
+
+uRIReadUser :: MonadIO m => URI -> m (Maybe T.Text)
+uRIReadUser 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
 
-uRIReadPassword :: URI -> IO T.Text
-uRIReadPassword s = withManagedPtr s $ \ptr -> do
+uRIWriteUser :: MonadIO m => URI -> CString -> m ()
+uRIWriteUser s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+uRIClearUser :: MonadIO m => URI -> m ()
+uRIClearUser s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data URIUserFieldInfo
+instance AttrInfo URIUserFieldInfo where
+    type AttrAllowedOps URIUserFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint URIUserFieldInfo = (~) CString
+    type AttrBaseTypeConstraint URIUserFieldInfo = (~) URI
+    type AttrGetType URIUserFieldInfo = Maybe T.Text
+    type AttrLabel URIUserFieldInfo = "user"
+    attrGet _ = uRIReadUser
+    attrSet _ = uRIWriteUser
+    attrConstruct = undefined
+    attrClear _ = uRIClearUser
+
+uRIUser :: AttrLabelProxy "user"
+uRIUser = AttrLabelProxy
+
+
+uRIReadPassword :: MonadIO m => URI -> m (Maybe T.Text)
+uRIReadPassword 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
 
-uRIReadHost :: URI -> IO T.Text
-uRIReadHost s = withManagedPtr s $ \ptr -> do
+uRIWritePassword :: MonadIO m => URI -> CString -> m ()
+uRIWritePassword s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: CString)
+
+uRIClearPassword :: MonadIO m => URI -> m ()
+uRIClearPassword s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: CString)
+
+data URIPasswordFieldInfo
+instance AttrInfo URIPasswordFieldInfo where
+    type AttrAllowedOps URIPasswordFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint URIPasswordFieldInfo = (~) CString
+    type AttrBaseTypeConstraint URIPasswordFieldInfo = (~) URI
+    type AttrGetType URIPasswordFieldInfo = Maybe T.Text
+    type AttrLabel URIPasswordFieldInfo = "password"
+    attrGet _ = uRIReadPassword
+    attrSet _ = uRIWritePassword
+    attrConstruct = undefined
+    attrClear _ = uRIClearPassword
+
+uRIPassword :: AttrLabelProxy "password"
+uRIPassword = AttrLabelProxy
+
+
+uRIReadHost :: MonadIO m => URI -> m (Maybe T.Text)
+uRIReadHost 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
 
-uRIReadPort :: URI -> IO Word32
-uRIReadPort s = withManagedPtr s $ \ptr -> do
+uRIWriteHost :: MonadIO m => URI -> CString -> m ()
+uRIWriteHost s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: CString)
+
+uRIClearHost :: MonadIO m => URI -> m ()
+uRIClearHost s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: CString)
+
+data URIHostFieldInfo
+instance AttrInfo URIHostFieldInfo where
+    type AttrAllowedOps URIHostFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint URIHostFieldInfo = (~) CString
+    type AttrBaseTypeConstraint URIHostFieldInfo = (~) URI
+    type AttrGetType URIHostFieldInfo = Maybe T.Text
+    type AttrLabel URIHostFieldInfo = "host"
+    attrGet _ = uRIReadHost
+    attrSet _ = uRIWriteHost
+    attrConstruct = undefined
+    attrClear _ = uRIClearHost
+
+uRIHost :: AttrLabelProxy "host"
+uRIHost = AttrLabelProxy
+
+
+uRIReadPort :: MonadIO m => URI -> m Word32
+uRIReadPort s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO Word32
     return val
 
-uRIReadPath :: URI -> IO T.Text
-uRIReadPath s = withManagedPtr s $ \ptr -> do
+uRIWritePort :: MonadIO m => URI -> Word32 -> m ()
+uRIWritePort s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Word32)
+
+data URIPortFieldInfo
+instance AttrInfo URIPortFieldInfo where
+    type AttrAllowedOps URIPortFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint URIPortFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint URIPortFieldInfo = (~) URI
+    type AttrGetType URIPortFieldInfo = Word32
+    type AttrLabel URIPortFieldInfo = "port"
+    attrGet _ = uRIReadPort
+    attrSet _ = uRIWritePort
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+uRIPort :: AttrLabelProxy "port"
+uRIPort = AttrLabelProxy
+
+
+uRIReadPath :: MonadIO m => URI -> m (Maybe T.Text)
+uRIReadPath s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 40) :: IO CString
-    val' <- cstringToText val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- cstringToText val'
+        return val''
+    return result
 
-uRIReadQuery :: URI -> IO T.Text
-uRIReadQuery s = withManagedPtr s $ \ptr -> do
+uRIWritePath :: MonadIO m => URI -> CString -> m ()
+uRIWritePath s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 40) (val :: CString)
+
+uRIClearPath :: MonadIO m => URI -> m ()
+uRIClearPath s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 40) (nullPtr :: CString)
+
+data URIPathFieldInfo
+instance AttrInfo URIPathFieldInfo where
+    type AttrAllowedOps URIPathFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint URIPathFieldInfo = (~) CString
+    type AttrBaseTypeConstraint URIPathFieldInfo = (~) URI
+    type AttrGetType URIPathFieldInfo = Maybe T.Text
+    type AttrLabel URIPathFieldInfo = "path"
+    attrGet _ = uRIReadPath
+    attrSet _ = uRIWritePath
+    attrConstruct = undefined
+    attrClear _ = uRIClearPath
+
+uRIPath :: AttrLabelProxy "path"
+uRIPath = AttrLabelProxy
+
+
+uRIReadQuery :: MonadIO m => URI -> m (Maybe T.Text)
+uRIReadQuery s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 48) :: IO CString
-    val' <- cstringToText val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- cstringToText val'
+        return val''
+    return result
 
-uRIReadFragment :: URI -> IO T.Text
-uRIReadFragment s = withManagedPtr s $ \ptr -> do
+uRIWriteQuery :: MonadIO m => URI -> CString -> m ()
+uRIWriteQuery s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (val :: CString)
+
+uRIClearQuery :: MonadIO m => URI -> m ()
+uRIClearQuery s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (nullPtr :: CString)
+
+data URIQueryFieldInfo
+instance AttrInfo URIQueryFieldInfo where
+    type AttrAllowedOps URIQueryFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint URIQueryFieldInfo = (~) CString
+    type AttrBaseTypeConstraint URIQueryFieldInfo = (~) URI
+    type AttrGetType URIQueryFieldInfo = Maybe T.Text
+    type AttrLabel URIQueryFieldInfo = "query"
+    attrGet _ = uRIReadQuery
+    attrSet _ = uRIWriteQuery
+    attrConstruct = undefined
+    attrClear _ = uRIClearQuery
+
+uRIQuery :: AttrLabelProxy "query"
+uRIQuery = AttrLabelProxy
+
+
+uRIReadFragment :: MonadIO m => URI -> m (Maybe T.Text)
+uRIReadFragment s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 56) :: IO CString
-    val' <- cstringToText val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- cstringToText val'
+        return val''
+    return result
 
+uRIWriteFragment :: MonadIO m => URI -> CString -> m ()
+uRIWriteFragment s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 56) (val :: CString)
+
+uRIClearFragment :: MonadIO m => URI -> m ()
+uRIClearFragment s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 56) (nullPtr :: CString)
+
+data URIFragmentFieldInfo
+instance AttrInfo URIFragmentFieldInfo where
+    type AttrAllowedOps URIFragmentFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint URIFragmentFieldInfo = (~) CString
+    type AttrBaseTypeConstraint URIFragmentFieldInfo = (~) URI
+    type AttrGetType URIFragmentFieldInfo = Maybe T.Text
+    type AttrLabel URIFragmentFieldInfo = "fragment"
+    attrGet _ = uRIReadFragment
+    attrSet _ = uRIWriteFragment
+    attrConstruct = undefined
+    attrClear _ = uRIClearFragment
+
+uRIFragment :: AttrLabelProxy "fragment"
+uRIFragment = AttrLabelProxy
+
+
+
+type instance AttributeList URI = URIAttributeList
+type URIAttributeList = ('[ '("scheme", URISchemeFieldInfo), '("user", URIUserFieldInfo), '("password", URIPasswordFieldInfo), '("host", URIHostFieldInfo), '("port", URIPortFieldInfo), '("path", URIPathFieldInfo), '("query", URIQueryFieldInfo), '("fragment", URIFragmentFieldInfo)] :: [(Symbol, *)])
+
 -- method URI::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "uri_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "URI"
+-- returnType : Just (TInterface "Soup" "URI")
 -- throws : False
 -- Skip return : False
 
@@ -330,7 +566,7 @@
 uRINew ::
     (MonadIO m) =>
     Maybe (T.Text)                          -- uriString
-    -> m URI                                -- result
+    -> m (Maybe URI)                        -- result
 uRINew uriString = liftIO $ do
     maybeUriString <- case uriString of
         Nothing -> return nullPtr
@@ -338,16 +574,17 @@
             jUriString' <- textToCString jUriString
             return jUriString'
     result <- soup_uri_new maybeUriString
-    checkUnexpectedReturnNULL "soup_uri_new" result
-    result' <- (wrapBoxed URI) result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- (wrapBoxed URI) result'
+        return result''
     freeMem maybeUriString
-    return result'
+    return maybeResult
 
 -- method URI::copy
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "URI"
+-- returnType : Just (TInterface "Soup" "URI")
 -- throws : False
 -- Skip return : False
 
@@ -376,7 +613,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "URI"
+-- returnType : Just (TInterface "Soup" "URI")
 -- throws : False
 -- Skip return : False
 
@@ -405,7 +642,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri2", argType = TInterface "Soup" "URI", 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
 
@@ -437,7 +674,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", 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
 
@@ -464,7 +701,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", 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
 
@@ -493,7 +730,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", 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
 
@@ -522,7 +759,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", 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
 
@@ -551,7 +788,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", 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
 
@@ -580,7 +817,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -607,7 +844,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", 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
 
@@ -636,7 +873,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", 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
 
@@ -665,7 +902,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", 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
 
@@ -694,7 +931,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TInterface "Soup" "URI", 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
 
@@ -726,7 +963,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -753,7 +990,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Soup" "URI"
+-- returnType : Just (TInterface "Soup" "URI")
 -- throws : False
 -- Skip return : False
 
@@ -786,7 +1023,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fragment", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -821,7 +1058,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "host", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -856,7 +1093,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -891,7 +1128,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", 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
 
@@ -920,15 +1157,15 @@
 
 -- method URI::set_port
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", 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 "soup_uri_set_port" soup_uri_set_port :: 
     Ptr URI ->                              -- _obj : TInterface "Soup" "URI"
-    Word32 ->                               -- port : TBasicType TUInt32
+    Word32 ->                               -- port : TBasicType TUInt
     IO ()
 
 
@@ -951,7 +1188,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -986,7 +1223,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "form", argType = TGHash (TBasicType TUTF8) (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
 
@@ -1022,7 +1259,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", 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
 
@@ -1053,7 +1290,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1088,7 +1325,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "just_path_and_query", argType = TBasicType TBoolean, 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
 
@@ -1121,7 +1358,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "URI", 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
 
@@ -1149,7 +1386,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "part", 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
 
@@ -1175,7 +1412,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "part", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "escape_extra", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -1209,7 +1446,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "part", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unescape_extra", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, 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/Soup/Structs/URI.hs-boot b/GI/Soup/Structs/URI.hs-boot
--- a/GI/Soup/Structs/URI.hs-boot
+++ b/GI/Soup/Structs/URI.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.URI 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/Soup/Structs/XMLRPCParams.hs b/GI/Soup/Structs/XMLRPCParams.hs
--- a/GI/Soup/Structs/XMLRPCParams.hs
+++ b/GI/Soup/Structs/XMLRPCParams.hs
@@ -33,9 +33,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
@@ -47,11 +47,15 @@
 noXMLRPCParams :: Maybe XMLRPCParams
 noXMLRPCParams = Nothing
 
+
+type instance AttributeList XMLRPCParams = XMLRPCParamsAttributeList
+type XMLRPCParamsAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method XMLRPCParams::free
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "XMLRPCParams", 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
 
@@ -78,7 +82,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "XMLRPCParams", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TVariant
+-- returnType : Just TVariant
 -- throws : True
 -- Skip return : False
 
diff --git a/GI/Soup/Structs/XMLRPCParams.hs-boot b/GI/Soup/Structs/XMLRPCParams.hs-boot
--- a/GI/Soup/Structs/XMLRPCParams.hs-boot
+++ b/GI/Soup/Structs/XMLRPCParams.hs-boot
@@ -1,8 +1,8 @@
 module GI.Soup.Structs.XMLRPCParams 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-soup.cabal b/gi-soup.cabal
--- a/gi-soup.cabal
+++ b/gi-soup.cabal
@@ -1,6 +1,6 @@
 -- Autogenerated, do not edit.
 name:               gi-soup
-version:            0.2.52.13
+version:            0.2.52.14
 synopsis:           Soup bindings
 description:        Bindings for Soup, 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.Soup.Types
@@ -76,10 +76,10 @@
                         GI.Soup.Structs.XMLRPCParams
     pkgconfig-depends:  libsoup-2.4 >= 2.52
     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,
-        gi-gio >= 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,
+        gi-gio >= 0.2.46.14 && < 0.2.47,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
