diff --git a/GI/GLib.hs b/GI/GLib.hs
--- a/GI/GLib.hs
+++ b/GI/GLib.hs
@@ -30,9 +30,9 @@
 import GI.GLib.Structs
 import GI.GLib.Unions
 
-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/GLib/Callbacks.hs b/GI/GLib/Callbacks.hs
--- a/GI/GLib/Callbacks.hs
+++ b/GI/GLib/Callbacks.hs
@@ -554,9 +554,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
@@ -872,9 +872,9 @@
     Ptr Source ->
     Int32 ->
     IO CInt
-sourceFuncsPrepareFieldCallbackWrapper funptrptr _cb source timeout = do
+sourceFuncsPrepareFieldCallbackWrapper funptrptr _cb source timeout_ = do
     source' <- (newBoxed Source) source
-    result <- _cb  source' timeout
+    result <- _cb  source' timeout_
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -1221,9 +1221,9 @@
     Word32 ->
     Int32 ->
     IO Int32
-pollFuncWrapper funptrptr _cb ufds nfsd timeout = do
+pollFuncWrapper funptrptr _cb ufds nfsd timeout_ = do
     ufds' <- (newBoxed PollFD) ufds
-    result <- _cb  ufds' nfsd timeout
+    result <- _cb  ufds' nfsd timeout_
     maybeReleaseFunPtr funptrptr
     return result
 
diff --git a/GI/GLib/Constants.hs b/GI/GLib/Constants.hs
--- a/GI/GLib/Constants.hs
+++ b/GI/GLib/Constants.hs
@@ -142,9 +142,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/GLib/Enums.hs b/GI/GLib/Enums.hs
--- a/GI/GLib/Enums.hs
+++ b/GI/GLib/Enums.hs
@@ -72,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
diff --git a/GI/GLib/Flags.hs b/GI/GLib/Flags.hs
--- a/GI/GLib/Flags.hs
+++ b/GI/GLib/Flags.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
@@ -505,8 +505,8 @@
 foreign import ccall "g_io_condition_get_type" c_g_io_condition_get_type :: 
     IO GType
 
-instance BoxedEnum IOCondition where
-    boxedEnumType _ = c_g_io_condition_get_type
+instance BoxedFlags IOCondition where
+    boxedFlagsType _ = c_g_io_condition_get_type
 
 instance IsGFlag IOCondition
 
diff --git a/GI/GLib/Functions.hs b/GI/GLib/Functions.hs
--- a/GI/GLib/Functions.hs
+++ b/GI/GLib/Functions.hs
@@ -1474,9862 +1474,9835 @@
 
     ) where
 
-import Prelude ()
-import Data.GI.Base.ShortPrelude
-
-import qualified Data.Text as T
-import qualified Data.ByteString.Char8 as B
-import qualified Data.Map as Map
-
-import GI.GLib.Types
-import GI.GLib.Callbacks
-
--- function g_warn_message
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "warnexpr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_warn_message" g_warn_message :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- file : TBasicType TUTF8
-    Int32 ->                                -- line : TBasicType TInt32
-    CString ->                              -- func : TBasicType TUTF8
-    CString ->                              -- warnexpr : TBasicType TUTF8
-    IO ()
-
-
-warnMessage ::
-    (MonadIO m) =>
-    T.Text                                  -- domain
-    -> T.Text                               -- file
-    -> Int32                                -- line
-    -> T.Text                               -- func
-    -> T.Text                               -- warnexpr
-    -> m ()                                 -- result
-warnMessage domain file line func warnexpr = liftIO $ do
-    domain' <- textToCString domain
-    file' <- textToCString file
-    func' <- textToCString func
-    warnexpr' <- textToCString warnexpr
-    g_warn_message domain' file' line func' warnexpr'
-    freeMem domain'
-    freeMem file'
-    freeMem func'
-    freeMem warnexpr'
-    return ()
-
-
--- function g_variant_get_gtype
--- Args : []
--- Lengths : []
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_variant_get_gtype" g_variant_get_gtype :: 
-    IO CGType
-
-
-variantGetGtype ::
-    (MonadIO m) =>
-    m GType                                 -- result
-variantGetGtype  = liftIO $ do
-    result <- g_variant_get_gtype
-    let result' = GType result
-    return result'
-
-
--- function g_utf8_validate
--- Args : [Arg {argCName = "str", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : [Arg {argCName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_validate" g_utf8_validate :: 
-    Ptr Word8 ->                            -- str : TCArray False (-1) 1 (TBasicType TUInt8)
-    Int64 ->                                -- max_len : TBasicType TInt64
-    Ptr CString ->                          -- end : TBasicType TUTF8
-    IO CInt
-
-
-utf8Validate ::
-    (MonadIO m) =>
-    ByteString                              -- str
-    -> m (Bool,T.Text)                      -- result
-utf8Validate str = liftIO $ do
-    let maxLen = fromIntegral $ B.length str
-    str' <- packByteString str
-    end <- allocMem :: IO (Ptr CString)
-    result <- g_utf8_validate str' maxLen end
-    let result' = (/= 0) result
-    end' <- peek end
-    end'' <- cstringToText end'
-    freeMem str'
-    freeMem end
-    return (result', end'')
-
-
--- function g_utf8_substring
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_substring" g_utf8_substring :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- start_pos : TBasicType TInt64
-    Int64 ->                                -- end_pos : TBasicType TInt64
-    IO CString
-
-
-utf8Substring ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- startPos
-    -> Int64                                -- endPos
-    -> m T.Text                             -- result
-utf8Substring str startPos endPos = liftIO $ do
-    str' <- textToCString str
-    result <- g_utf8_substring str' startPos endPos
-    checkUnexpectedReturnNULL "g_utf8_substring" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_utf8_strup
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_strup" g_utf8_strup :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    IO CString
-
-
-utf8Strup ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> m T.Text                             -- result
-utf8Strup str len = liftIO $ do
-    str' <- textToCString str
-    result <- g_utf8_strup str' len
-    checkUnexpectedReturnNULL "g_utf8_strup" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_utf8_strreverse
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_strreverse" g_utf8_strreverse :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    IO CString
-
-
-utf8Strreverse ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> m T.Text                             -- result
-utf8Strreverse str len = liftIO $ do
-    str' <- textToCString str
-    result <- g_utf8_strreverse str' len
-    checkUnexpectedReturnNULL "g_utf8_strreverse" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_utf8_strrchr
--- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_strrchr" g_utf8_strrchr :: 
-    CString ->                              -- p : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CString
-
-
-utf8Strrchr ::
-    (MonadIO m) =>
-    T.Text                                  -- p
-    -> Int64                                -- len
-    -> Char                                 -- c
-    -> m T.Text                             -- result
-utf8Strrchr p len c = liftIO $ do
-    p' <- textToCString p
-    let c' = (fromIntegral . ord) c
-    result <- g_utf8_strrchr p' len c'
-    checkUnexpectedReturnNULL "g_utf8_strrchr" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem p'
-    return result'
-
-
--- function g_utf8_strncpy
--- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_strncpy" g_utf8_strncpy :: 
-    CString ->                              -- dest : TBasicType TUTF8
-    CString ->                              -- src : TBasicType TUTF8
-    Word64 ->                               -- n : TBasicType TUInt64
-    IO CString
-
-
-utf8Strncpy ::
-    (MonadIO m) =>
-    T.Text                                  -- dest
-    -> T.Text                               -- src
-    -> Word64                               -- n
-    -> m T.Text                             -- result
-utf8Strncpy dest src n = liftIO $ do
-    dest' <- textToCString dest
-    src' <- textToCString src
-    result <- g_utf8_strncpy dest' src' n
-    checkUnexpectedReturnNULL "g_utf8_strncpy" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem dest'
-    freeMem src'
-    return result'
-
-
--- function g_utf8_strlen
--- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_strlen" g_utf8_strlen :: 
-    CString ->                              -- p : TBasicType TUTF8
-    Int64 ->                                -- max : TBasicType TInt64
-    IO Int64
-
-
-utf8Strlen ::
-    (MonadIO m) =>
-    T.Text                                  -- p
-    -> Int64                                -- max
-    -> m Int64                              -- result
-utf8Strlen p max = liftIO $ do
-    p' <- textToCString p
-    result <- g_utf8_strlen p' max
-    freeMem p'
-    return result
-
-
--- function g_utf8_strdown
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_strdown" g_utf8_strdown :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    IO CString
-
-
-utf8Strdown ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> m T.Text                             -- result
-utf8Strdown str len = liftIO $ do
-    str' <- textToCString str
-    result <- g_utf8_strdown str' len
-    checkUnexpectedReturnNULL "g_utf8_strdown" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_utf8_strchr
--- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_strchr" g_utf8_strchr :: 
-    CString ->                              -- p : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CString
-
-
-utf8Strchr ::
-    (MonadIO m) =>
-    T.Text                                  -- p
-    -> Int64                                -- len
-    -> Char                                 -- c
-    -> m T.Text                             -- result
-utf8Strchr p len c = liftIO $ do
-    p' <- textToCString p
-    let c' = (fromIntegral . ord) c
-    result <- g_utf8_strchr p' len c'
-    checkUnexpectedReturnNULL "g_utf8_strchr" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem p'
-    return result'
-
-
--- function g_utf8_prev_char
--- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_prev_char" g_utf8_prev_char :: 
-    CString ->                              -- p : TBasicType TUTF8
-    IO CString
-
-
-utf8PrevChar ::
-    (MonadIO m) =>
-    T.Text                                  -- p
-    -> m T.Text                             -- result
-utf8PrevChar p = liftIO $ do
-    p' <- textToCString p
-    result <- g_utf8_prev_char p'
-    checkUnexpectedReturnNULL "g_utf8_prev_char" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem p'
-    return result'
-
-
--- function g_utf8_pointer_to_offset
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_pointer_to_offset" g_utf8_pointer_to_offset :: 
-    CString ->                              -- str : TBasicType TUTF8
-    CString ->                              -- pos : TBasicType TUTF8
-    IO Int64
-
-
-utf8PointerToOffset ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> T.Text                               -- pos
-    -> m Int64                              -- result
-utf8PointerToOffset str pos = liftIO $ do
-    str' <- textToCString str
-    pos' <- textToCString pos
-    result <- g_utf8_pointer_to_offset str' pos'
-    freeMem str'
-    freeMem pos'
-    return result
-
-
--- function g_utf8_offset_to_pointer
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, 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 : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_offset_to_pointer" g_utf8_offset_to_pointer :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- offset : TBasicType TInt64
-    IO CString
-
-
-utf8OffsetToPointer ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- offset
-    -> m T.Text                             -- result
-utf8OffsetToPointer str offset = liftIO $ do
-    str' <- textToCString str
-    result <- g_utf8_offset_to_pointer str' offset
-    checkUnexpectedReturnNULL "g_utf8_offset_to_pointer" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_utf8_normalize
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface "GLib" "NormalizeMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_normalize" g_utf8_normalize :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    CUInt ->                                -- mode : TInterface "GLib" "NormalizeMode"
-    IO CString
-
-
-utf8Normalize ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> NormalizeMode                        -- mode
-    -> m T.Text                             -- result
-utf8Normalize str len mode = liftIO $ do
-    str' <- textToCString str
-    let mode' = (fromIntegral . fromEnum) mode
-    result <- g_utf8_normalize str' len mode'
-    checkUnexpectedReturnNULL "g_utf8_normalize" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_utf8_get_char_validated
--- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUniChar
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_get_char_validated" g_utf8_get_char_validated :: 
-    CString ->                              -- p : TBasicType TUTF8
-    Int64 ->                                -- max_len : TBasicType TInt64
-    IO CInt
-
-
-utf8GetCharValidated ::
-    (MonadIO m) =>
-    T.Text                                  -- p
-    -> Int64                                -- maxLen
-    -> m Char                               -- result
-utf8GetCharValidated p maxLen = liftIO $ do
-    p' <- textToCString p
-    result <- g_utf8_get_char_validated p' maxLen
-    let result' = (chr . fromIntegral) result
-    freeMem p'
-    return result'
-
-
--- function g_utf8_get_char
--- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUniChar
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_get_char" g_utf8_get_char :: 
-    CString ->                              -- p : TBasicType TUTF8
-    IO CInt
-
-
-utf8GetChar ::
-    (MonadIO m) =>
-    T.Text                                  -- p
-    -> m Char                               -- result
-utf8GetChar p = liftIO $ do
-    p' <- textToCString p
-    result <- g_utf8_get_char p'
-    let result' = (chr . fromIntegral) result
-    freeMem p'
-    return result'
-
-
--- function g_utf8_find_prev_char
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_find_prev_char" g_utf8_find_prev_char :: 
-    CString ->                              -- str : TBasicType TUTF8
-    CString ->                              -- p : TBasicType TUTF8
-    IO CString
-
-
-utf8FindPrevChar ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> T.Text                               -- p
-    -> m T.Text                             -- result
-utf8FindPrevChar str p = liftIO $ do
-    str' <- textToCString str
-    p' <- textToCString p
-    result <- g_utf8_find_prev_char str' p'
-    checkUnexpectedReturnNULL "g_utf8_find_prev_char" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    freeMem p'
-    return result'
-
-
--- function g_utf8_find_next_char
--- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_find_next_char" g_utf8_find_next_char :: 
-    CString ->                              -- p : TBasicType TUTF8
-    CString ->                              -- end : TBasicType TUTF8
-    IO CString
-
-
-utf8FindNextChar ::
-    (MonadIO m) =>
-    T.Text                                  -- p
-    -> T.Text                               -- end
-    -> m T.Text                             -- result
-utf8FindNextChar p end = liftIO $ do
-    p' <- textToCString p
-    end' <- textToCString end
-    result <- g_utf8_find_next_char p' end'
-    checkUnexpectedReturnNULL "g_utf8_find_next_char" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem p'
-    freeMem end'
-    return result'
-
-
--- function g_utf8_collate_key_for_filename
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_collate_key_for_filename" g_utf8_collate_key_for_filename :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    IO CString
-
-
-utf8CollateKeyForFilename ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> m T.Text                             -- result
-utf8CollateKeyForFilename str len = liftIO $ do
-    str' <- textToCString str
-    result <- g_utf8_collate_key_for_filename str' len
-    checkUnexpectedReturnNULL "g_utf8_collate_key_for_filename" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_utf8_collate_key
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_collate_key" g_utf8_collate_key :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    IO CString
-
-
-utf8CollateKey ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> m T.Text                             -- result
-utf8CollateKey str len = liftIO $ do
-    str' <- textToCString str
-    result <- g_utf8_collate_key str' len
-    checkUnexpectedReturnNULL "g_utf8_collate_key" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_utf8_collate
--- Args : [Arg {argCName = "str1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_collate" g_utf8_collate :: 
-    CString ->                              -- str1 : TBasicType TUTF8
-    CString ->                              -- str2 : TBasicType TUTF8
-    IO Int32
-
-
-utf8Collate ::
-    (MonadIO m) =>
-    T.Text                                  -- str1
-    -> T.Text                               -- str2
-    -> m Int32                              -- result
-utf8Collate str1 str2 = liftIO $ do
-    str1' <- textToCString str1
-    str2' <- textToCString str2
-    result <- g_utf8_collate str1' str2'
-    freeMem str1'
-    freeMem str2'
-    return result
-
-
--- function g_utf8_casefold
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_utf8_casefold" g_utf8_casefold :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    IO CString
-
-
-utf8Casefold ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> m T.Text                             -- result
-utf8Casefold str len = liftIO $ do
-    str' <- textToCString str
-    result <- g_utf8_casefold str' len
-    checkUnexpectedReturnNULL "g_utf8_casefold" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_usleep
--- Args : [Arg {argCName = "microseconds", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_usleep" g_usleep :: 
-    Word64 ->                               -- microseconds : TBasicType TUInt64
-    IO ()
-
-
-usleep ::
-    (MonadIO m) =>
-    Word64                                  -- microseconds
-    -> m ()                                 -- result
-usleep microseconds = liftIO $ do
-    g_usleep microseconds
-    return ()
-
-
--- function g_uri_unescape_string
--- Args : [Arg {argCName = "escaped_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "illegal_characters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_uri_unescape_string" g_uri_unescape_string :: 
-    CString ->                              -- escaped_string : TBasicType TUTF8
-    CString ->                              -- illegal_characters : TBasicType TUTF8
-    IO CString
-
-
-uriUnescapeString ::
-    (MonadIO m) =>
-    T.Text                                  -- escapedString
-    -> Maybe (T.Text)                       -- illegalCharacters
-    -> m T.Text                             -- result
-uriUnescapeString escapedString illegalCharacters = liftIO $ do
-    escapedString' <- textToCString escapedString
-    maybeIllegalCharacters <- case illegalCharacters of
-        Nothing -> return nullPtr
-        Just jIllegalCharacters -> do
-            jIllegalCharacters' <- textToCString jIllegalCharacters
-            return jIllegalCharacters'
-    result <- g_uri_unescape_string escapedString' maybeIllegalCharacters
-    checkUnexpectedReturnNULL "g_uri_unescape_string" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem escapedString'
-    freeMem maybeIllegalCharacters
-    return result'
-
-
--- function g_uri_unescape_segment
--- Args : [Arg {argCName = "escaped_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "escaped_string_end", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "illegal_characters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_uri_unescape_segment" g_uri_unescape_segment :: 
-    CString ->                              -- escaped_string : TBasicType TUTF8
-    CString ->                              -- escaped_string_end : TBasicType TUTF8
-    CString ->                              -- illegal_characters : TBasicType TUTF8
-    IO CString
-
-
-uriUnescapeSegment ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- escapedString
-    -> Maybe (T.Text)                       -- escapedStringEnd
-    -> Maybe (T.Text)                       -- illegalCharacters
-    -> m T.Text                             -- result
-uriUnescapeSegment escapedString escapedStringEnd illegalCharacters = liftIO $ do
-    maybeEscapedString <- case escapedString of
-        Nothing -> return nullPtr
-        Just jEscapedString -> do
-            jEscapedString' <- textToCString jEscapedString
-            return jEscapedString'
-    maybeEscapedStringEnd <- case escapedStringEnd of
-        Nothing -> return nullPtr
-        Just jEscapedStringEnd -> do
-            jEscapedStringEnd' <- textToCString jEscapedStringEnd
-            return jEscapedStringEnd'
-    maybeIllegalCharacters <- case illegalCharacters of
-        Nothing -> return nullPtr
-        Just jIllegalCharacters -> do
-            jIllegalCharacters' <- textToCString jIllegalCharacters
-            return jIllegalCharacters'
-    result <- g_uri_unescape_segment maybeEscapedString maybeEscapedStringEnd maybeIllegalCharacters
-    checkUnexpectedReturnNULL "g_uri_unescape_segment" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem maybeEscapedString
-    freeMem maybeEscapedStringEnd
-    freeMem maybeIllegalCharacters
-    return result'
-
-
--- function g_uri_parse_scheme
--- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_uri_parse_scheme" g_uri_parse_scheme :: 
-    CString ->                              -- uri : TBasicType TUTF8
-    IO CString
-
-
-uriParseScheme ::
-    (MonadIO m) =>
-    T.Text                                  -- uri
-    -> m T.Text                             -- result
-uriParseScheme uri = liftIO $ do
-    uri' <- textToCString uri
-    result <- g_uri_parse_scheme uri'
-    checkUnexpectedReturnNULL "g_uri_parse_scheme" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem uri'
-    return result'
-
-
--- function g_uri_list_extract_uris
--- Args : [Arg {argCName = "uri_list", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_uri_list_extract_uris" g_uri_list_extract_uris :: 
-    CString ->                              -- uri_list : TBasicType TUTF8
-    IO (Ptr CString)
-
-
-uriListExtractUris ::
-    (MonadIO m) =>
-    T.Text                                  -- uriList
-    -> m [T.Text]                           -- result
-uriListExtractUris uriList = liftIO $ do
-    uriList' <- textToCString uriList
-    result <- g_uri_list_extract_uris uriList'
-    checkUnexpectedReturnNULL "g_uri_list_extract_uris" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    freeMem uriList'
-    return result'
-
-
--- function g_uri_escape_string
--- Args : [Arg {argCName = "unescaped", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reserved_chars_allowed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allow_utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_uri_escape_string" g_uri_escape_string :: 
-    CString ->                              -- unescaped : TBasicType TUTF8
-    CString ->                              -- reserved_chars_allowed : TBasicType TUTF8
-    CInt ->                                 -- allow_utf8 : TBasicType TBoolean
-    IO CString
-
-
-uriEscapeString ::
-    (MonadIO m) =>
-    T.Text                                  -- unescaped
-    -> Maybe (T.Text)                       -- reservedCharsAllowed
-    -> Bool                                 -- allowUtf8
-    -> m T.Text                             -- result
-uriEscapeString unescaped reservedCharsAllowed allowUtf8 = liftIO $ do
-    unescaped' <- textToCString unescaped
-    maybeReservedCharsAllowed <- case reservedCharsAllowed of
-        Nothing -> return nullPtr
-        Just jReservedCharsAllowed -> do
-            jReservedCharsAllowed' <- textToCString jReservedCharsAllowed
-            return jReservedCharsAllowed'
-    let allowUtf8' = (fromIntegral . fromEnum) allowUtf8
-    result <- g_uri_escape_string unescaped' maybeReservedCharsAllowed allowUtf8'
-    checkUnexpectedReturnNULL "g_uri_escape_string" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem unescaped'
-    freeMem maybeReservedCharsAllowed
-    return result'
-
-
--- function g_unsetenv
--- Args : [Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unsetenv" g_unsetenv :: 
-    CString ->                              -- variable : TBasicType TUTF8
-    IO ()
-
-
-unsetenv ::
-    (MonadIO m) =>
-    T.Text                                  -- variable
-    -> m ()                                 -- result
-unsetenv variable = liftIO $ do
-    variable' <- textToCString variable
-    g_unsetenv variable'
-    freeMem variable'
-    return ()
-
-
--- function g_unlink
--- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unlink" g_unlink :: 
-    CString ->                              -- filename : TBasicType TUTF8
-    IO Int32
-
-
-unlink ::
-    (MonadIO m) =>
-    T.Text                                  -- filename
-    -> m Int32                              -- result
-unlink filename = liftIO $ do
-    filename' <- textToCString filename
-    result <- g_unlink filename'
-    freeMem filename'
-    return result
-
-
--- function g_unix_signal_source_new
--- Args : [Arg {argCName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "Source"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unix_signal_source_new" g_unix_signal_source_new :: 
-    Int32 ->                                -- signum : TBasicType TInt32
-    IO (Ptr Source)
-
-
-unixSignalSourceNew ::
-    (MonadIO m) =>
-    Int32                                   -- signum
-    -> m Source                             -- result
-unixSignalSourceNew signum = liftIO $ do
-    result <- g_unix_signal_source_new signum
-    checkUnexpectedReturnNULL "g_unix_signal_source_new" result
-    result' <- (wrapBoxed Source) result
-    return result'
-
-
--- function g_unix_signal_add_full
--- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler", argType = TInterface "GLib" "SourceFunc", 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 = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unix_signal_add_full" g_unix_signal_add_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    Int32 ->                                -- signum : TBasicType TInt32
-    FunPtr SourceFuncC ->                   -- handler : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-unixSignalAdd ::
-    (MonadIO m) =>
-    Int32                                   -- priority
-    -> Int32                                -- signum
-    -> SourceFunc                           -- handler
-    -> m Word32                             -- result
-unixSignalAdd priority signum handler = liftIO $ do
-    handler' <- mkSourceFunc (sourceFuncWrapper Nothing handler)
-    let userData = castFunPtrToPtr handler'
-    let notify = safeFreeFunPtrPtr
-    result <- g_unix_signal_add_full priority signum handler' userData notify
-    return result
-
-
--- function g_unix_set_fd_nonblocking
--- Args : [Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nonblock", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_unix_set_fd_nonblocking" g_unix_set_fd_nonblocking :: 
-    Int32 ->                                -- fd : TBasicType TInt32
-    CInt ->                                 -- nonblock : TBasicType TBoolean
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-unixSetFdNonblocking ::
-    (MonadIO m) =>
-    Int32                                   -- fd
-    -> Bool                                 -- nonblock
-    -> m ()                                 -- result
-unixSetFdNonblocking fd nonblock = liftIO $ do
-    let nonblock' = (fromIntegral . fromEnum) nonblock
-    onException (do
-        _ <- propagateGError $ g_unix_set_fd_nonblocking fd nonblock'
-        return ()
-     ) (do
-        return ()
-     )
-
-
--- function g_unix_open_pipe
--- Args : [Arg {argCName = "fds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_unix_open_pipe" g_unix_open_pipe :: 
-    Int32 ->                                -- fds : TBasicType TInt32
-    Int32 ->                                -- flags : TBasicType TInt32
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-unixOpenPipe ::
-    (MonadIO m) =>
-    Int32                                   -- fds
-    -> Int32                                -- flags
-    -> m ()                                 -- result
-unixOpenPipe fds flags = liftIO $ do
-    onException (do
-        _ <- propagateGError $ g_unix_open_pipe fds flags
-        return ()
-     ) (do
-        return ()
-     )
-
-
--- function g_unix_fd_source_new
--- Args : [Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "Source"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unix_fd_source_new" g_unix_fd_source_new :: 
-    Int32 ->                                -- fd : TBasicType TInt32
-    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
-    IO (Ptr Source)
-
-
-unixFdSourceNew ::
-    (MonadIO m) =>
-    Int32                                   -- fd
-    -> [IOCondition]                        -- condition
-    -> m Source                             -- result
-unixFdSourceNew fd condition = liftIO $ do
-    let condition' = gflagsToWord condition
-    result <- g_unix_fd_source_new fd condition'
-    checkUnexpectedReturnNULL "g_unix_fd_source_new" result
-    result' <- (wrapBoxed Source) result
-    return result'
-
-
--- function g_unix_fd_add_full
--- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, 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 = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "UnixFDSourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, 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 = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unix_fd_add_full" g_unix_fd_add_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    Int32 ->                                -- fd : TBasicType TInt32
-    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
-    FunPtr UnixFDSourceFuncC ->             -- function : TInterface "GLib" "UnixFDSourceFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-unixFdAddFull ::
-    (MonadIO m) =>
-    Int32                                   -- priority
-    -> Int32                                -- fd
-    -> [IOCondition]                        -- condition
-    -> UnixFDSourceFunc                     -- function
-    -> m Word32                             -- result
-unixFdAddFull priority fd condition function = liftIO $ do
-    let condition' = gflagsToWord condition
-    function' <- mkUnixFDSourceFunc (unixFDSourceFuncWrapper Nothing function)
-    let userData = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- g_unix_fd_add_full priority fd condition' function' userData notify
-    return result
-
-
--- function g_unix_error_quark
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unix_error_quark" g_unix_error_quark :: 
-    IO Word32
-
-
-unixErrorQuark ::
-    (MonadIO m) =>
-    m Word32                                -- result
-unixErrorQuark  = liftIO $ do
-    result <- g_unix_error_quark
-    return result
-
-
--- function g_unicode_script_to_iso15924
--- Args : [Arg {argCName = "script", argType = TInterface "GLib" "UnicodeScript", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unicode_script_to_iso15924" g_unicode_script_to_iso15924 :: 
-    CUInt ->                                -- script : TInterface "GLib" "UnicodeScript"
-    IO Word32
-
-
-unicodeScriptToIso15924 ::
-    (MonadIO m) =>
-    UnicodeScript                           -- script
-    -> m Word32                             -- result
-unicodeScriptToIso15924 script = liftIO $ do
-    let script' = (fromIntegral . fromEnum) script
-    result <- g_unicode_script_to_iso15924 script'
-    return result
-
-
--- function g_unicode_script_from_iso15924
--- Args : [Arg {argCName = "iso15924", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "UnicodeScript"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unicode_script_from_iso15924" g_unicode_script_from_iso15924 :: 
-    Word32 ->                               -- iso15924 : TBasicType TUInt32
-    IO CUInt
-
-
-unicodeScriptFromIso15924 ::
-    (MonadIO m) =>
-    Word32                                  -- iso15924
-    -> m UnicodeScript                      -- result
-unicodeScriptFromIso15924 iso15924 = liftIO $ do
-    result <- g_unicode_script_from_iso15924 iso15924
-    let result' = (toEnum . fromIntegral) result
-    return result'
-
-
--- function g_unicode_canonical_ordering
--- Args : [Arg {argCName = "string", argType = TBasicType TUniChar, 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}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unicode_canonical_ordering" g_unicode_canonical_ordering :: 
-    CInt ->                                 -- string : TBasicType TUniChar
-    Word64 ->                               -- len : TBasicType TUInt64
-    IO ()
-
-
-unicodeCanonicalOrdering ::
-    (MonadIO m) =>
-    Char                                    -- string
-    -> Word64                               -- len
-    -> m ()                                 -- result
-unicodeCanonicalOrdering string len = liftIO $ do
-    let string' = (fromIntegral . ord) string
-    g_unicode_canonical_ordering string' len
-    return ()
-
-
--- function g_unicode_canonical_decomposition
--- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUniChar
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unicode_canonical_decomposition" g_unicode_canonical_decomposition :: 
-    CInt ->                                 -- ch : TBasicType TUniChar
-    Word64 ->                               -- result_len : TBasicType TUInt64
-    IO CInt
-
-{-# DEPRECATED unicodeCanonicalDecomposition ["(Since version 2.30)","Use the more flexible g_unichar_fully_decompose()","  instead."]#-}
-unicodeCanonicalDecomposition ::
-    (MonadIO m) =>
-    Char                                    -- ch
-    -> Word64                               -- resultLen
-    -> m Char                               -- result
-unicodeCanonicalDecomposition ch resultLen = liftIO $ do
-    let ch' = (fromIntegral . ord) ch
-    result <- g_unicode_canonical_decomposition ch' resultLen
-    let result' = (chr . fromIntegral) result
-    return result'
-
-
--- function g_unichar_xdigit_value
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_xdigit_value" g_unichar_xdigit_value :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO Int32
-
-
-unicharXdigitValue ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Int32                              -- result
-unicharXdigitValue c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_xdigit_value c'
-    return result
-
-
--- function g_unichar_validate
--- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_validate" g_unichar_validate :: 
-    CInt ->                                 -- ch : TBasicType TUniChar
-    IO CInt
-
-
-unicharValidate ::
-    (MonadIO m) =>
-    Char                                    -- ch
-    -> m Bool                               -- result
-unicharValidate ch = liftIO $ do
-    let ch' = (fromIntegral . ord) ch
-    result <- g_unichar_validate ch'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_type
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "UnicodeType"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_type" g_unichar_type :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CUInt
-
-
-unicharType ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m UnicodeType                        -- result
-unicharType c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_type c'
-    let result' = (toEnum . fromIntegral) result
-    return result'
-
-
--- function g_unichar_toupper
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUniChar
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_toupper" g_unichar_toupper :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharToupper ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Char                               -- result
-unicharToupper c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_toupper c'
-    let result' = (chr . fromIntegral) result
-    return result'
-
-
--- function g_unichar_totitle
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUniChar
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_totitle" g_unichar_totitle :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharTotitle ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Char                               -- result
-unicharTotitle c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_totitle c'
-    let result' = (chr . fromIntegral) result
-    return result'
-
-
--- function g_unichar_tolower
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUniChar
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_tolower" g_unichar_tolower :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharTolower ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Char                               -- result
-unicharTolower c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_tolower c'
-    let result' = (chr . fromIntegral) result
-    return result'
-
-
--- function g_unichar_to_utf8
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "outbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_to_utf8" g_unichar_to_utf8 :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    CString ->                              -- outbuf : TBasicType TUTF8
-    IO Int32
-
-
-unicharToUtf8 ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> T.Text                               -- outbuf
-    -> m Int32                              -- result
-unicharToUtf8 c outbuf = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    outbuf' <- textToCString outbuf
-    result <- g_unichar_to_utf8 c' outbuf'
-    freeMem outbuf'
-    return result
-
-
--- function g_unichar_iszerowidth
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_iszerowidth" g_unichar_iszerowidth :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIszerowidth ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIszerowidth c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_iszerowidth c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_isxdigit
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_isxdigit" g_unichar_isxdigit :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIsxdigit ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIsxdigit c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_isxdigit c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_iswide_cjk
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_iswide_cjk" g_unichar_iswide_cjk :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIswideCjk ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIswideCjk c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_iswide_cjk c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_iswide
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_iswide" g_unichar_iswide :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIswide ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIswide c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_iswide c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_isupper
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_isupper" g_unichar_isupper :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIsupper ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIsupper c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_isupper c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_istitle
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_istitle" g_unichar_istitle :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIstitle ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIstitle c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_istitle c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_isspace
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_isspace" g_unichar_isspace :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIsspace ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIsspace c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_isspace c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_ispunct
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_ispunct" g_unichar_ispunct :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIspunct ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIspunct c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_ispunct c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_isprint
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_isprint" g_unichar_isprint :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIsprint ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIsprint c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_isprint c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_ismark
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_ismark" g_unichar_ismark :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIsmark ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIsmark c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_ismark c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_islower
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_islower" g_unichar_islower :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIslower ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIslower c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_islower c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_isgraph
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_isgraph" g_unichar_isgraph :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIsgraph ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIsgraph c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_isgraph c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_isdigit
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_isdigit" g_unichar_isdigit :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIsdigit ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIsdigit c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_isdigit c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_isdefined
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_isdefined" g_unichar_isdefined :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIsdefined ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIsdefined c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_isdefined c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_iscntrl
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_iscntrl" g_unichar_iscntrl :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIscntrl ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIscntrl c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_iscntrl c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_isalpha
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_isalpha" g_unichar_isalpha :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIsalpha ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIsalpha c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_isalpha c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_isalnum
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_isalnum" g_unichar_isalnum :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CInt
-
-
-unicharIsalnum ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Bool                               -- result
-unicharIsalnum c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_isalnum c'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_get_script
--- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "UnicodeScript"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_get_script" g_unichar_get_script :: 
-    CInt ->                                 -- ch : TBasicType TUniChar
-    IO CUInt
-
-
-unicharGetScript ::
-    (MonadIO m) =>
-    Char                                    -- ch
-    -> m UnicodeScript                      -- result
-unicharGetScript ch = liftIO $ do
-    let ch' = (fromIntegral . ord) ch
-    result <- g_unichar_get_script ch'
-    let result' = (toEnum . fromIntegral) result
-    return result'
-
-
--- function g_unichar_get_mirror_char
--- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mirrored_ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_get_mirror_char" g_unichar_get_mirror_char :: 
-    CInt ->                                 -- ch : TBasicType TUniChar
-    CInt ->                                 -- mirrored_ch : TBasicType TUniChar
-    IO CInt
-
-
-unicharGetMirrorChar ::
-    (MonadIO m) =>
-    Char                                    -- ch
-    -> Char                                 -- mirroredCh
-    -> m Bool                               -- result
-unicharGetMirrorChar ch mirroredCh = liftIO $ do
-    let ch' = (fromIntegral . ord) ch
-    let mirroredCh' = (fromIntegral . ord) mirroredCh
-    result <- g_unichar_get_mirror_char ch' mirroredCh'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_digit_value
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_digit_value" g_unichar_digit_value :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO Int32
-
-
-unicharDigitValue ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m Int32                              -- result
-unicharDigitValue c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_digit_value c'
-    return result
-
-
--- function g_unichar_decompose
--- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "a", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_decompose" g_unichar_decompose :: 
-    CInt ->                                 -- ch : TBasicType TUniChar
-    CInt ->                                 -- a : TBasicType TUniChar
-    CInt ->                                 -- b : TBasicType TUniChar
-    IO CInt
-
-
-unicharDecompose ::
-    (MonadIO m) =>
-    Char                                    -- ch
-    -> Char                                 -- a
-    -> Char                                 -- b
-    -> m Bool                               -- result
-unicharDecompose ch a b = liftIO $ do
-    let ch' = (fromIntegral . ord) ch
-    let a' = (fromIntegral . ord) a
-    let b' = (fromIntegral . ord) b
-    result <- g_unichar_decompose ch' a' b'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_compose
--- Args : [Arg {argCName = "a", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_compose" g_unichar_compose :: 
-    CInt ->                                 -- a : TBasicType TUniChar
-    CInt ->                                 -- b : TBasicType TUniChar
-    CInt ->                                 -- ch : TBasicType TUniChar
-    IO CInt
-
-
-unicharCompose ::
-    (MonadIO m) =>
-    Char                                    -- a
-    -> Char                                 -- b
-    -> Char                                 -- ch
-    -> m Bool                               -- result
-unicharCompose a b ch = liftIO $ do
-    let a' = (fromIntegral . ord) a
-    let b' = (fromIntegral . ord) b
-    let ch' = (fromIntegral . ord) ch
-    result <- g_unichar_compose a' b' ch'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_unichar_combining_class
--- Args : [Arg {argCName = "uc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_combining_class" g_unichar_combining_class :: 
-    CInt ->                                 -- uc : TBasicType TUniChar
-    IO Int32
-
-
-unicharCombiningClass ::
-    (MonadIO m) =>
-    Char                                    -- uc
-    -> m Int32                              -- result
-unicharCombiningClass uc = liftIO $ do
-    let uc' = (fromIntegral . ord) uc
-    result <- g_unichar_combining_class uc'
-    return result
-
-
--- function g_unichar_break_type
--- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "UnicodeBreakType"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_unichar_break_type" g_unichar_break_type :: 
-    CInt ->                                 -- c : TBasicType TUniChar
-    IO CUInt
-
-
-unicharBreakType ::
-    (MonadIO m) =>
-    Char                                    -- c
-    -> m UnicodeBreakType                   -- result
-unicharBreakType c = liftIO $ do
-    let c' = (fromIntegral . ord) c
-    result <- g_unichar_break_type c'
-    let result' = (toEnum . fromIntegral) result
-    return result'
-
-
--- function g_timeout_source_new_seconds
--- Args : [Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "Source"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_timeout_source_new_seconds" g_timeout_source_new_seconds :: 
-    Word32 ->                               -- interval : TBasicType TUInt32
-    IO (Ptr Source)
-
-
-timeoutSourceNewSeconds ::
-    (MonadIO m) =>
-    Word32                                  -- interval
-    -> m Source                             -- result
-timeoutSourceNewSeconds interval = liftIO $ do
-    result <- g_timeout_source_new_seconds interval
-    checkUnexpectedReturnNULL "g_timeout_source_new_seconds" result
-    result' <- (wrapBoxed Source) result
-    return result'
-
-
--- function g_timeout_source_new
--- Args : [Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "Source"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_timeout_source_new" g_timeout_source_new :: 
-    Word32 ->                               -- interval : TBasicType TUInt32
-    IO (Ptr Source)
-
-
-timeoutSourceNew ::
-    (MonadIO m) =>
-    Word32                                  -- interval
-    -> m Source                             -- result
-timeoutSourceNew interval = liftIO $ do
-    result <- g_timeout_source_new interval
-    checkUnexpectedReturnNULL "g_timeout_source_new" result
-    result' <- (wrapBoxed Source) result
-    return result'
-
-
--- function g_timeout_add_seconds_full
--- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_timeout_add_seconds_full" g_timeout_add_seconds_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    Word32 ->                               -- interval : TBasicType TUInt32
-    FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-timeoutAddSeconds ::
-    (MonadIO m) =>
-    Int32                                   -- priority
-    -> Word32                               -- interval
-    -> SourceFunc                           -- function
-    -> m Word32                             -- result
-timeoutAddSeconds priority interval function = liftIO $ do
-    function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
-    let data_ = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- g_timeout_add_seconds_full priority interval function' data_ notify
-    return result
-
-
--- function g_timeout_add_full
--- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_timeout_add_full" g_timeout_add_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    Word32 ->                               -- interval : TBasicType TUInt32
-    FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-timeoutAdd ::
-    (MonadIO m) =>
-    Int32                                   -- priority
-    -> Word32                               -- interval
-    -> SourceFunc                           -- function
-    -> m Word32                             -- result
-timeoutAdd priority interval function = liftIO $ do
-    function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
-    let data_ = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- g_timeout_add_full priority interval function' data_ notify
-    return result
-
-
--- function g_test_trap_subprocess
--- Args : [Arg {argCName = "test_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "usec_timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_flags", argType = TInterface "GLib" "TestSubprocessFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_trap_subprocess" g_test_trap_subprocess :: 
-    CString ->                              -- test_path : TBasicType TUTF8
-    Word64 ->                               -- usec_timeout : TBasicType TUInt64
-    CUInt ->                                -- test_flags : TInterface "GLib" "TestSubprocessFlags"
-    IO ()
-
-
-testTrapSubprocess ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- testPath
-    -> Word64                               -- usecTimeout
-    -> [TestSubprocessFlags]                -- testFlags
-    -> m ()                                 -- result
-testTrapSubprocess testPath usecTimeout testFlags = liftIO $ do
-    maybeTestPath <- case testPath of
-        Nothing -> return nullPtr
-        Just jTestPath -> do
-            jTestPath' <- textToCString jTestPath
-            return jTestPath'
-    let testFlags' = gflagsToWord testFlags
-    g_test_trap_subprocess maybeTestPath usecTimeout testFlags'
-    freeMem maybeTestPath
-    return ()
-
-
--- function g_test_trap_reached_timeout
--- Args : []
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_trap_reached_timeout" g_test_trap_reached_timeout :: 
-    IO CInt
-
-
-testTrapReachedTimeout ::
-    (MonadIO m) =>
-    m Bool                                  -- result
-testTrapReachedTimeout  = liftIO $ do
-    result <- g_test_trap_reached_timeout
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_test_trap_has_passed
--- Args : []
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_trap_has_passed" g_test_trap_has_passed :: 
-    IO CInt
-
-
-testTrapHasPassed ::
-    (MonadIO m) =>
-    m Bool                                  -- result
-testTrapHasPassed  = liftIO $ do
-    result <- g_test_trap_has_passed
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_test_trap_fork
--- Args : [Arg {argCName = "usec_timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_trap_flags", argType = TInterface "GLib" "TestTrapFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_trap_fork" g_test_trap_fork :: 
-    Word64 ->                               -- usec_timeout : TBasicType TUInt64
-    CUInt ->                                -- test_trap_flags : TInterface "GLib" "TestTrapFlags"
-    IO CInt
-
-{-# DEPRECATED testTrapFork ["This function is implemented only on Unix platforms,","and is not always reliable due to problems inherent in","fork-without-exec. Use g_test_trap_subprocess() instead."]#-}
-testTrapFork ::
-    (MonadIO m) =>
-    Word64                                  -- usecTimeout
-    -> [TestTrapFlags]                      -- testTrapFlags
-    -> m Bool                               -- result
-testTrapFork usecTimeout testTrapFlags = liftIO $ do
-    let testTrapFlags' = gflagsToWord testTrapFlags
-    result <- g_test_trap_fork usecTimeout testTrapFlags'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_test_trap_assertions
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "assertion_flags", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_trap_assertions" g_test_trap_assertions :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- file : TBasicType TUTF8
-    Int32 ->                                -- line : TBasicType TInt32
-    CString ->                              -- func : TBasicType TUTF8
-    Word64 ->                               -- assertion_flags : TBasicType TUInt64
-    CString ->                              -- pattern : TBasicType TUTF8
-    IO ()
-
-
-testTrapAssertions ::
-    (MonadIO m) =>
-    T.Text                                  -- domain
-    -> T.Text                               -- file
-    -> Int32                                -- line
-    -> T.Text                               -- func
-    -> Word64                               -- assertionFlags
-    -> T.Text                               -- pattern
-    -> m ()                                 -- result
-testTrapAssertions domain file line func assertionFlags pattern = liftIO $ do
-    domain' <- textToCString domain
-    file' <- textToCString file
-    func' <- textToCString func
-    pattern' <- textToCString pattern
-    g_test_trap_assertions domain' file' line func' assertionFlags pattern'
-    freeMem domain'
-    freeMem file'
-    freeMem func'
-    freeMem pattern'
-    return ()
-
-
--- function g_test_timer_start
--- Args : []
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_timer_start" g_test_timer_start :: 
-    IO ()
-
-
-testTimerStart ::
-    (MonadIO m) =>
-    m ()                                    -- result
-testTimerStart  = liftIO $ do
-    g_test_timer_start
-    return ()
-
-
--- function g_test_timer_last
--- Args : []
--- Lengths : []
--- returnType : TBasicType TDouble
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_timer_last" g_test_timer_last :: 
-    IO CDouble
-
-
-testTimerLast ::
-    (MonadIO m) =>
-    m Double                                -- result
-testTimerLast  = liftIO $ do
-    result <- g_test_timer_last
-    let result' = realToFrac result
-    return result'
-
-
--- function g_test_timer_elapsed
--- Args : []
--- Lengths : []
--- returnType : TBasicType TDouble
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_timer_elapsed" g_test_timer_elapsed :: 
-    IO CDouble
-
-
-testTimerElapsed ::
-    (MonadIO m) =>
-    m Double                                -- result
-testTimerElapsed  = liftIO $ do
-    result <- g_test_timer_elapsed
-    let result' = realToFrac result
-    return result'
-
-
--- function g_test_subprocess
--- Args : []
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_subprocess" g_test_subprocess :: 
-    IO CInt
-
-
-testSubprocess ::
-    (MonadIO m) =>
-    m Bool                                  -- result
-testSubprocess  = liftIO $ do
-    result <- g_test_subprocess
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_test_skip
--- Args : [Arg {argCName = "msg", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_skip" g_test_skip :: 
-    CString ->                              -- msg : TBasicType TUTF8
-    IO ()
-
-
-testSkip ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- msg
-    -> m ()                                 -- result
-testSkip msg = liftIO $ do
-    maybeMsg <- case msg of
-        Nothing -> return nullPtr
-        Just jMsg -> do
-            jMsg' <- textToCString jMsg
-            return jMsg'
-    g_test_skip maybeMsg
-    freeMem maybeMsg
-    return ()
-
-
--- function g_test_set_nonfatal_assertions
--- Args : []
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_set_nonfatal_assertions" g_test_set_nonfatal_assertions :: 
-    IO ()
-
-
-testSetNonfatalAssertions ::
-    (MonadIO m) =>
-    m ()                                    -- result
-testSetNonfatalAssertions  = liftIO $ do
-    g_test_set_nonfatal_assertions
-    return ()
-
-
--- function g_test_run_suite
--- Args : [Arg {argCName = "suite", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_run_suite" g_test_run_suite :: 
-    Ptr TestSuite ->                        -- suite : TInterface "GLib" "TestSuite"
-    IO Int32
-
-
-testRunSuite ::
-    (MonadIO m) =>
-    TestSuite                               -- suite
-    -> m Int32                              -- result
-testRunSuite suite = liftIO $ do
-    let suite' = unsafeManagedPtrGetPtr suite
-    result <- g_test_run_suite suite'
-    touchManagedPtr suite
-    return result
-
-
--- function g_test_run
--- Args : []
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_run" g_test_run :: 
-    IO Int32
-
-
-testRun ::
-    (MonadIO m) =>
-    m Int32                                 -- result
-testRun  = liftIO $ do
-    result <- g_test_run
-    return result
-
-
--- function g_test_rand_int_range
--- Args : [Arg {argCName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_rand_int_range" g_test_rand_int_range :: 
-    Int32 ->                                -- begin : TBasicType TInt32
-    Int32 ->                                -- end : TBasicType TInt32
-    IO Int32
-
-
-testRandIntRange ::
-    (MonadIO m) =>
-    Int32                                   -- begin
-    -> Int32                                -- end
-    -> m Int32                              -- result
-testRandIntRange begin end = liftIO $ do
-    result <- g_test_rand_int_range begin end
-    return result
-
-
--- function g_test_rand_int
--- Args : []
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_rand_int" g_test_rand_int :: 
-    IO Int32
-
-
-testRandInt ::
-    (MonadIO m) =>
-    m Int32                                 -- result
-testRandInt  = liftIO $ do
-    result <- g_test_rand_int
-    return result
-
-
--- function g_test_rand_double_range
--- Args : [Arg {argCName = "range_start", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "range_end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TDouble
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_rand_double_range" g_test_rand_double_range :: 
-    CDouble ->                              -- range_start : TBasicType TDouble
-    CDouble ->                              -- range_end : TBasicType TDouble
-    IO CDouble
-
-
-testRandDoubleRange ::
-    (MonadIO m) =>
-    Double                                  -- rangeStart
-    -> Double                               -- rangeEnd
-    -> m Double                             -- result
-testRandDoubleRange rangeStart rangeEnd = liftIO $ do
-    let rangeStart' = realToFrac rangeStart
-    let rangeEnd' = realToFrac rangeEnd
-    result <- g_test_rand_double_range rangeStart' rangeEnd'
-    let result' = realToFrac result
-    return result'
-
-
--- function g_test_rand_double
--- Args : []
--- Lengths : []
--- returnType : TBasicType TDouble
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_rand_double" g_test_rand_double :: 
-    IO CDouble
-
-
-testRandDouble ::
-    (MonadIO m) =>
-    m Double                                -- result
-testRandDouble  = liftIO $ do
-    result <- g_test_rand_double
-    let result' = realToFrac result
-    return result'
-
-
--- function g_test_queue_free
--- Args : [Arg {argCName = "gfree_pointer", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_queue_free" g_test_queue_free :: 
-    Ptr () ->                               -- gfree_pointer : TBasicType TVoid
-    IO ()
-
-
-testQueueFree ::
-    (MonadIO m) =>
-    Ptr ()                                  -- gfreePointer
-    -> m ()                                 -- result
-testQueueFree gfreePointer = liftIO $ do
-    g_test_queue_free gfreePointer
-    return ()
-
-
--- function g_test_queue_destroy
--- Args : [Arg {argCName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_queue_destroy" g_test_queue_destroy :: 
-    FunPtr DestroyNotifyC ->                -- destroy_func : TInterface "GLib" "DestroyNotify"
-    Ptr () ->                               -- destroy_data : TBasicType TVoid
-    IO ()
-
-
-testQueueDestroy ::
-    (MonadIO m) =>
-    DestroyNotify                           -- destroyFunc
-    -> Ptr ()                               -- destroyData
-    -> m ()                                 -- result
-testQueueDestroy destroyFunc destroyData = liftIO $ do
-    ptrdestroyFunc <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
-    destroyFunc' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroyFunc) destroyFunc)
-    poke ptrdestroyFunc destroyFunc'
-    g_test_queue_destroy destroyFunc' destroyData
-    return ()
-
-
--- function g_test_log_type_name
--- Args : [Arg {argCName = "log_type", argType = TInterface "GLib" "TestLogType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_log_type_name" g_test_log_type_name :: 
-    CUInt ->                                -- log_type : TInterface "GLib" "TestLogType"
-    IO CString
-
-
-testLogTypeName ::
-    (MonadIO m) =>
-    TestLogType                             -- logType
-    -> m T.Text                             -- result
-testLogTypeName logType = liftIO $ do
-    let logType' = (fromIntegral . fromEnum) logType
-    result <- g_test_log_type_name logType'
-    checkUnexpectedReturnNULL "g_test_log_type_name" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_test_incomplete
--- Args : [Arg {argCName = "msg", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_incomplete" g_test_incomplete :: 
-    CString ->                              -- msg : TBasicType TUTF8
-    IO ()
-
-
-testIncomplete ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- msg
-    -> m ()                                 -- result
-testIncomplete msg = liftIO $ do
-    maybeMsg <- case msg of
-        Nothing -> return nullPtr
-        Just jMsg -> do
-            jMsg' <- textToCString jMsg
-            return jMsg'
-    g_test_incomplete maybeMsg
-    freeMem maybeMsg
-    return ()
-
-
--- function g_test_get_dir
--- Args : [Arg {argCName = "file_type", argType = TInterface "GLib" "TestFileType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_get_dir" g_test_get_dir :: 
-    CUInt ->                                -- file_type : TInterface "GLib" "TestFileType"
-    IO CString
-
-
-testGetDir ::
-    (MonadIO m) =>
-    TestFileType                            -- fileType
-    -> m T.Text                             -- result
-testGetDir fileType = liftIO $ do
-    let fileType' = (fromIntegral . fromEnum) fileType
-    result <- g_test_get_dir fileType'
-    checkUnexpectedReturnNULL "g_test_get_dir" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_test_failed
--- Args : []
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_failed" g_test_failed :: 
-    IO CInt
-
-
-testFailed ::
-    (MonadIO m) =>
-    m Bool                                  -- result
-testFailed  = liftIO $ do
-    result <- g_test_failed
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_test_fail
--- Args : []
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_fail" g_test_fail :: 
-    IO ()
-
-
-testFail ::
-    (MonadIO m) =>
-    m ()                                    -- result
-testFail  = liftIO $ do
-    g_test_fail
-    return ()
-
-
--- function g_test_expect_message
--- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_level", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_expect_message" g_test_expect_message :: 
-    CString ->                              -- log_domain : TBasicType TUTF8
-    CUInt ->                                -- log_level : TInterface "GLib" "LogLevelFlags"
-    CString ->                              -- pattern : TBasicType TUTF8
-    IO ()
-
-
-testExpectMessage ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- logDomain
-    -> [LogLevelFlags]                      -- logLevel
-    -> T.Text                               -- pattern
-    -> m ()                                 -- result
-testExpectMessage logDomain logLevel pattern = liftIO $ do
-    maybeLogDomain <- case logDomain of
-        Nothing -> return nullPtr
-        Just jLogDomain -> do
-            jLogDomain' <- textToCString jLogDomain
-            return jLogDomain'
-    let logLevel' = gflagsToWord logLevel
-    pattern' <- textToCString pattern
-    g_test_expect_message maybeLogDomain logLevel' pattern'
-    freeMem maybeLogDomain
-    freeMem pattern'
-    return ()
-
-
--- function g_test_bug_base
--- Args : [Arg {argCName = "uri_pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_bug_base" g_test_bug_base :: 
-    CString ->                              -- uri_pattern : TBasicType TUTF8
-    IO ()
-
-
-testBugBase ::
-    (MonadIO m) =>
-    T.Text                                  -- uriPattern
-    -> m ()                                 -- result
-testBugBase uriPattern = liftIO $ do
-    uriPattern' <- textToCString uriPattern
-    g_test_bug_base uriPattern'
-    freeMem uriPattern'
-    return ()
-
-
--- function g_test_bug
--- Args : [Arg {argCName = "bug_uri_snippet", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_bug" g_test_bug :: 
-    CString ->                              -- bug_uri_snippet : TBasicType TUTF8
-    IO ()
-
-
-testBug ::
-    (MonadIO m) =>
-    T.Text                                  -- bugUriSnippet
-    -> m ()                                 -- result
-testBug bugUriSnippet = liftIO $ do
-    bugUriSnippet' <- textToCString bugUriSnippet
-    g_test_bug bugUriSnippet'
-    freeMem bugUriSnippet'
-    return ()
-
-
--- function g_test_assert_expected_messages_internal
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_assert_expected_messages_internal" g_test_assert_expected_messages_internal :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- file : TBasicType TUTF8
-    Int32 ->                                -- line : TBasicType TInt32
-    CString ->                              -- func : TBasicType TUTF8
-    IO ()
-
-
-testAssertExpectedMessagesInternal ::
-    (MonadIO m) =>
-    T.Text                                  -- domain
-    -> T.Text                               -- file
-    -> Int32                                -- line
-    -> T.Text                               -- func
-    -> m ()                                 -- result
-testAssertExpectedMessagesInternal domain file line func = liftIO $ do
-    domain' <- textToCString domain
-    file' <- textToCString file
-    func' <- textToCString func
-    g_test_assert_expected_messages_internal domain' file' line func'
-    freeMem domain'
-    freeMem file'
-    freeMem func'
-    return ()
-
-
--- function g_test_add_func
--- Args : [Arg {argCName = "testpath", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_func", argType = TInterface "GLib" "TestFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_add_func" g_test_add_func :: 
-    CString ->                              -- testpath : TBasicType TUTF8
-    FunPtr TestFuncC ->                     -- test_func : TInterface "GLib" "TestFunc"
-    IO ()
-
-
-testAddFunc ::
-    (MonadIO m) =>
-    T.Text                                  -- testpath
-    -> TestFunc                             -- testFunc
-    -> m ()                                 -- result
-testAddFunc testpath testFunc = liftIO $ do
-    testpath' <- textToCString testpath
-    ptrtestFunc <- callocMem :: IO (Ptr (FunPtr TestFuncC))
-    testFunc' <- mkTestFunc (testFuncWrapper (Just ptrtestFunc) testFunc)
-    poke ptrtestFunc testFunc'
-    g_test_add_func testpath' testFunc'
-    freeMem testpath'
-    return ()
-
-
--- function g_test_add_data_func
--- Args : [Arg {argCName = "testpath", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_func", argType = TInterface "GLib" "TestDataFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_test_add_data_func" g_test_add_data_func :: 
-    CString ->                              -- testpath : TBasicType TUTF8
-    Ptr () ->                               -- test_data : TBasicType TVoid
-    FunPtr TestDataFuncC ->                 -- test_func : TInterface "GLib" "TestDataFunc"
-    IO ()
-
-
-testAddDataFunc ::
-    (MonadIO m) =>
-    T.Text                                  -- testpath
-    -> Ptr ()                               -- testData
-    -> TestDataFunc                         -- testFunc
-    -> m ()                                 -- result
-testAddDataFunc testpath testData testFunc = liftIO $ do
-    testpath' <- textToCString testpath
-    ptrtestFunc <- callocMem :: IO (Ptr (FunPtr TestDataFuncC))
-    testFunc' <- mkTestDataFunc (testDataFuncWrapper (Just ptrtestFunc) testFunc)
-    poke ptrtestFunc testFunc'
-    g_test_add_data_func testpath' testData testFunc'
-    freeMem testpath'
-    return ()
-
-
--- function g_strv_length
--- Args : [Arg {argCName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strv_length" g_strv_length :: 
-    CString ->                              -- str_array : TBasicType TUTF8
-    IO Word32
-
-
-strvLength ::
-    (MonadIO m) =>
-    T.Text                                  -- strArray
-    -> m Word32                             -- result
-strvLength strArray = liftIO $ do
-    strArray' <- textToCString strArray
-    result <- g_strv_length strArray'
-    freeMem strArray'
-    return result
-
-
--- function g_strv_get_type
--- Args : []
--- Lengths : []
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strv_get_type" g_strv_get_type :: 
-    IO CGType
-
-
-strvGetType ::
-    (MonadIO m) =>
-    m GType                                 -- result
-strvGetType  = liftIO $ do
-    result <- g_strv_get_type
-    let result' = GType result
-    return result'
-
-
--- function g_strv_contains
--- Args : [Arg {argCName = "strv", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strv_contains" g_strv_contains :: 
-    CString ->                              -- strv : TBasicType TUTF8
-    CString ->                              -- str : TBasicType TUTF8
-    IO CInt
-
-
-strvContains ::
-    (MonadIO m) =>
-    T.Text                                  -- strv
-    -> T.Text                               -- str
-    -> m Bool                               -- result
-strvContains strv str = liftIO $ do
-    strv' <- textToCString strv
-    str' <- textToCString str
-    result <- g_strv_contains strv' str'
-    let result' = (/= 0) result
-    freeMem strv'
-    freeMem str'
-    return result'
-
-
--- function g_strup
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strup" g_strup :: 
-    CString ->                              -- string : TBasicType TUTF8
-    IO CString
-
-{-# DEPRECATED strup ["(Since version 2.2)","This function is totally broken for the reasons","    discussed in the g_strncasecmp() docs - use g_ascii_strup()","    or g_utf8_strup() instead."]#-}
-strup ::
-    (MonadIO m) =>
-    T.Text                                  -- string
-    -> m T.Text                             -- result
-strup string = liftIO $ do
-    string' <- textToCString string
-    result <- g_strup string'
-    checkUnexpectedReturnNULL "g_strup" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    return result'
-
-
--- function g_strtod
--- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TDouble
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strtod" g_strtod :: 
-    CString ->                              -- nptr : TBasicType TUTF8
-    CString ->                              -- endptr : TBasicType TUTF8
-    IO CDouble
-
-
-strtod ::
-    (MonadIO m) =>
-    T.Text                                  -- nptr
-    -> T.Text                               -- endptr
-    -> m Double                             -- result
-strtod nptr endptr = liftIO $ do
-    nptr' <- textToCString nptr
-    endptr' <- textToCString endptr
-    result <- g_strtod nptr' endptr'
-    let result' = realToFrac result
-    freeMem nptr'
-    freeMem endptr'
-    return result'
-
-
--- function g_strstr_len
--- Args : [Arg {argCName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "haystack_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strstr_len" g_strstr_len :: 
-    CString ->                              -- haystack : TBasicType TUTF8
-    Int64 ->                                -- haystack_len : TBasicType TInt64
-    CString ->                              -- needle : TBasicType TUTF8
-    IO CString
-
-
-strstrLen ::
-    (MonadIO m) =>
-    T.Text                                  -- haystack
-    -> Int64                                -- haystackLen
-    -> T.Text                               -- needle
-    -> m T.Text                             -- result
-strstrLen haystack haystackLen needle = liftIO $ do
-    haystack' <- textToCString haystack
-    needle' <- textToCString needle
-    result <- g_strstr_len haystack' haystackLen needle'
-    checkUnexpectedReturnNULL "g_strstr_len" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem haystack'
-    freeMem needle'
-    return result'
-
-
--- function g_strsignal
--- Args : [Arg {argCName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strsignal" g_strsignal :: 
-    Int32 ->                                -- signum : TBasicType TInt32
-    IO CString
-
-
-strsignal ::
-    (MonadIO m) =>
-    Int32                                   -- signum
-    -> m T.Text                             -- result
-strsignal signum = liftIO $ do
-    result <- g_strsignal signum
-    checkUnexpectedReturnNULL "g_strsignal" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_strrstr_len
--- Args : [Arg {argCName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "haystack_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strrstr_len" g_strrstr_len :: 
-    CString ->                              -- haystack : TBasicType TUTF8
-    Int64 ->                                -- haystack_len : TBasicType TInt64
-    CString ->                              -- needle : TBasicType TUTF8
-    IO CString
-
-
-strrstrLen ::
-    (MonadIO m) =>
-    T.Text                                  -- haystack
-    -> Int64                                -- haystackLen
-    -> T.Text                               -- needle
-    -> m T.Text                             -- result
-strrstrLen haystack haystackLen needle = liftIO $ do
-    haystack' <- textToCString haystack
-    needle' <- textToCString needle
-    result <- g_strrstr_len haystack' haystackLen needle'
-    checkUnexpectedReturnNULL "g_strrstr_len" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem haystack'
-    freeMem needle'
-    return result'
-
-
--- function g_strrstr
--- Args : [Arg {argCName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strrstr" g_strrstr :: 
-    CString ->                              -- haystack : TBasicType TUTF8
-    CString ->                              -- needle : TBasicType TUTF8
-    IO CString
-
-
-strrstr ::
-    (MonadIO m) =>
-    T.Text                                  -- haystack
-    -> T.Text                               -- needle
-    -> m T.Text                             -- result
-strrstr haystack needle = liftIO $ do
-    haystack' <- textToCString haystack
-    needle' <- textToCString needle
-    result <- g_strrstr haystack' needle'
-    checkUnexpectedReturnNULL "g_strrstr" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem haystack'
-    freeMem needle'
-    return result'
-
-
--- function g_strreverse
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strreverse" g_strreverse :: 
-    CString ->                              -- string : TBasicType TUTF8
-    IO CString
-
-
-strreverse ::
-    (MonadIO m) =>
-    T.Text                                  -- string
-    -> m T.Text                             -- result
-strreverse string = liftIO $ do
-    string' <- textToCString string
-    result <- g_strreverse string'
-    checkUnexpectedReturnNULL "g_strreverse" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    return result'
-
-
--- function g_strnfill
--- Args : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fill_char", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strnfill" g_strnfill :: 
-    Word64 ->                               -- length : TBasicType TUInt64
-    Int8 ->                                 -- fill_char : TBasicType TInt8
-    IO CString
-
-
-strnfill ::
-    (MonadIO m) =>
-    Word64                                  -- length_
-    -> Int8                                 -- fillChar
-    -> m T.Text                             -- result
-strnfill length_ fillChar = liftIO $ do
-    result <- g_strnfill length_ fillChar
-    checkUnexpectedReturnNULL "g_strnfill" result
-    result' <- cstringToText result
-    freeMem result
-    return result'
-
-
--- function g_strndup
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strndup" g_strndup :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Word64 ->                               -- n : TBasicType TUInt64
-    IO CString
-
-
-strndup ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Word64                               -- n
-    -> m T.Text                             -- result
-strndup str n = liftIO $ do
-    str' <- textToCString str
-    result <- g_strndup str' n
-    checkUnexpectedReturnNULL "g_strndup" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_strncasecmp
--- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strncasecmp" g_strncasecmp :: 
-    CString ->                              -- s1 : TBasicType TUTF8
-    CString ->                              -- s2 : TBasicType TUTF8
-    Word32 ->                               -- n : TBasicType TUInt32
-    IO Int32
-
-{-# DEPRECATED strncasecmp ["(Since version 2.2)","The problem with g_strncasecmp() is that it does","    the comparison by calling toupper()/tolower(). These functions","    are locale-specific and operate on single bytes. However, it is","    impossible to handle things correctly from an internationalization","    standpoint by operating on bytes, since characters may be multibyte.","    Thus g_strncasecmp() is broken if your string is guaranteed to be","    ASCII, since it is locale-sensitive, and it's broken if your string","    is localized, since it doesn't work on many encodings at all,","    including UTF-8, EUC-JP, etc.","","    There are therefore two replacement techniques: g_ascii_strncasecmp(),","    which only works on ASCII and is not locale-sensitive, and","    g_utf8_casefold() followed by strcmp() on the resulting strings,","    which is good for case-insensitive sorting of UTF-8."]#-}
-strncasecmp ::
-    (MonadIO m) =>
-    T.Text                                  -- s1
-    -> T.Text                               -- s2
-    -> Word32                               -- n
-    -> m Int32                              -- result
-strncasecmp s1 s2 n = liftIO $ do
-    s1' <- textToCString s1
-    s2' <- textToCString s2
-    result <- g_strncasecmp s1' s2' n
-    freeMem s1'
-    freeMem s2'
-    return result
-
-
--- function g_strlcpy
--- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strlcpy" g_strlcpy :: 
-    CString ->                              -- dest : TBasicType TUTF8
-    CString ->                              -- src : TBasicType TUTF8
-    Word64 ->                               -- dest_size : TBasicType TUInt64
-    IO Word64
-
-
-strlcpy ::
-    (MonadIO m) =>
-    T.Text                                  -- dest
-    -> T.Text                               -- src
-    -> Word64                               -- destSize
-    -> m Word64                             -- result
-strlcpy dest src destSize = liftIO $ do
-    dest' <- textToCString dest
-    src' <- textToCString src
-    result <- g_strlcpy dest' src' destSize
-    freeMem dest'
-    freeMem src'
-    return result
-
-
--- function g_strlcat
--- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strlcat" g_strlcat :: 
-    CString ->                              -- dest : TBasicType TUTF8
-    CString ->                              -- src : TBasicType TUTF8
-    Word64 ->                               -- dest_size : TBasicType TUInt64
-    IO Word64
-
-
-strlcat ::
-    (MonadIO m) =>
-    T.Text                                  -- dest
-    -> T.Text                               -- src
-    -> Word64                               -- destSize
-    -> m Word64                             -- result
-strlcat dest src destSize = liftIO $ do
-    dest' <- textToCString dest
-    src' <- textToCString src
-    result <- g_strlcat dest' src' destSize
-    freeMem dest'
-    freeMem src'
-    return result
-
-
--- function g_strjoinv
--- Args : [Arg {argCName = "separator", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strjoinv" g_strjoinv :: 
-    CString ->                              -- separator : TBasicType TUTF8
-    CString ->                              -- str_array : TBasicType TUTF8
-    IO CString
-
-
-strjoinv ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- separator
-    -> T.Text                               -- strArray
-    -> m T.Text                             -- result
-strjoinv separator strArray = liftIO $ do
-    maybeSeparator <- case separator of
-        Nothing -> return nullPtr
-        Just jSeparator -> do
-            jSeparator' <- textToCString jSeparator
-            return jSeparator'
-    strArray' <- textToCString strArray
-    result <- g_strjoinv maybeSeparator strArray'
-    checkUnexpectedReturnNULL "g_strjoinv" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem maybeSeparator
-    freeMem strArray'
-    return result'
-
-
--- function g_strip_context
--- Args : [Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgval", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strip_context" g_strip_context :: 
-    CString ->                              -- msgid : TBasicType TUTF8
-    CString ->                              -- msgval : TBasicType TUTF8
-    IO CString
-
-
-stripContext ::
-    (MonadIO m) =>
-    T.Text                                  -- msgid
-    -> T.Text                               -- msgval
-    -> m T.Text                             -- result
-stripContext msgid msgval = liftIO $ do
-    msgid' <- textToCString msgid
-    msgval' <- textToCString msgval
-    result <- g_strip_context msgid' msgval'
-    checkUnexpectedReturnNULL "g_strip_context" result
-    result' <- cstringToText result
-    freeMem msgid'
-    freeMem msgval'
-    return result'
-
-
--- function g_string_sized_new
--- Args : [Arg {argCName = "dfl_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "String"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_string_sized_new" g_string_sized_new :: 
-    Word64 ->                               -- dfl_size : TBasicType TUInt64
-    IO (Ptr String)
-
-
-stringSizedNew ::
-    (MonadIO m) =>
-    Word64                                  -- dflSize
-    -> m String                             -- result
-stringSizedNew dflSize = liftIO $ do
-    result <- g_string_sized_new dflSize
-    checkUnexpectedReturnNULL "g_string_sized_new" result
-    result' <- (wrapBoxed String) result
-    return result'
-
-
--- function g_string_new_len
--- Args : [Arg {argCName = "init", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "String"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_string_new_len" g_string_new_len :: 
-    CString ->                              -- init : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    IO (Ptr String)
-
-
-stringNewLen ::
-    (MonadIO m) =>
-    T.Text                                  -- init
-    -> Int64                                -- len
-    -> m String                             -- result
-stringNewLen init len = liftIO $ do
-    init' <- textToCString init
-    result <- g_string_new_len init' len
-    checkUnexpectedReturnNULL "g_string_new_len" result
-    result' <- (wrapBoxed String) result
-    freeMem init'
-    return result'
-
-
--- function g_string_new
--- Args : [Arg {argCName = "init", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "String"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_string_new" g_string_new :: 
-    CString ->                              -- init : TBasicType TUTF8
-    IO (Ptr String)
-
-
-stringNew ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- init
-    -> m String                             -- result
-stringNew init = liftIO $ do
-    maybeInit <- case init of
-        Nothing -> return nullPtr
-        Just jInit -> do
-            jInit' <- textToCString jInit
-            return jInit'
-    result <- g_string_new maybeInit
-    checkUnexpectedReturnNULL "g_string_new" result
-    result' <- (wrapBoxed String) result
-    freeMem maybeInit
-    return result'
-
-
--- function g_strfreev
--- Args : [Arg {argCName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strfreev" g_strfreev :: 
-    CString ->                              -- str_array : TBasicType TUTF8
-    IO ()
-
-
-strfreev ::
-    (MonadIO m) =>
-    T.Text                                  -- strArray
-    -> m ()                                 -- result
-strfreev strArray = liftIO $ do
-    strArray' <- textToCString strArray
-    g_strfreev strArray'
-    freeMem strArray'
-    return ()
-
-
--- function g_strescape
--- Args : [Arg {argCName = "source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exceptions", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strescape" g_strescape :: 
-    CString ->                              -- source : TBasicType TUTF8
-    CString ->                              -- exceptions : TBasicType TUTF8
-    IO CString
-
-
-strescape ::
-    (MonadIO m) =>
-    T.Text                                  -- source
-    -> T.Text                               -- exceptions
-    -> m T.Text                             -- result
-strescape source exceptions = liftIO $ do
-    source' <- textToCString source
-    exceptions' <- textToCString exceptions
-    result <- g_strescape source' exceptions'
-    checkUnexpectedReturnNULL "g_strescape" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem source'
-    freeMem exceptions'
-    return result'
-
-
--- function g_strerror
--- Args : [Arg {argCName = "errnum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strerror" g_strerror :: 
-    Int32 ->                                -- errnum : TBasicType TInt32
-    IO CString
-
-
-strerror ::
-    (MonadIO m) =>
-    Int32                                   -- errnum
-    -> m T.Text                             -- result
-strerror errnum = liftIO $ do
-    result <- g_strerror errnum
-    checkUnexpectedReturnNULL "g_strerror" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_strdup
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strdup" g_strdup :: 
-    CString ->                              -- str : TBasicType TUTF8
-    IO CString
-
-
-strdup ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> m T.Text                             -- result
-strdup str = liftIO $ do
-    str' <- textToCString str
-    result <- g_strdup str'
-    checkUnexpectedReturnNULL "g_strdup" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_strdown
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strdown" g_strdown :: 
-    CString ->                              -- string : TBasicType TUTF8
-    IO CString
-
-{-# DEPRECATED strdown ["(Since version 2.2)","This function is totally broken for the reasons discussed","in the g_strncasecmp() docs - use g_ascii_strdown() or g_utf8_strdown()","instead."]#-}
-strdown ::
-    (MonadIO m) =>
-    T.Text                                  -- string
-    -> m T.Text                             -- result
-strdown string = liftIO $ do
-    string' <- textToCString string
-    result <- g_strdown string'
-    checkUnexpectedReturnNULL "g_strdown" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    return result'
-
-
--- function g_strdelimit
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "delimiters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_delimiter", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strdelimit" g_strdelimit :: 
-    CString ->                              -- string : TBasicType TUTF8
-    CString ->                              -- delimiters : TBasicType TUTF8
-    Int8 ->                                 -- new_delimiter : TBasicType TInt8
-    IO CString
-
-
-strdelimit ::
-    (MonadIO m) =>
-    T.Text                                  -- string
-    -> Maybe (T.Text)                       -- delimiters
-    -> Int8                                 -- newDelimiter
-    -> m T.Text                             -- result
-strdelimit string delimiters newDelimiter = liftIO $ do
-    string' <- textToCString string
-    maybeDelimiters <- case delimiters of
-        Nothing -> return nullPtr
-        Just jDelimiters -> do
-            jDelimiters' <- textToCString jDelimiters
-            return jDelimiters'
-    result <- g_strdelimit string' maybeDelimiters newDelimiter
-    checkUnexpectedReturnNULL "g_strdelimit" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    freeMem maybeDelimiters
-    return result'
-
-
--- function g_strcompress
--- Args : [Arg {argCName = "source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strcompress" g_strcompress :: 
-    CString ->                              -- source : TBasicType TUTF8
-    IO CString
-
-
-strcompress ::
-    (MonadIO m) =>
-    T.Text                                  -- source
-    -> m T.Text                             -- result
-strcompress source = liftIO $ do
-    source' <- textToCString source
-    result <- g_strcompress source'
-    checkUnexpectedReturnNULL "g_strcompress" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem source'
-    return result'
-
-
--- function g_strcmp0
--- Args : [Arg {argCName = "str1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strcmp0" g_strcmp0 :: 
-    CString ->                              -- str1 : TBasicType TUTF8
-    CString ->                              -- str2 : TBasicType TUTF8
-    IO Int32
-
-
-strcmp0 ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- str1
-    -> Maybe (T.Text)                       -- str2
-    -> m Int32                              -- result
-strcmp0 str1 str2 = liftIO $ do
-    maybeStr1 <- case str1 of
-        Nothing -> return nullPtr
-        Just jStr1 -> do
-            jStr1' <- textToCString jStr1
-            return jStr1'
-    maybeStr2 <- case str2 of
-        Nothing -> return nullPtr
-        Just jStr2 -> do
-            jStr2' <- textToCString jStr2
-            return jStr2'
-    result <- g_strcmp0 maybeStr1 maybeStr2
-    freeMem maybeStr1
-    freeMem maybeStr2
-    return result
-
-
--- function g_strchug
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strchug" g_strchug :: 
-    CString ->                              -- string : TBasicType TUTF8
-    IO CString
-
-
-strchug ::
-    (MonadIO m) =>
-    T.Text                                  -- string
-    -> m T.Text                             -- result
-strchug string = liftIO $ do
-    string' <- textToCString string
-    result <- g_strchug string'
-    checkUnexpectedReturnNULL "g_strchug" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    return result'
-
-
--- function g_strchomp
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strchomp" g_strchomp :: 
-    CString ->                              -- string : TBasicType TUTF8
-    IO CString
-
-
-strchomp ::
-    (MonadIO m) =>
-    T.Text                                  -- string
-    -> m T.Text                             -- result
-strchomp string = liftIO $ do
-    string' <- textToCString string
-    result <- g_strchomp string'
-    checkUnexpectedReturnNULL "g_strchomp" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    return result'
-
-
--- function g_strcasecmp
--- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strcasecmp" g_strcasecmp :: 
-    CString ->                              -- s1 : TBasicType TUTF8
-    CString ->                              -- s2 : TBasicType TUTF8
-    IO Int32
-
-{-# DEPRECATED strcasecmp ["(Since version 2.2)","See g_strncasecmp() for a discussion of why this","    function is deprecated and how to replace it."]#-}
-strcasecmp ::
-    (MonadIO m) =>
-    T.Text                                  -- s1
-    -> T.Text                               -- s2
-    -> m Int32                              -- result
-strcasecmp s1 s2 = liftIO $ do
-    s1' <- textToCString s1
-    s2' <- textToCString s2
-    result <- g_strcasecmp s1' s2'
-    freeMem s1'
-    freeMem s2'
-    return result
-
-
--- function g_strcanon
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "valid_chars", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "substitutor", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_strcanon" g_strcanon :: 
-    CString ->                              -- string : TBasicType TUTF8
-    CString ->                              -- valid_chars : TBasicType TUTF8
-    Int8 ->                                 -- substitutor : TBasicType TInt8
-    IO CString
-
-
-strcanon ::
-    (MonadIO m) =>
-    T.Text                                  -- string
-    -> T.Text                               -- validChars
-    -> Int8                                 -- substitutor
-    -> m T.Text                             -- result
-strcanon string validChars substitutor = liftIO $ do
-    string' <- textToCString string
-    validChars' <- textToCString validChars
-    result <- g_strcanon string' validChars' substitutor
-    checkUnexpectedReturnNULL "g_strcanon" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    freeMem validChars'
-    return result'
-
-
--- function g_str_tokenize_and_fold
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "translit_locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ascii_alternates", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_str_tokenize_and_fold" g_str_tokenize_and_fold :: 
-    CString ->                              -- string : TBasicType TUTF8
-    CString ->                              -- translit_locale : TBasicType TUTF8
-    Ptr (Ptr CString) ->                    -- ascii_alternates : TCArray True (-1) (-1) (TBasicType TUTF8)
-    IO (Ptr CString)
-
-
-strTokenizeAndFold ::
-    (MonadIO m) =>
-    T.Text                                  -- string
-    -> Maybe (T.Text)                       -- translitLocale
-    -> m ([T.Text],[T.Text])                -- result
-strTokenizeAndFold string translitLocale = liftIO $ do
-    string' <- textToCString string
-    maybeTranslitLocale <- case translitLocale of
-        Nothing -> return nullPtr
-        Just jTranslitLocale -> do
-            jTranslitLocale' <- textToCString jTranslitLocale
-            return jTranslitLocale'
-    asciiAlternates <- allocMem :: IO (Ptr (Ptr CString))
-    result <- g_str_tokenize_and_fold string' maybeTranslitLocale asciiAlternates
-    checkUnexpectedReturnNULL "g_str_tokenize_and_fold" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    asciiAlternates' <- peek asciiAlternates
-    asciiAlternates'' <- unpackZeroTerminatedUTF8CArray asciiAlternates'
-    mapZeroTerminatedCArray freeMem asciiAlternates'
-    freeMem asciiAlternates'
-    freeMem string'
-    freeMem maybeTranslitLocale
-    freeMem asciiAlternates
-    return (result', asciiAlternates'')
-
-
--- function g_str_to_ascii
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_str_to_ascii" g_str_to_ascii :: 
-    CString ->                              -- str : TBasicType TUTF8
-    CString ->                              -- from_locale : TBasicType TUTF8
-    IO CString
-
-
-strToAscii ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Maybe (T.Text)                       -- fromLocale
-    -> m T.Text                             -- result
-strToAscii str fromLocale = liftIO $ do
-    str' <- textToCString str
-    maybeFromLocale <- case fromLocale of
-        Nothing -> return nullPtr
-        Just jFromLocale -> do
-            jFromLocale' <- textToCString jFromLocale
-            return jFromLocale'
-    result <- g_str_to_ascii str' maybeFromLocale
-    checkUnexpectedReturnNULL "g_str_to_ascii" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    freeMem maybeFromLocale
-    return result'
-
-
--- function g_str_match_string
--- Args : [Arg {argCName = "search_term", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "potential_hit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accept_alternates", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_str_match_string" g_str_match_string :: 
-    CString ->                              -- search_term : TBasicType TUTF8
-    CString ->                              -- potential_hit : TBasicType TUTF8
-    CInt ->                                 -- accept_alternates : TBasicType TBoolean
-    IO CInt
-
-
-strMatchString ::
-    (MonadIO m) =>
-    T.Text                                  -- searchTerm
-    -> T.Text                               -- potentialHit
-    -> Bool                                 -- acceptAlternates
-    -> m Bool                               -- result
-strMatchString searchTerm potentialHit acceptAlternates = liftIO $ do
-    searchTerm' <- textToCString searchTerm
-    potentialHit' <- textToCString potentialHit
-    let acceptAlternates' = (fromIntegral . fromEnum) acceptAlternates
-    result <- g_str_match_string searchTerm' potentialHit' acceptAlternates'
-    let result' = (/= 0) result
-    freeMem searchTerm'
-    freeMem potentialHit'
-    return result'
-
-
--- function g_str_is_ascii
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_str_is_ascii" g_str_is_ascii :: 
-    CString ->                              -- str : TBasicType TUTF8
-    IO CInt
-
-
-strIsAscii ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> m Bool                               -- result
-strIsAscii str = liftIO $ do
-    str' <- textToCString str
-    result <- g_str_is_ascii str'
-    let result' = (/= 0) result
-    freeMem str'
-    return result'
-
-
--- function g_str_hash
--- Args : [Arg {argCName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_str_hash" g_str_hash :: 
-    Ptr () ->                               -- v : TBasicType TVoid
-    IO Word32
-
-
-strHash ::
-    (MonadIO m) =>
-    Ptr ()                                  -- v
-    -> m Word32                             -- result
-strHash v = liftIO $ do
-    result <- g_str_hash v
-    return result
-
-
--- function g_str_has_suffix
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "suffix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_str_has_suffix" g_str_has_suffix :: 
-    CString ->                              -- str : TBasicType TUTF8
-    CString ->                              -- suffix : TBasicType TUTF8
-    IO CInt
-
-
-strHasSuffix ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> T.Text                               -- suffix
-    -> m Bool                               -- result
-strHasSuffix str suffix = liftIO $ do
-    str' <- textToCString str
-    suffix' <- textToCString suffix
-    result <- g_str_has_suffix str' suffix'
-    let result' = (/= 0) result
-    freeMem str'
-    freeMem suffix'
-    return result'
-
-
--- function g_str_has_prefix
--- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "prefix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_str_has_prefix" g_str_has_prefix :: 
-    CString ->                              -- str : TBasicType TUTF8
-    CString ->                              -- prefix : TBasicType TUTF8
-    IO CInt
-
-
-strHasPrefix ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> T.Text                               -- prefix
-    -> m Bool                               -- result
-strHasPrefix str prefix = liftIO $ do
-    str' <- textToCString str
-    prefix' <- textToCString prefix
-    result <- g_str_has_prefix str' prefix'
-    let result' = (/= 0) result
-    freeMem str'
-    freeMem prefix'
-    return result'
-
-
--- function g_str_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}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_str_equal" g_str_equal :: 
-    Ptr () ->                               -- v1 : TBasicType TVoid
-    Ptr () ->                               -- v2 : TBasicType TVoid
-    IO CInt
-
-
-strEqual ::
-    (MonadIO m) =>
-    Ptr ()                                  -- v1
-    -> Ptr ()                               -- v2
-    -> m Bool                               -- result
-strEqual v1 v2 = liftIO $ do
-    result <- g_str_equal v1 v2
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_stpcpy
--- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_stpcpy" g_stpcpy :: 
-    CString ->                              -- dest : TBasicType TUTF8
-    CString ->                              -- src : TBasicType TUTF8
-    IO CString
-
-
-stpcpy ::
-    (MonadIO m) =>
-    T.Text                                  -- dest
-    -> T.Text                               -- src
-    -> m T.Text                             -- result
-stpcpy dest src = liftIO $ do
-    dest' <- textToCString dest
-    src' <- textToCString src
-    result <- g_stpcpy dest' src'
-    checkUnexpectedReturnNULL "g_stpcpy" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem dest'
-    freeMem src'
-    return result'
-
-
--- function g_spawn_sync
--- Args : [Arg {argCName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, 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},Arg {argCName = "standard_output", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_error", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "exit_status", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_spawn_sync" g_spawn_sync :: 
-    CString ->                              -- working_directory : TBasicType TUTF8
-    Ptr CString ->                          -- argv : TCArray True (-1) (-1) (TBasicType TUTF8)
-    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
-    CUInt ->                                -- flags : TInterface "GLib" "SpawnFlags"
-    FunPtr SpawnChildSetupFuncC ->          -- child_setup : TInterface "GLib" "SpawnChildSetupFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    Ptr (Ptr Word8) ->                      -- standard_output : TCArray True (-1) (-1) (TBasicType TUInt8)
-    Ptr (Ptr Word8) ->                      -- standard_error : TCArray True (-1) (-1) (TBasicType TUInt8)
-    Ptr Int32 ->                            -- exit_status : TBasicType TInt32
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-spawnSync ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- workingDirectory
-    -> [T.Text]                             -- argv
-    -> Maybe ([T.Text])                     -- envp
-    -> [SpawnFlags]                         -- flags
-    -> Maybe (SpawnChildSetupFunc)          -- childSetup
-    -> m (ByteString,ByteString,Int32)      -- result
-spawnSync workingDirectory argv envp flags childSetup = liftIO $ do
-    maybeWorkingDirectory <- case workingDirectory of
-        Nothing -> return nullPtr
-        Just jWorkingDirectory -> do
-            jWorkingDirectory' <- textToCString jWorkingDirectory
-            return jWorkingDirectory'
-    argv' <- packZeroTerminatedUTF8CArray argv
-    maybeEnvp <- case envp of
-        Nothing -> return nullPtr
-        Just jEnvp -> do
-            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
-            return jEnvp'
-    let flags' = gflagsToWord flags
-    ptrchildSetup <- callocMem :: IO (Ptr (FunPtr SpawnChildSetupFuncC))
-    maybeChildSetup <- case childSetup of
-        Nothing -> return (castPtrToFunPtr nullPtr)
-        Just jChildSetup -> do
-            jChildSetup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchildSetup) jChildSetup)
-            poke ptrchildSetup jChildSetup'
-            return jChildSetup'
-    standardOutput <- allocMem :: IO (Ptr (Ptr Word8))
-    standardError <- allocMem :: IO (Ptr (Ptr Word8))
-    exitStatus <- allocMem :: IO (Ptr Int32)
-    let userData = nullPtr
-    onException (do
-        _ <- propagateGError $ g_spawn_sync maybeWorkingDirectory argv' maybeEnvp flags' maybeChildSetup userData standardOutput standardError exitStatus
-        standardOutput' <- peek standardOutput
-        standardOutput'' <- unpackZeroTerminatedByteString standardOutput'
-        freeMem standardOutput'
-        standardError' <- peek standardError
-        standardError'' <- unpackZeroTerminatedByteString standardError'
-        freeMem standardError'
-        exitStatus' <- peek exitStatus
-        freeMem maybeWorkingDirectory
-        mapZeroTerminatedCArray freeMem argv'
-        freeMem argv'
-        mapZeroTerminatedCArray freeMem maybeEnvp
-        freeMem maybeEnvp
-        freeMem standardOutput
-        freeMem standardError
-        freeMem exitStatus
-        return (standardOutput'', standardError'', exitStatus')
-     ) (do
-        freeMem maybeWorkingDirectory
-        mapZeroTerminatedCArray freeMem argv'
-        freeMem argv'
-        mapZeroTerminatedCArray freeMem maybeEnvp
-        freeMem maybeEnvp
-        freeMem standardOutput
-        freeMem standardError
-        freeMem exitStatus
-     )
-
-
--- function g_spawn_exit_error_quark
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_spawn_exit_error_quark" g_spawn_exit_error_quark :: 
-    IO Word32
-
-
-spawnExitErrorQuark ::
-    (MonadIO m) =>
-    m Word32                                -- result
-spawnExitErrorQuark  = liftIO $ do
-    result <- g_spawn_exit_error_quark
-    return result
-
-
--- function g_spawn_error_quark
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_spawn_error_quark" g_spawn_error_quark :: 
-    IO Word32
-
-
-spawnErrorQuark ::
-    (MonadIO m) =>
-    m Word32                                -- result
-spawnErrorQuark  = liftIO $ do
-    result <- g_spawn_error_quark
-    return result
-
-
--- function g_spawn_command_line_sync
--- Args : [Arg {argCName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "standard_output", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_error", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "exit_status", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_spawn_command_line_sync" g_spawn_command_line_sync :: 
-    CString ->                              -- command_line : TBasicType TUTF8
-    Ptr (Ptr Word8) ->                      -- standard_output : TCArray True (-1) (-1) (TBasicType TUInt8)
-    Ptr (Ptr Word8) ->                      -- standard_error : TCArray True (-1) (-1) (TBasicType TUInt8)
-    Ptr Int32 ->                            -- exit_status : TBasicType TInt32
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-spawnCommandLineSync ::
-    (MonadIO m) =>
-    T.Text                                  -- commandLine
-    -> m (ByteString,ByteString,Int32)      -- result
-spawnCommandLineSync commandLine = liftIO $ do
-    commandLine' <- textToCString commandLine
-    standardOutput <- allocMem :: IO (Ptr (Ptr Word8))
-    standardError <- allocMem :: IO (Ptr (Ptr Word8))
-    exitStatus <- allocMem :: IO (Ptr Int32)
-    onException (do
-        _ <- propagateGError $ g_spawn_command_line_sync commandLine' standardOutput standardError exitStatus
-        standardOutput' <- peek standardOutput
-        standardOutput'' <- unpackZeroTerminatedByteString standardOutput'
-        freeMem standardOutput'
-        standardError' <- peek standardError
-        standardError'' <- unpackZeroTerminatedByteString standardError'
-        freeMem standardError'
-        exitStatus' <- peek exitStatus
-        freeMem commandLine'
-        freeMem standardOutput
-        freeMem standardError
-        freeMem exitStatus
-        return (standardOutput'', standardError'', exitStatus')
-     ) (do
-        freeMem commandLine'
-        freeMem standardOutput
-        freeMem standardError
-        freeMem exitStatus
-     )
-
-
--- function g_spawn_command_line_async
--- Args : [Arg {argCName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_spawn_command_line_async" g_spawn_command_line_async :: 
-    CString ->                              -- command_line : TBasicType TUTF8
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-spawnCommandLineAsync ::
-    (MonadIO m) =>
-    T.Text                                  -- commandLine
-    -> m ()                                 -- result
-spawnCommandLineAsync commandLine = liftIO $ do
-    commandLine' <- textToCString commandLine
-    onException (do
-        _ <- propagateGError $ g_spawn_command_line_async commandLine'
-        freeMem commandLine'
-        return ()
-     ) (do
-        freeMem commandLine'
-     )
-
-
--- function g_spawn_close_pid
--- Args : [Arg {argCName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_spawn_close_pid" g_spawn_close_pid :: 
-    Int32 ->                                -- pid : TBasicType TInt32
-    IO ()
-
-
-spawnClosePid ::
-    (MonadIO m) =>
-    Int32                                   -- pid
-    -> m ()                                 -- result
-spawnClosePid pid = liftIO $ do
-    g_spawn_close_pid pid
-    return ()
-
-
--- function g_spawn_check_exit_status
--- Args : [Arg {argCName = "exit_status", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_spawn_check_exit_status" g_spawn_check_exit_status :: 
-    Int32 ->                                -- exit_status : TBasicType TInt32
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-spawnCheckExitStatus ::
-    (MonadIO m) =>
-    Int32                                   -- exitStatus
-    -> m ()                                 -- result
-spawnCheckExitStatus exitStatus = liftIO $ do
-    onException (do
-        _ <- propagateGError $ g_spawn_check_exit_status exitStatus
-        return ()
-     ) (do
-        return ()
-     )
-
-
--- function g_spawn_async_with_pipes
--- Args : [Arg {argCName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, 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},Arg {argCName = "child_pid", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_input", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_output", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_error", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_spawn_async_with_pipes" g_spawn_async_with_pipes :: 
-    CString ->                              -- working_directory : TBasicType TUTF8
-    Ptr CString ->                          -- argv : TCArray True (-1) (-1) (TBasicType TUTF8)
-    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
-    CUInt ->                                -- flags : TInterface "GLib" "SpawnFlags"
-    FunPtr SpawnChildSetupFuncC ->          -- child_setup : TInterface "GLib" "SpawnChildSetupFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    Ptr Int32 ->                            -- child_pid : TBasicType TInt32
-    Ptr Int32 ->                            -- standard_input : TBasicType TInt32
-    Ptr Int32 ->                            -- standard_output : TBasicType TInt32
-    Ptr Int32 ->                            -- standard_error : TBasicType TInt32
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-spawnAsyncWithPipes ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- workingDirectory
-    -> [T.Text]                             -- argv
-    -> Maybe ([T.Text])                     -- envp
-    -> [SpawnFlags]                         -- flags
-    -> Maybe (SpawnChildSetupFunc)          -- childSetup
-    -> m (Int32,Int32,Int32,Int32)          -- result
-spawnAsyncWithPipes workingDirectory argv envp flags childSetup = liftIO $ do
-    maybeWorkingDirectory <- case workingDirectory of
-        Nothing -> return nullPtr
-        Just jWorkingDirectory -> do
-            jWorkingDirectory' <- textToCString jWorkingDirectory
-            return jWorkingDirectory'
-    argv' <- packZeroTerminatedUTF8CArray argv
-    maybeEnvp <- case envp of
-        Nothing -> return nullPtr
-        Just jEnvp -> do
-            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
-            return jEnvp'
-    let flags' = gflagsToWord flags
-    ptrchildSetup <- callocMem :: IO (Ptr (FunPtr SpawnChildSetupFuncC))
-    maybeChildSetup <- case childSetup of
-        Nothing -> return (castPtrToFunPtr nullPtr)
-        Just jChildSetup -> do
-            jChildSetup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchildSetup) jChildSetup)
-            poke ptrchildSetup jChildSetup'
-            return jChildSetup'
-    childPid <- allocMem :: IO (Ptr Int32)
-    standardInput <- allocMem :: IO (Ptr Int32)
-    standardOutput <- allocMem :: IO (Ptr Int32)
-    standardError <- allocMem :: IO (Ptr Int32)
-    let userData = nullPtr
-    onException (do
-        _ <- propagateGError $ g_spawn_async_with_pipes maybeWorkingDirectory argv' maybeEnvp flags' maybeChildSetup userData childPid standardInput standardOutput standardError
-        childPid' <- peek childPid
-        standardInput' <- peek standardInput
-        standardOutput' <- peek standardOutput
-        standardError' <- peek standardError
-        freeMem maybeWorkingDirectory
-        mapZeroTerminatedCArray freeMem argv'
-        freeMem argv'
-        mapZeroTerminatedCArray freeMem maybeEnvp
-        freeMem maybeEnvp
-        freeMem childPid
-        freeMem standardInput
-        freeMem standardOutput
-        freeMem standardError
-        return (childPid', standardInput', standardOutput', standardError')
-     ) (do
-        freeMem maybeWorkingDirectory
-        mapZeroTerminatedCArray freeMem argv'
-        freeMem argv'
-        mapZeroTerminatedCArray freeMem maybeEnvp
-        freeMem maybeEnvp
-        freeMem childPid
-        freeMem standardInput
-        freeMem standardOutput
-        freeMem standardError
-     )
-
-
--- function g_spawn_async
--- Args : [Arg {argCName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, 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},Arg {argCName = "child_pid", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_spawn_async" g_spawn_async :: 
-    CString ->                              -- working_directory : TBasicType TUTF8
-    Ptr CString ->                          -- argv : TCArray True (-1) (-1) (TBasicType TUTF8)
-    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
-    CUInt ->                                -- flags : TInterface "GLib" "SpawnFlags"
-    FunPtr SpawnChildSetupFuncC ->          -- child_setup : TInterface "GLib" "SpawnChildSetupFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    Ptr Int32 ->                            -- child_pid : TBasicType TInt32
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-spawnAsync ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- workingDirectory
-    -> [T.Text]                             -- argv
-    -> Maybe ([T.Text])                     -- envp
-    -> [SpawnFlags]                         -- flags
-    -> Maybe (SpawnChildSetupFunc)          -- childSetup
-    -> m (Int32)                            -- result
-spawnAsync workingDirectory argv envp flags childSetup = liftIO $ do
-    maybeWorkingDirectory <- case workingDirectory of
-        Nothing -> return nullPtr
-        Just jWorkingDirectory -> do
-            jWorkingDirectory' <- textToCString jWorkingDirectory
-            return jWorkingDirectory'
-    argv' <- packZeroTerminatedUTF8CArray argv
-    maybeEnvp <- case envp of
-        Nothing -> return nullPtr
-        Just jEnvp -> do
-            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
-            return jEnvp'
-    let flags' = gflagsToWord flags
-    ptrchildSetup <- callocMem :: IO (Ptr (FunPtr SpawnChildSetupFuncC))
-    maybeChildSetup <- case childSetup of
-        Nothing -> return (castPtrToFunPtr nullPtr)
-        Just jChildSetup -> do
-            jChildSetup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchildSetup) jChildSetup)
-            poke ptrchildSetup jChildSetup'
-            return jChildSetup'
-    childPid <- allocMem :: IO (Ptr Int32)
-    let userData = nullPtr
-    onException (do
-        _ <- propagateGError $ g_spawn_async maybeWorkingDirectory argv' maybeEnvp flags' maybeChildSetup userData childPid
-        childPid' <- peek childPid
-        freeMem maybeWorkingDirectory
-        mapZeroTerminatedCArray freeMem argv'
-        freeMem argv'
-        mapZeroTerminatedCArray freeMem maybeEnvp
-        freeMem maybeEnvp
-        freeMem childPid
-        return childPid'
-     ) (do
-        freeMem maybeWorkingDirectory
-        mapZeroTerminatedCArray freeMem argv'
-        freeMem argv'
-        mapZeroTerminatedCArray freeMem maybeEnvp
-        freeMem maybeEnvp
-        freeMem childPid
-     )
-
-
--- function g_spaced_primes_closest
--- Args : [Arg {argCName = "num", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_spaced_primes_closest" g_spaced_primes_closest :: 
-    Word32 ->                               -- num : TBasicType TUInt32
-    IO Word32
-
-
-spacedPrimesClosest ::
-    (MonadIO m) =>
-    Word32                                  -- num
-    -> m Word32                             -- result
-spacedPrimesClosest num = liftIO $ do
-    result <- g_spaced_primes_closest num
-    return result
-
-
--- function g_slice_set_config
--- Args : [Arg {argCName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_slice_set_config" g_slice_set_config :: 
-    CUInt ->                                -- ckey : TInterface "GLib" "SliceConfig"
-    Int64 ->                                -- value : TBasicType TInt64
-    IO ()
-
-
-sliceSetConfig ::
-    (MonadIO m) =>
-    SliceConfig                             -- ckey
-    -> Int64                                -- value
-    -> m ()                                 -- result
-sliceSetConfig ckey value = liftIO $ do
-    let ckey' = (fromIntegral . fromEnum) ckey
-    g_slice_set_config ckey' value
-    return ()
-
-
--- function g_slice_get_config_state
--- Args : [Arg {argCName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "address", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_slice_get_config_state" g_slice_get_config_state :: 
-    CUInt ->                                -- ckey : TInterface "GLib" "SliceConfig"
-    Int64 ->                                -- address : TBasicType TInt64
-    Word32 ->                               -- n_values : TBasicType TUInt32
-    IO Int64
-
-
-sliceGetConfigState ::
-    (MonadIO m) =>
-    SliceConfig                             -- ckey
-    -> Int64                                -- address
-    -> Word32                               -- nValues
-    -> m Int64                              -- result
-sliceGetConfigState ckey address nValues = liftIO $ do
-    let ckey' = (fromIntegral . fromEnum) ckey
-    result <- g_slice_get_config_state ckey' address nValues
-    return result
-
-
--- function g_slice_get_config
--- Args : [Arg {argCName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_slice_get_config" g_slice_get_config :: 
-    CUInt ->                                -- ckey : TInterface "GLib" "SliceConfig"
-    IO Int64
-
-
-sliceGetConfig ::
-    (MonadIO m) =>
-    SliceConfig                             -- ckey
-    -> m Int64                              -- result
-sliceGetConfig ckey = liftIO $ do
-    let ckey' = (fromIntegral . fromEnum) ckey
-    result <- g_slice_get_config ckey'
-    return result
-
-
--- function g_slice_free_chain_with_offset
--- Args : [Arg {argCName = "block_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mem_chain", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "next_offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_slice_free_chain_with_offset" g_slice_free_chain_with_offset :: 
-    Word64 ->                               -- block_size : TBasicType TUInt64
-    Ptr () ->                               -- mem_chain : TBasicType TVoid
-    Word64 ->                               -- next_offset : TBasicType TUInt64
-    IO ()
-
-
-sliceFreeChainWithOffset ::
-    (MonadIO m) =>
-    Word64                                  -- blockSize
-    -> Ptr ()                               -- memChain
-    -> Word64                               -- nextOffset
-    -> m ()                                 -- result
-sliceFreeChainWithOffset blockSize memChain nextOffset = liftIO $ do
-    g_slice_free_chain_with_offset blockSize memChain nextOffset
-    return ()
-
-
--- function g_slice_free1
--- Args : [Arg {argCName = "block_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mem_block", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_slice_free1" g_slice_free1 :: 
-    Word64 ->                               -- block_size : TBasicType TUInt64
-    Ptr () ->                               -- mem_block : TBasicType TVoid
-    IO ()
-
-
-sliceFree1 ::
-    (MonadIO m) =>
-    Word64                                  -- blockSize
-    -> Ptr ()                               -- memBlock
-    -> m ()                                 -- result
-sliceFree1 blockSize memBlock = liftIO $ do
-    g_slice_free1 blockSize memBlock
-    return ()
-
-
--- function g_shell_unquote
--- Args : [Arg {argCName = "quoted_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_shell_unquote" g_shell_unquote :: 
-    CString ->                              -- quoted_string : TBasicType TUTF8
-    Ptr (Ptr GError) ->                     -- error
-    IO CString
-
-
-shellUnquote ::
-    (MonadIO m) =>
-    T.Text                                  -- quotedString
-    -> m T.Text                             -- result
-shellUnquote quotedString = liftIO $ do
-    quotedString' <- textToCString quotedString
-    onException (do
-        result <- propagateGError $ g_shell_unquote quotedString'
-        checkUnexpectedReturnNULL "g_shell_unquote" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem quotedString'
-        return result'
-     ) (do
-        freeMem quotedString'
-     )
-
-
--- function g_shell_quote
--- Args : [Arg {argCName = "unquoted_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_shell_quote" g_shell_quote :: 
-    CString ->                              -- unquoted_string : TBasicType TUTF8
-    IO CString
-
-
-shellQuote ::
-    (MonadIO m) =>
-    T.Text                                  -- unquotedString
-    -> m T.Text                             -- result
-shellQuote unquotedString = liftIO $ do
-    unquotedString' <- textToCString unquotedString
-    result <- g_shell_quote unquotedString'
-    checkUnexpectedReturnNULL "g_shell_quote" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem unquotedString'
-    return result'
-
-
--- function g_shell_parse_argv
--- Args : [Arg {argCName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argcp", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "argvp", argType = TCArray True (-1) 1 (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_shell_parse_argv" g_shell_parse_argv :: 
-    CString ->                              -- command_line : TBasicType TUTF8
-    Ptr Int32 ->                            -- argcp : TBasicType TInt32
-    Ptr (Ptr CString) ->                    -- argvp : TCArray True (-1) 1 (TBasicType TUTF8)
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-shellParseArgv ::
-    (MonadIO m) =>
-    T.Text                                  -- commandLine
-    -> m (Int32,[T.Text])                   -- result
-shellParseArgv commandLine = liftIO $ do
-    commandLine' <- textToCString commandLine
-    argcp <- allocMem :: IO (Ptr Int32)
-    argvp <- allocMem :: IO (Ptr (Ptr CString))
-    onException (do
-        _ <- propagateGError $ g_shell_parse_argv commandLine' argcp argvp
-        argcp' <- peek argcp
-        argvp' <- peek argvp
-        argvp'' <- unpackZeroTerminatedUTF8CArray argvp'
-        mapZeroTerminatedCArray freeMem argvp'
-        freeMem argvp'
-        freeMem commandLine'
-        freeMem argcp
-        freeMem argvp
-        return (argcp', argvp'')
-     ) (do
-        freeMem commandLine'
-        freeMem argcp
-        freeMem argvp
-     )
-
-
--- function g_shell_error_quark
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_shell_error_quark" g_shell_error_quark :: 
-    IO Word32
-
-
-shellErrorQuark ::
-    (MonadIO m) =>
-    m Word32                                -- result
-shellErrorQuark  = liftIO $ do
-    result <- g_shell_error_quark
-    return result
-
-
--- function g_setenv
--- Args : [Arg {argCName = "variable", 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 = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_setenv" g_setenv :: 
-    CString ->                              -- variable : TBasicType TUTF8
-    CString ->                              -- value : TBasicType TUTF8
-    CInt ->                                 -- overwrite : TBasicType TBoolean
-    IO CInt
-
-
-setenv ::
-    (MonadIO m) =>
-    T.Text                                  -- variable
-    -> T.Text                               -- value
-    -> Bool                                 -- overwrite
-    -> m Bool                               -- result
-setenv variable value overwrite = liftIO $ do
-    variable' <- textToCString variable
-    value' <- textToCString value
-    let overwrite' = (fromIntegral . fromEnum) overwrite
-    result <- g_setenv variable' value' overwrite'
-    let result' = (/= 0) result
-    freeMem variable'
-    freeMem value'
-    return result'
-
-
--- function g_set_prgname
--- Args : [Arg {argCName = "prgname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_set_prgname" g_set_prgname :: 
-    CString ->                              -- prgname : TBasicType TUTF8
-    IO ()
-
-
-setPrgname ::
-    (MonadIO m) =>
-    T.Text                                  -- prgname
-    -> m ()                                 -- result
-setPrgname prgname = liftIO $ do
-    prgname' <- textToCString prgname
-    g_set_prgname prgname'
-    freeMem prgname'
-    return ()
-
-
--- function g_set_error_literal
--- Args : [Arg {argCName = "err", argType = TError, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "domain", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "code", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_set_error_literal" g_set_error_literal :: 
-    Ptr GError ->                           -- err : TError
-    Word32 ->                               -- domain : TBasicType TUInt32
-    Int32 ->                                -- code : TBasicType TInt32
-    CString ->                              -- message : TBasicType TUTF8
-    IO ()
-
-
-setErrorLiteral ::
-    (MonadIO m) =>
-    Maybe (GError)                          -- err
-    -> Word32                               -- domain
-    -> Int32                                -- code
-    -> T.Text                               -- message
-    -> m ()                                 -- result
-setErrorLiteral err domain code message = liftIO $ do
-    maybeErr <- case err of
-        Nothing -> return nullPtr
-        Just jErr -> do
-            let jErr' = unsafeManagedPtrGetPtr jErr
-            return jErr'
-    message' <- textToCString message
-    g_set_error_literal maybeErr domain code message'
-    whenJust err touchManagedPtr
-    freeMem message'
-    return ()
-
-
--- function g_set_application_name
--- Args : [Arg {argCName = "application_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_set_application_name" g_set_application_name :: 
-    CString ->                              -- application_name : TBasicType TUTF8
-    IO ()
-
-
-setApplicationName ::
-    (MonadIO m) =>
-    T.Text                                  -- applicationName
-    -> m ()                                 -- result
-setApplicationName applicationName = liftIO $ do
-    applicationName' <- textToCString applicationName
-    g_set_application_name applicationName'
-    freeMem applicationName'
-    return ()
-
-
--- function g_rmdir
--- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_rmdir" g_rmdir :: 
-    CString ->                              -- filename : TBasicType TUTF8
-    IO Int32
-
-
-rmdir ::
-    (MonadIO m) =>
-    T.Text                                  -- filename
-    -> m Int32                              -- result
-rmdir filename = liftIO $ do
-    filename' <- textToCString filename
-    result <- g_rmdir filename'
-    freeMem filename'
-    return result
-
-
--- function g_return_if_fail_warning
--- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pretty_function", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expression", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_return_if_fail_warning" g_return_if_fail_warning :: 
-    CString ->                              -- log_domain : TBasicType TUTF8
-    CString ->                              -- pretty_function : TBasicType TUTF8
-    CString ->                              -- expression : TBasicType TUTF8
-    IO ()
-
-
-returnIfFailWarning ::
-    (MonadIO m) =>
-    T.Text                                  -- logDomain
-    -> T.Text                               -- prettyFunction
-    -> T.Text                               -- expression
-    -> m ()                                 -- result
-returnIfFailWarning logDomain prettyFunction expression = liftIO $ do
-    logDomain' <- textToCString logDomain
-    prettyFunction' <- textToCString prettyFunction
-    expression' <- textToCString expression
-    g_return_if_fail_warning logDomain' prettyFunction' expression'
-    freeMem logDomain'
-    freeMem prettyFunction'
-    freeMem expression'
-    return ()
-
-
--- function g_reload_user_special_dirs_cache
--- Args : []
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_reload_user_special_dirs_cache" g_reload_user_special_dirs_cache :: 
-    IO ()
-
-
-reloadUserSpecialDirsCache ::
-    (MonadIO m) =>
-    m ()                                    -- result
-reloadUserSpecialDirsCache  = liftIO $ do
-    g_reload_user_special_dirs_cache
-    return ()
-
-
--- function g_random_set_seed
--- Args : [Arg {argCName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_random_set_seed" g_random_set_seed :: 
-    Word32 ->                               -- seed : TBasicType TUInt32
-    IO ()
-
-
-randomSetSeed ::
-    (MonadIO m) =>
-    Word32                                  -- seed
-    -> m ()                                 -- result
-randomSetSeed seed = liftIO $ do
-    g_random_set_seed seed
-    return ()
-
-
--- function g_random_int_range
--- Args : [Arg {argCName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_random_int_range" g_random_int_range :: 
-    Int32 ->                                -- begin : TBasicType TInt32
-    Int32 ->                                -- end : TBasicType TInt32
-    IO Int32
-
-
-randomIntRange ::
-    (MonadIO m) =>
-    Int32                                   -- begin
-    -> Int32                                -- end
-    -> m Int32                              -- result
-randomIntRange begin end = liftIO $ do
-    result <- g_random_int_range begin end
-    return result
-
-
--- function g_random_int
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_random_int" g_random_int :: 
-    IO Word32
-
-
-randomInt ::
-    (MonadIO m) =>
-    m Word32                                -- result
-randomInt  = liftIO $ do
-    result <- g_random_int
-    return result
-
-
--- function g_random_double_range
--- Args : [Arg {argCName = "begin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TDouble
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_random_double_range" g_random_double_range :: 
-    CDouble ->                              -- begin : TBasicType TDouble
-    CDouble ->                              -- end : TBasicType TDouble
-    IO CDouble
-
-
-randomDoubleRange ::
-    (MonadIO m) =>
-    Double                                  -- begin
-    -> Double                               -- end
-    -> m Double                             -- result
-randomDoubleRange begin end = liftIO $ do
-    let begin' = realToFrac begin
-    let end' = realToFrac end
-    result <- g_random_double_range begin' end'
-    let result' = realToFrac result
-    return result'
-
-
--- function g_random_double
--- Args : []
--- Lengths : []
--- returnType : TBasicType TDouble
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_random_double" g_random_double :: 
-    IO CDouble
-
-
-randomDouble ::
-    (MonadIO m) =>
-    m Double                                -- result
-randomDouble  = liftIO $ do
-    result <- g_random_double
-    let result' = realToFrac result
-    return result'
-
-
--- function g_quark_try_string
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_quark_try_string" g_quark_try_string :: 
-    CString ->                              -- string : TBasicType TUTF8
-    IO Word32
-
-
-quarkTryString ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- string
-    -> m Word32                             -- result
-quarkTryString string = liftIO $ do
-    maybeString <- case string of
-        Nothing -> return nullPtr
-        Just jString -> do
-            jString' <- textToCString jString
-            return jString'
-    result <- g_quark_try_string maybeString
-    freeMem maybeString
-    return result
-
-
--- function g_quark_to_string
--- Args : [Arg {argCName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_quark_to_string" g_quark_to_string :: 
-    Word32 ->                               -- quark : TBasicType TUInt32
-    IO CString
-
-
-quarkToString ::
-    (MonadIO m) =>
-    Word32                                  -- quark
-    -> m T.Text                             -- result
-quarkToString quark = liftIO $ do
-    result <- g_quark_to_string quark
-    checkUnexpectedReturnNULL "g_quark_to_string" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_quark_from_string
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_quark_from_string" g_quark_from_string :: 
-    CString ->                              -- string : TBasicType TUTF8
-    IO Word32
-
-
-quarkFromString ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- string
-    -> m Word32                             -- result
-quarkFromString string = liftIO $ do
-    maybeString <- case string of
-        Nothing -> return nullPtr
-        Just jString -> do
-            jString' <- textToCString jString
-            return jString'
-    result <- g_quark_from_string maybeString
-    freeMem maybeString
-    return result
-
-
--- function g_quark_from_static_string
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_quark_from_static_string" g_quark_from_static_string :: 
-    CString ->                              -- string : TBasicType TUTF8
-    IO Word32
-
-
-quarkFromStaticString ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- string
-    -> m Word32                             -- result
-quarkFromStaticString string = liftIO $ do
-    maybeString <- case string of
-        Nothing -> return nullPtr
-        Just jString -> do
-            jString' <- textToCString jString
-            return jString'
-    result <- g_quark_from_static_string maybeString
-    freeMem maybeString
-    return result
-
-
--- function g_propagate_error
--- Args : [Arg {argCName = "dest", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_propagate_error" g_propagate_error :: 
-    Ptr GError ->                           -- dest : TError
-    Ptr GError ->                           -- src : TError
-    IO ()
-
-
-propagateError ::
-    (MonadIO m) =>
-    GError                                  -- dest
-    -> GError                               -- src
-    -> m ()                                 -- result
-propagateError dest src = liftIO $ do
-    let dest' = unsafeManagedPtrGetPtr dest
-    let src' = unsafeManagedPtrGetPtr src
-    g_propagate_error dest' src'
-    touchManagedPtr dest
-    touchManagedPtr src
-    return ()
-
-
--- function g_poll
--- Args : [Arg {argCName = "fds", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nfds", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_poll" g_poll :: 
-    Ptr PollFD ->                           -- fds : TInterface "GLib" "PollFD"
-    Word32 ->                               -- nfds : TBasicType TUInt32
-    Int32 ->                                -- timeout : TBasicType TInt32
-    IO Int32
-
-
-poll ::
-    (MonadIO m) =>
-    PollFD                                  -- fds
-    -> Word32                               -- nfds
-    -> Int32                                -- timeout
-    -> m Int32                              -- result
-poll fds nfds timeout = liftIO $ do
-    let fds' = unsafeManagedPtrGetPtr fds
-    result <- g_poll fds' nfds timeout
-    touchManagedPtr fds
-    return result
-
-
--- function g_pointer_bit_unlock
--- Args : [Arg {argCName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_pointer_bit_unlock" g_pointer_bit_unlock :: 
-    Ptr () ->                               -- address : TBasicType TVoid
-    Int32 ->                                -- lock_bit : TBasicType TInt32
-    IO ()
-
-
-pointerBitUnlock ::
-    (MonadIO m) =>
-    Ptr ()                                  -- address
-    -> Int32                                -- lockBit
-    -> m ()                                 -- result
-pointerBitUnlock address lockBit = liftIO $ do
-    g_pointer_bit_unlock address lockBit
-    return ()
-
-
--- function g_pointer_bit_trylock
--- Args : [Arg {argCName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_pointer_bit_trylock" g_pointer_bit_trylock :: 
-    Ptr () ->                               -- address : TBasicType TVoid
-    Int32 ->                                -- lock_bit : TBasicType TInt32
-    IO CInt
-
-
-pointerBitTrylock ::
-    (MonadIO m) =>
-    Ptr ()                                  -- address
-    -> Int32                                -- lockBit
-    -> m Bool                               -- result
-pointerBitTrylock address lockBit = liftIO $ do
-    result <- g_pointer_bit_trylock address lockBit
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_pointer_bit_lock
--- Args : [Arg {argCName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_pointer_bit_lock" g_pointer_bit_lock :: 
-    Ptr () ->                               -- address : TBasicType TVoid
-    Int32 ->                                -- lock_bit : TBasicType TInt32
-    IO ()
-
-
-pointerBitLock ::
-    (MonadIO m) =>
-    Ptr ()                                  -- address
-    -> Int32                                -- lockBit
-    -> m ()                                 -- result
-pointerBitLock address lockBit = liftIO $ do
-    g_pointer_bit_lock address lockBit
-    return ()
-
-
--- function g_pattern_match_string
--- Args : [Arg {argCName = "pspec", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_pattern_match_string" g_pattern_match_string :: 
-    Ptr PatternSpec ->                      -- pspec : TInterface "GLib" "PatternSpec"
-    CString ->                              -- string : TBasicType TUTF8
-    IO CInt
-
-
-patternMatchString ::
-    (MonadIO m) =>
-    PatternSpec                             -- pspec
-    -> T.Text                               -- string
-    -> m Bool                               -- result
-patternMatchString pspec string = liftIO $ do
-    let pspec' = unsafeManagedPtrGetPtr pspec
-    string' <- textToCString string
-    result <- g_pattern_match_string pspec' string'
-    let result' = (/= 0) result
-    touchManagedPtr pspec
-    freeMem string'
-    return result'
-
-
--- function g_pattern_match_simple
--- Args : [Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_pattern_match_simple" g_pattern_match_simple :: 
-    CString ->                              -- pattern : TBasicType TUTF8
-    CString ->                              -- string : TBasicType TUTF8
-    IO CInt
-
-
-patternMatchSimple ::
-    (MonadIO m) =>
-    T.Text                                  -- pattern
-    -> T.Text                               -- string
-    -> m Bool                               -- result
-patternMatchSimple pattern string = liftIO $ do
-    pattern' <- textToCString pattern
-    string' <- textToCString string
-    result <- g_pattern_match_simple pattern' string'
-    let result' = (/= 0) result
-    freeMem pattern'
-    freeMem string'
-    return result'
-
-
--- function g_pattern_match
--- Args : [Arg {argCName = "pspec", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_reversed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_pattern_match" g_pattern_match :: 
-    Ptr PatternSpec ->                      -- pspec : TInterface "GLib" "PatternSpec"
-    Word32 ->                               -- string_length : TBasicType TUInt32
-    CString ->                              -- string : TBasicType TUTF8
-    CString ->                              -- string_reversed : TBasicType TUTF8
-    IO CInt
-
-
-patternMatch ::
-    (MonadIO m) =>
-    PatternSpec                             -- pspec
-    -> Word32                               -- stringLength
-    -> T.Text                               -- string
-    -> Maybe (T.Text)                       -- stringReversed
-    -> m Bool                               -- result
-patternMatch pspec stringLength string stringReversed = liftIO $ do
-    let pspec' = unsafeManagedPtrGetPtr pspec
-    string' <- textToCString string
-    maybeStringReversed <- case stringReversed of
-        Nothing -> return nullPtr
-        Just jStringReversed -> do
-            jStringReversed' <- textToCString jStringReversed
-            return jStringReversed'
-    result <- g_pattern_match pspec' stringLength string' maybeStringReversed
-    let result' = (/= 0) result
-    touchManagedPtr pspec
-    freeMem string'
-    freeMem maybeStringReversed
-    return result'
-
-
--- function g_path_skip_root
--- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_path_skip_root" g_path_skip_root :: 
-    CString ->                              -- file_name : TBasicType TUTF8
-    IO CString
-
-
-pathSkipRoot ::
-    (MonadIO m) =>
-    T.Text                                  -- fileName
-    -> m T.Text                             -- result
-pathSkipRoot fileName = liftIO $ do
-    fileName' <- textToCString fileName
-    result <- g_path_skip_root fileName'
-    checkUnexpectedReturnNULL "g_path_skip_root" result
-    result' <- cstringToText result
-    freeMem fileName'
-    return result'
-
-
--- function g_path_is_absolute
--- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_path_is_absolute" g_path_is_absolute :: 
-    CString ->                              -- file_name : TBasicType TUTF8
-    IO CInt
-
-
-pathIsAbsolute ::
-    (MonadIO m) =>
-    T.Text                                  -- fileName
-    -> m Bool                               -- result
-pathIsAbsolute fileName = liftIO $ do
-    fileName' <- textToCString fileName
-    result <- g_path_is_absolute fileName'
-    let result' = (/= 0) result
-    freeMem fileName'
-    return result'
-
-
--- function g_path_get_dirname
--- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_path_get_dirname" g_path_get_dirname :: 
-    CString ->                              -- file_name : TBasicType TUTF8
-    IO CString
-
-
-pathGetDirname ::
-    (MonadIO m) =>
-    T.Text                                  -- fileName
-    -> m T.Text                             -- result
-pathGetDirname fileName = liftIO $ do
-    fileName' <- textToCString fileName
-    result <- g_path_get_dirname fileName'
-    checkUnexpectedReturnNULL "g_path_get_dirname" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem fileName'
-    return result'
-
-
--- function g_path_get_basename
--- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_path_get_basename" g_path_get_basename :: 
-    CString ->                              -- file_name : TBasicType TUTF8
-    IO CString
-
-
-pathGetBasename ::
-    (MonadIO m) =>
-    T.Text                                  -- fileName
-    -> m T.Text                             -- result
-pathGetBasename fileName = liftIO $ do
-    fileName' <- textToCString fileName
-    result <- g_path_get_basename fileName'
-    checkUnexpectedReturnNULL "g_path_get_basename" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem fileName'
-    return result'
-
-
--- function g_parse_debug_string
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keys", argType = TCArray False (-1) 2 (TInterface "GLib" "DebugKey"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nkeys", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : [Arg {argCName = "nkeys", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_parse_debug_string" g_parse_debug_string :: 
-    CString ->                              -- string : TBasicType TUTF8
-    Ptr DebugKey ->                         -- keys : TCArray False (-1) 2 (TInterface "GLib" "DebugKey")
-    Word32 ->                               -- nkeys : TBasicType TUInt32
-    IO Word32
-
-
-parseDebugString ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- string
-    -> [DebugKey]                           -- keys
-    -> m Word32                             -- result
-parseDebugString string keys = liftIO $ do
-    let nkeys = fromIntegral $ length keys
-    maybeString <- case string of
-        Nothing -> return nullPtr
-        Just jString -> do
-            jString' <- textToCString jString
-            return jString'
-    let keys' = map unsafeManagedPtrGetPtr keys
-    keys'' <- packBlockArray 16 keys'
-    result <- g_parse_debug_string maybeString keys'' nkeys
-    mapM_ touchManagedPtr keys
-    freeMem maybeString
-    freeMem keys''
-    return result
-
-
--- function g_option_error_quark
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_option_error_quark" g_option_error_quark :: 
-    IO Word32
-
-
-optionErrorQuark ::
-    (MonadIO m) =>
-    m Word32                                -- result
-optionErrorQuark  = liftIO $ do
-    result <- g_option_error_quark
-    return result
-
-
--- function g_on_error_stack_trace
--- Args : [Arg {argCName = "prg_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_on_error_stack_trace" g_on_error_stack_trace :: 
-    CString ->                              -- prg_name : TBasicType TUTF8
-    IO ()
-
-
-onErrorStackTrace ::
-    (MonadIO m) =>
-    T.Text                                  -- prgName
-    -> m ()                                 -- result
-onErrorStackTrace prgName = liftIO $ do
-    prgName' <- textToCString prgName
-    g_on_error_stack_trace prgName'
-    freeMem prgName'
-    return ()
-
-
--- function g_on_error_query
--- Args : [Arg {argCName = "prg_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_on_error_query" g_on_error_query :: 
-    CString ->                              -- prg_name : TBasicType TUTF8
-    IO ()
-
-
-onErrorQuery ::
-    (MonadIO m) =>
-    T.Text                                  -- prgName
-    -> m ()                                 -- result
-onErrorQuery prgName = liftIO $ do
-    prgName' <- textToCString prgName
-    g_on_error_query prgName'
-    freeMem prgName'
-    return ()
-
-
--- function g_nullify_pointer
--- Args : [Arg {argCName = "nullify_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_nullify_pointer" g_nullify_pointer :: 
-    Ptr () ->                               -- nullify_location : TBasicType TVoid
-    IO ()
-
-
-nullifyPointer ::
-    (MonadIO m) =>
-    Ptr ()                                  -- nullifyLocation
-    -> m ()                                 -- result
-nullifyPointer nullifyLocation = liftIO $ do
-    g_nullify_pointer nullifyLocation
-    return ()
-
-
--- function g_mkstemp_full
--- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_mkstemp_full" g_mkstemp_full :: 
-    CString ->                              -- tmpl : TBasicType TFileName
-    Int32 ->                                -- flags : TBasicType TInt32
-    Int32 ->                                -- mode : TBasicType TInt32
-    IO Int32
-
-
-mkstempFull ::
-    (MonadIO m) =>
-    [Char]                                  -- tmpl
-    -> Int32                                -- flags
-    -> Int32                                -- mode
-    -> m Int32                              -- result
-mkstempFull tmpl flags mode = liftIO $ do
-    tmpl' <- stringToCString tmpl
-    result <- g_mkstemp_full tmpl' flags mode
-    freeMem tmpl'
-    return result
-
-
--- function g_mkstemp
--- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_mkstemp" g_mkstemp :: 
-    CString ->                              -- tmpl : TBasicType TFileName
-    IO Int32
-
-
-mkstemp ::
-    (MonadIO m) =>
-    [Char]                                  -- tmpl
-    -> m Int32                              -- result
-mkstemp tmpl = liftIO $ do
-    tmpl' <- stringToCString tmpl
-    result <- g_mkstemp tmpl'
-    freeMem tmpl'
-    return result
-
-
--- function g_mkdtemp_full
--- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_mkdtemp_full" g_mkdtemp_full :: 
-    CString ->                              -- tmpl : TBasicType TFileName
-    Int32 ->                                -- mode : TBasicType TInt32
-    IO CString
-
-
-mkdtempFull ::
-    (MonadIO m) =>
-    [Char]                                  -- tmpl
-    -> Int32                                -- mode
-    -> m T.Text                             -- result
-mkdtempFull tmpl mode = liftIO $ do
-    tmpl' <- stringToCString tmpl
-    result <- g_mkdtemp_full tmpl' mode
-    checkUnexpectedReturnNULL "g_mkdtemp_full" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem tmpl'
-    return result'
-
-
--- function g_mkdtemp
--- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_mkdtemp" g_mkdtemp :: 
-    CString ->                              -- tmpl : TBasicType TFileName
-    IO CString
-
-
-mkdtemp ::
-    (MonadIO m) =>
-    [Char]                                  -- tmpl
-    -> m T.Text                             -- result
-mkdtemp tmpl = liftIO $ do
-    tmpl' <- stringToCString tmpl
-    result <- g_mkdtemp tmpl'
-    checkUnexpectedReturnNULL "g_mkdtemp" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem tmpl'
-    return result'
-
-
--- function g_mkdir_with_parents
--- Args : [Arg {argCName = "pathname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_mkdir_with_parents" g_mkdir_with_parents :: 
-    CString ->                              -- pathname : TBasicType TUTF8
-    Int32 ->                                -- mode : TBasicType TInt32
-    IO Int32
-
-
-mkdirWithParents ::
-    (MonadIO m) =>
-    T.Text                                  -- pathname
-    -> Int32                                -- mode
-    -> m Int32                              -- result
-mkdirWithParents pathname mode = liftIO $ do
-    pathname' <- textToCString pathname
-    result <- g_mkdir_with_parents pathname' mode
-    freeMem pathname'
-    return result
-
-
--- function g_mem_set_vtable
--- Args : [Arg {argCName = "vtable", argType = TInterface "GLib" "MemVTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_mem_set_vtable" g_mem_set_vtable :: 
-    Ptr MemVTable ->                        -- vtable : TInterface "GLib" "MemVTable"
-    IO ()
-
-{-# DEPRECATED memSetVtable ["(Since version 2.46)","Use other memory profiling tools instead"]#-}
-memSetVtable ::
-    (MonadIO m) =>
-    MemVTable                               -- vtable
-    -> m ()                                 -- result
-memSetVtable vtable = liftIO $ do
-    let vtable' = unsafeManagedPtrGetPtr vtable
-    g_mem_set_vtable vtable'
-    touchManagedPtr vtable
-    return ()
-
-
--- function g_mem_profile
--- Args : []
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_mem_profile" g_mem_profile :: 
-    IO ()
-
-{-# DEPRECATED memProfile ["(Since version 2.46)","Use other memory profiling tools instead"]#-}
-memProfile ::
-    (MonadIO m) =>
-    m ()                                    -- result
-memProfile  = liftIO $ do
-    g_mem_profile
-    return ()
-
-
--- function g_mem_is_system_malloc
--- Args : []
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_mem_is_system_malloc" g_mem_is_system_malloc :: 
-    IO CInt
-
-{-# DEPRECATED memIsSystemMalloc ["(Since version 2.46)","GLib always uses the system malloc, so this function always","returns %TRUE."]#-}
-memIsSystemMalloc ::
-    (MonadIO m) =>
-    m Bool                                  -- result
-memIsSystemMalloc  = liftIO $ do
-    result <- g_mem_is_system_malloc
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_markup_escape_text
--- Args : [Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_markup_escape_text" g_markup_escape_text :: 
-    CString ->                              -- text : TBasicType TUTF8
-    Int64 ->                                -- length : TBasicType TInt64
-    IO CString
-
-
-markupEscapeText ::
-    (MonadIO m) =>
-    T.Text                                  -- text
-    -> Int64                                -- length_
-    -> m T.Text                             -- result
-markupEscapeText text length_ = liftIO $ do
-    text' <- textToCString text
-    result <- g_markup_escape_text text' length_
-    checkUnexpectedReturnNULL "g_markup_escape_text" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem text'
-    return result'
-
-
--- function g_markup_error_quark
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_markup_error_quark" g_markup_error_quark :: 
-    IO Word32
-
-
-markupErrorQuark ::
-    (MonadIO m) =>
-    m Word32                                -- result
-markupErrorQuark  = liftIO $ do
-    result <- g_markup_error_quark
-    return result
-
-
--- function g_main_depth
--- Args : []
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_main_depth" g_main_depth :: 
-    IO Int32
-
-
-mainDepth ::
-    (MonadIO m) =>
-    m Int32                                 -- result
-mainDepth  = liftIO $ do
-    result <- g_main_depth
-    return result
-
-
--- function g_main_current_source
--- Args : []
--- Lengths : []
--- returnType : TInterface "GLib" "Source"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_main_current_source" g_main_current_source :: 
-    IO (Ptr Source)
-
-
-mainCurrentSource ::
-    (MonadIO m) =>
-    m Source                                -- result
-mainCurrentSource  = liftIO $ do
-    result <- g_main_current_source
-    checkUnexpectedReturnNULL "g_main_current_source" result
-    result' <- (newBoxed Source) result
-    return result'
-
-
--- function g_log_set_handler_full
--- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_levels", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_func", argType = TInterface "GLib" "LogFunc", 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}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_log_set_handler_full" g_log_set_handler_full :: 
-    CString ->                              -- log_domain : TBasicType TUTF8
-    CUInt ->                                -- log_levels : TInterface "GLib" "LogLevelFlags"
-    FunPtr LogFuncC ->                      -- log_func : TInterface "GLib" "LogFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- destroy : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-logSetHandler ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- logDomain
-    -> [LogLevelFlags]                      -- logLevels
-    -> LogFunc                              -- logFunc
-    -> m Word32                             -- result
-logSetHandler logDomain logLevels logFunc = liftIO $ do
-    maybeLogDomain <- case logDomain of
-        Nothing -> return nullPtr
-        Just jLogDomain -> do
-            jLogDomain' <- textToCString jLogDomain
-            return jLogDomain'
-    let logLevels' = gflagsToWord logLevels
-    logFunc' <- mkLogFunc (logFuncWrapper Nothing logFunc)
-    let userData = castFunPtrToPtr logFunc'
-    let destroy = safeFreeFunPtrPtr
-    result <- g_log_set_handler_full maybeLogDomain logLevels' logFunc' userData destroy
-    freeMem maybeLogDomain
-    return result
-
-
--- function g_log_set_fatal_mask
--- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fatal_mask", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "LogLevelFlags"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_log_set_fatal_mask" g_log_set_fatal_mask :: 
-    CString ->                              -- log_domain : TBasicType TUTF8
-    CUInt ->                                -- fatal_mask : TInterface "GLib" "LogLevelFlags"
-    IO CUInt
-
-
-logSetFatalMask ::
-    (MonadIO m) =>
-    T.Text                                  -- logDomain
-    -> [LogLevelFlags]                      -- fatalMask
-    -> m [LogLevelFlags]                    -- result
-logSetFatalMask logDomain fatalMask = liftIO $ do
-    logDomain' <- textToCString logDomain
-    let fatalMask' = gflagsToWord fatalMask
-    result <- g_log_set_fatal_mask logDomain' fatalMask'
-    let result' = wordToGFlags result
-    freeMem logDomain'
-    return result'
-
-
--- function g_log_set_always_fatal
--- Args : [Arg {argCName = "fatal_mask", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "LogLevelFlags"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_log_set_always_fatal" g_log_set_always_fatal :: 
-    CUInt ->                                -- fatal_mask : TInterface "GLib" "LogLevelFlags"
-    IO CUInt
-
-
-logSetAlwaysFatal ::
-    (MonadIO m) =>
-    [LogLevelFlags]                         -- fatalMask
-    -> m [LogLevelFlags]                    -- result
-logSetAlwaysFatal fatalMask = liftIO $ do
-    let fatalMask' = gflagsToWord fatalMask
-    result <- g_log_set_always_fatal fatalMask'
-    let result' = wordToGFlags result
-    return result'
-
-
--- function g_log_remove_handler
--- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_log_remove_handler" g_log_remove_handler :: 
-    CString ->                              -- log_domain : TBasicType TUTF8
-    Word32 ->                               -- handler_id : TBasicType TUInt32
-    IO ()
-
-
-logRemoveHandler ::
-    (MonadIO m) =>
-    T.Text                                  -- logDomain
-    -> Word32                               -- handlerId
-    -> m ()                                 -- result
-logRemoveHandler logDomain handlerId = liftIO $ do
-    logDomain' <- textToCString logDomain
-    g_log_remove_handler logDomain' handlerId
-    freeMem logDomain'
-    return ()
-
-
--- function g_log_default_handler
--- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_level", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unused_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_log_default_handler" g_log_default_handler :: 
-    CString ->                              -- log_domain : TBasicType TUTF8
-    CUInt ->                                -- log_level : TInterface "GLib" "LogLevelFlags"
-    CString ->                              -- message : TBasicType TUTF8
-    Ptr () ->                               -- unused_data : TBasicType TVoid
-    IO ()
-
-
-logDefaultHandler ::
-    (MonadIO m) =>
-    T.Text                                  -- logDomain
-    -> [LogLevelFlags]                      -- logLevel
-    -> T.Text                               -- message
-    -> Ptr ()                               -- unusedData
-    -> m ()                                 -- result
-logDefaultHandler logDomain logLevel message unusedData = liftIO $ do
-    logDomain' <- textToCString logDomain
-    let logLevel' = gflagsToWord logLevel
-    message' <- textToCString message
-    g_log_default_handler logDomain' logLevel' message' unusedData
-    freeMem logDomain'
-    freeMem message'
-    return ()
-
-
--- function g_locale_to_utf8
--- Args : [Arg {argCName = "opsysstring", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_locale_to_utf8" g_locale_to_utf8 :: 
-    CString ->                              -- opsysstring : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    Word64 ->                               -- bytes_read : TBasicType TUInt64
-    Word64 ->                               -- bytes_written : TBasicType TUInt64
-    Ptr (Ptr GError) ->                     -- error
-    IO CString
-
-
-localeToUtf8 ::
-    (MonadIO m) =>
-    T.Text                                  -- opsysstring
-    -> Int64                                -- len
-    -> Word64                               -- bytesRead
-    -> Word64                               -- bytesWritten
-    -> m T.Text                             -- result
-localeToUtf8 opsysstring len bytesRead bytesWritten = liftIO $ do
-    opsysstring' <- textToCString opsysstring
-    onException (do
-        result <- propagateGError $ g_locale_to_utf8 opsysstring' len bytesRead bytesWritten
-        checkUnexpectedReturnNULL "g_locale_to_utf8" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem opsysstring'
-        return result'
-     ) (do
-        freeMem opsysstring'
-     )
-
-
--- function g_locale_from_utf8
--- Args : [Arg {argCName = "utf8string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_locale_from_utf8" g_locale_from_utf8 :: 
-    CString ->                              -- utf8string : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    Word64 ->                               -- bytes_read : TBasicType TUInt64
-    Word64 ->                               -- bytes_written : TBasicType TUInt64
-    Ptr (Ptr GError) ->                     -- error
-    IO CString
-
-
-localeFromUtf8 ::
-    (MonadIO m) =>
-    T.Text                                  -- utf8string
-    -> Int64                                -- len
-    -> Word64                               -- bytesRead
-    -> Word64                               -- bytesWritten
-    -> m T.Text                             -- result
-localeFromUtf8 utf8string len bytesRead bytesWritten = liftIO $ do
-    utf8string' <- textToCString utf8string
-    onException (do
-        result <- propagateGError $ g_locale_from_utf8 utf8string' len bytesRead bytesWritten
-        checkUnexpectedReturnNULL "g_locale_from_utf8" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem utf8string'
-        return result'
-     ) (do
-        freeMem utf8string'
-     )
-
-
--- function g_listenv
--- Args : []
--- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_listenv" g_listenv :: 
-    IO (Ptr CString)
-
-
-listenv ::
-    (MonadIO m) =>
-    m [T.Text]                              -- result
-listenv  = liftIO $ do
-    result <- g_listenv
-    checkUnexpectedReturnNULL "g_listenv" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    return result'
-
-
--- function g_io_create_watch
--- Args : [Arg {argCName = "channel", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "Source"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_io_create_watch" g_io_create_watch :: 
-    Ptr IOChannel ->                        -- channel : TInterface "GLib" "IOChannel"
-    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
-    IO (Ptr Source)
-
-
-ioCreateWatch ::
-    (MonadIO m) =>
-    IOChannel                               -- channel
-    -> [IOCondition]                        -- condition
-    -> m Source                             -- result
-ioCreateWatch channel condition = liftIO $ do
-    let channel' = unsafeManagedPtrGetPtr channel
-    let condition' = gflagsToWord condition
-    result <- g_io_create_watch channel' condition'
-    checkUnexpectedReturnNULL "g_io_create_watch" result
-    result' <- (wrapBoxed Source) result
-    touchManagedPtr channel
-    return result'
-
-
--- function g_io_add_watch_full
--- Args : [Arg {argCName = "channel", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "IOFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, 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 = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_io_add_watch_full" g_io_add_watch_full :: 
-    Ptr IOChannel ->                        -- channel : TInterface "GLib" "IOChannel"
-    Int32 ->                                -- priority : TBasicType TInt32
-    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
-    FunPtr IOFuncC ->                       -- func : TInterface "GLib" "IOFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-ioAddWatch ::
-    (MonadIO m) =>
-    IOChannel                               -- channel
-    -> Int32                                -- priority
-    -> [IOCondition]                        -- condition
-    -> IOFunc                               -- func
-    -> m Word32                             -- result
-ioAddWatch channel priority condition func = liftIO $ do
-    let channel' = unsafeManagedPtrGetPtr channel
-    let condition' = gflagsToWord condition
-    func' <- mkIOFunc (iOFuncWrapper Nothing func)
-    let userData = castFunPtrToPtr func'
-    let notify = safeFreeFunPtrPtr
-    result <- g_io_add_watch_full channel' priority condition' func' userData notify
-    touchManagedPtr channel
-    return result
-
-
--- function g_intern_string
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_intern_string" g_intern_string :: 
-    CString ->                              -- string : TBasicType TUTF8
-    IO CString
-
-
-internString ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- string
-    -> m T.Text                             -- result
-internString string = liftIO $ do
-    maybeString <- case string of
-        Nothing -> return nullPtr
-        Just jString -> do
-            jString' <- textToCString jString
-            return jString'
-    result <- g_intern_string maybeString
-    checkUnexpectedReturnNULL "g_intern_string" result
-    result' <- cstringToText result
-    freeMem maybeString
-    return result'
-
-
--- function g_intern_static_string
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_intern_static_string" g_intern_static_string :: 
-    CString ->                              -- string : TBasicType TUTF8
-    IO CString
-
-
-internStaticString ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- string
-    -> m T.Text                             -- result
-internStaticString string = liftIO $ do
-    maybeString <- case string of
-        Nothing -> return nullPtr
-        Just jString -> do
-            jString' <- textToCString jString
-            return jString'
-    result <- g_intern_static_string maybeString
-    checkUnexpectedReturnNULL "g_intern_static_string" result
-    result' <- cstringToText result
-    freeMem maybeString
-    return result'
-
-
--- function g_int_hash
--- Args : [Arg {argCName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_int_hash" g_int_hash :: 
-    Ptr () ->                               -- v : TBasicType TVoid
-    IO Word32
-
-
-intHash ::
-    (MonadIO m) =>
-    Ptr ()                                  -- v
-    -> m Word32                             -- result
-intHash v = liftIO $ do
-    result <- g_int_hash v
-    return result
-
-
--- function g_int_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}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_int_equal" g_int_equal :: 
-    Ptr () ->                               -- v1 : TBasicType TVoid
-    Ptr () ->                               -- v2 : TBasicType TVoid
-    IO CInt
-
-
-intEqual ::
-    (MonadIO m) =>
-    Ptr ()                                  -- v1
-    -> Ptr ()                               -- v2
-    -> m Bool                               -- result
-intEqual v1 v2 = liftIO $ do
-    result <- g_int_equal v1 v2
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_int64_hash
--- Args : [Arg {argCName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_int64_hash" g_int64_hash :: 
-    Ptr () ->                               -- v : TBasicType TVoid
-    IO Word32
-
-
-int64Hash ::
-    (MonadIO m) =>
-    Ptr ()                                  -- v
-    -> m Word32                             -- result
-int64Hash v = liftIO $ do
-    result <- g_int64_hash v
-    return result
-
-
--- function g_int64_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}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_int64_equal" g_int64_equal :: 
-    Ptr () ->                               -- v1 : TBasicType TVoid
-    Ptr () ->                               -- v2 : TBasicType TVoid
-    IO CInt
-
-
-int64Equal ::
-    (MonadIO m) =>
-    Ptr ()                                  -- v1
-    -> Ptr ()                               -- v2
-    -> m Bool                               -- result
-int64Equal v1 v2 = liftIO $ do
-    result <- g_int64_equal v1 v2
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_idle_source_new
--- Args : []
--- Lengths : []
--- returnType : TInterface "GLib" "Source"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_idle_source_new" g_idle_source_new :: 
-    IO (Ptr Source)
-
-
-idleSourceNew ::
-    (MonadIO m) =>
-    m Source                                -- result
-idleSourceNew  = liftIO $ do
-    result <- g_idle_source_new
-    checkUnexpectedReturnNULL "g_idle_source_new" result
-    result' <- (wrapBoxed Source) result
-    return result'
-
-
--- function g_idle_remove_by_data
--- Args : [Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_idle_remove_by_data" g_idle_remove_by_data :: 
-    Ptr () ->                               -- data : TBasicType TVoid
-    IO CInt
-
-
-idleRemoveByData ::
-    (MonadIO m) =>
-    Ptr ()                                  -- data_
-    -> m Bool                               -- result
-idleRemoveByData data_ = liftIO $ do
-    result <- g_idle_remove_by_data data_
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_idle_add_full
--- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_idle_add_full" g_idle_add_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-idleAdd ::
-    (MonadIO m) =>
-    Int32                                   -- priority
-    -> SourceFunc                           -- function
-    -> m Word32                             -- result
-idleAdd priority function = liftIO $ do
-    function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
-    let data_ = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- g_idle_add_full priority function' data_ notify
-    return result
-
-
--- function g_iconv
--- Args : [Arg {argCName = "converter", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "inbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "inbytes_left", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "outbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "outbytes_left", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_iconv" g_iconv :: 
-    Ptr IConv ->                            -- converter : TInterface "GLib" "IConv"
-    CString ->                              -- inbuf : TBasicType TUTF8
-    Word64 ->                               -- inbytes_left : TBasicType TUInt64
-    CString ->                              -- outbuf : TBasicType TUTF8
-    Word64 ->                               -- outbytes_left : TBasicType TUInt64
-    IO Word64
-
-
-iconv ::
-    (MonadIO m) =>
-    IConv                                   -- converter
-    -> T.Text                               -- inbuf
-    -> Word64                               -- inbytesLeft
-    -> T.Text                               -- outbuf
-    -> Word64                               -- outbytesLeft
-    -> m Word64                             -- result
-iconv converter inbuf inbytesLeft outbuf outbytesLeft = liftIO $ do
-    let converter' = unsafeManagedPtrGetPtr converter
-    inbuf' <- textToCString inbuf
-    outbuf' <- textToCString outbuf
-    result <- g_iconv converter' inbuf' inbytesLeft outbuf' outbytesLeft
-    touchManagedPtr converter
-    freeMem inbuf'
-    freeMem outbuf'
-    return result
-
-
--- function g_hostname_to_unicode
--- 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
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_hostname_to_unicode" g_hostname_to_unicode :: 
-    CString ->                              -- hostname : TBasicType TUTF8
-    IO CString
-
-
-hostnameToUnicode ::
-    (MonadIO m) =>
-    T.Text                                  -- hostname
-    -> m T.Text                             -- result
-hostnameToUnicode hostname = liftIO $ do
-    hostname' <- textToCString hostname
-    result <- g_hostname_to_unicode hostname'
-    checkUnexpectedReturnNULL "g_hostname_to_unicode" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem hostname'
-    return result'
-
-
--- function g_hostname_to_ascii
--- 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
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_hostname_to_ascii" g_hostname_to_ascii :: 
-    CString ->                              -- hostname : TBasicType TUTF8
-    IO CString
-
-
-hostnameToAscii ::
-    (MonadIO m) =>
-    T.Text                                  -- hostname
-    -> m T.Text                             -- result
-hostnameToAscii hostname = liftIO $ do
-    hostname' <- textToCString hostname
-    result <- g_hostname_to_ascii hostname'
-    checkUnexpectedReturnNULL "g_hostname_to_ascii" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem hostname'
-    return result'
-
-
--- function g_hostname_is_non_ascii
--- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_hostname_is_non_ascii" g_hostname_is_non_ascii :: 
-    CString ->                              -- hostname : TBasicType TUTF8
-    IO CInt
-
-
-hostnameIsNonAscii ::
-    (MonadIO m) =>
-    T.Text                                  -- hostname
-    -> m Bool                               -- result
-hostnameIsNonAscii hostname = liftIO $ do
-    hostname' <- textToCString hostname
-    result <- g_hostname_is_non_ascii hostname'
-    let result' = (/= 0) result
-    freeMem hostname'
-    return result'
-
-
--- function g_hostname_is_ip_address
--- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_hostname_is_ip_address" g_hostname_is_ip_address :: 
-    CString ->                              -- hostname : TBasicType TUTF8
-    IO CInt
-
-
-hostnameIsIpAddress ::
-    (MonadIO m) =>
-    T.Text                                  -- hostname
-    -> m Bool                               -- result
-hostnameIsIpAddress hostname = liftIO $ do
-    hostname' <- textToCString hostname
-    result <- g_hostname_is_ip_address hostname'
-    let result' = (/= 0) result
-    freeMem hostname'
-    return result'
-
-
--- function g_hostname_is_ascii_encoded
--- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_hostname_is_ascii_encoded" g_hostname_is_ascii_encoded :: 
-    CString ->                              -- hostname : TBasicType TUTF8
-    IO CInt
-
-
-hostnameIsAsciiEncoded ::
-    (MonadIO m) =>
-    T.Text                                  -- hostname
-    -> m Bool                               -- result
-hostnameIsAsciiEncoded hostname = liftIO $ do
-    hostname' <- textToCString hostname
-    result <- g_hostname_is_ascii_encoded hostname'
-    let result' = (/= 0) result
-    freeMem hostname'
-    return result'
-
-
--- function g_getenv
--- Args : [Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_getenv" g_getenv :: 
-    CString ->                              -- variable : TBasicType TUTF8
-    IO CString
-
-
-getenv ::
-    (MonadIO m) =>
-    T.Text                                  -- variable
-    -> m T.Text                             -- result
-getenv variable = liftIO $ do
-    variable' <- textToCString variable
-    result <- g_getenv variable'
-    checkUnexpectedReturnNULL "g_getenv" result
-    result' <- cstringToText result
-    freeMem variable'
-    return result'
-
-
--- function g_get_user_special_dir
--- Args : [Arg {argCName = "directory", argType = TInterface "GLib" "UserDirectory", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_user_special_dir" g_get_user_special_dir :: 
-    CUInt ->                                -- directory : TInterface "GLib" "UserDirectory"
-    IO CString
-
-
-getUserSpecialDir ::
-    (MonadIO m) =>
-    UserDirectory                           -- directory
-    -> m T.Text                             -- result
-getUserSpecialDir directory = liftIO $ do
-    let directory' = (fromIntegral . fromEnum) directory
-    result <- g_get_user_special_dir directory'
-    checkUnexpectedReturnNULL "g_get_user_special_dir" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_user_runtime_dir
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_user_runtime_dir" g_get_user_runtime_dir :: 
-    IO CString
-
-
-getUserRuntimeDir ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getUserRuntimeDir  = liftIO $ do
-    result <- g_get_user_runtime_dir
-    checkUnexpectedReturnNULL "g_get_user_runtime_dir" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_user_name
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_user_name" g_get_user_name :: 
-    IO CString
-
-
-getUserName ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getUserName  = liftIO $ do
-    result <- g_get_user_name
-    checkUnexpectedReturnNULL "g_get_user_name" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_user_data_dir
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_user_data_dir" g_get_user_data_dir :: 
-    IO CString
-
-
-getUserDataDir ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getUserDataDir  = liftIO $ do
-    result <- g_get_user_data_dir
-    checkUnexpectedReturnNULL "g_get_user_data_dir" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_user_config_dir
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_user_config_dir" g_get_user_config_dir :: 
-    IO CString
-
-
-getUserConfigDir ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getUserConfigDir  = liftIO $ do
-    result <- g_get_user_config_dir
-    checkUnexpectedReturnNULL "g_get_user_config_dir" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_user_cache_dir
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_user_cache_dir" g_get_user_cache_dir :: 
-    IO CString
-
-
-getUserCacheDir ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getUserCacheDir  = liftIO $ do
-    result <- g_get_user_cache_dir
-    checkUnexpectedReturnNULL "g_get_user_cache_dir" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_tmp_dir
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_tmp_dir" g_get_tmp_dir :: 
-    IO CString
-
-
-getTmpDir ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getTmpDir  = liftIO $ do
-    result <- g_get_tmp_dir
-    checkUnexpectedReturnNULL "g_get_tmp_dir" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_system_data_dirs
--- Args : []
--- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_system_data_dirs" g_get_system_data_dirs :: 
-    IO (Ptr CString)
-
-
-getSystemDataDirs ::
-    (MonadIO m) =>
-    m [T.Text]                              -- result
-getSystemDataDirs  = liftIO $ do
-    result <- g_get_system_data_dirs
-    checkUnexpectedReturnNULL "g_get_system_data_dirs" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    return result'
-
-
--- function g_get_system_config_dirs
--- Args : []
--- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_system_config_dirs" g_get_system_config_dirs :: 
-    IO (Ptr CString)
-
-
-getSystemConfigDirs ::
-    (MonadIO m) =>
-    m [T.Text]                              -- result
-getSystemConfigDirs  = liftIO $ do
-    result <- g_get_system_config_dirs
-    checkUnexpectedReturnNULL "g_get_system_config_dirs" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    return result'
-
-
--- function g_get_real_time
--- Args : []
--- Lengths : []
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_real_time" g_get_real_time :: 
-    IO Int64
-
-
-getRealTime ::
-    (MonadIO m) =>
-    m Int64                                 -- result
-getRealTime  = liftIO $ do
-    result <- g_get_real_time
-    return result
-
-
--- function g_get_real_name
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_real_name" g_get_real_name :: 
-    IO CString
-
-
-getRealName ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getRealName  = liftIO $ do
-    result <- g_get_real_name
-    checkUnexpectedReturnNULL "g_get_real_name" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_prgname
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_prgname" g_get_prgname :: 
-    IO CString
-
-
-getPrgname ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getPrgname  = liftIO $ do
-    result <- g_get_prgname
-    checkUnexpectedReturnNULL "g_get_prgname" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_num_processors
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_num_processors" g_get_num_processors :: 
-    IO Word32
-
-
-getNumProcessors ::
-    (MonadIO m) =>
-    m Word32                                -- result
-getNumProcessors  = liftIO $ do
-    result <- g_get_num_processors
-    return result
-
-
--- function g_get_monotonic_time
--- Args : []
--- Lengths : []
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_monotonic_time" g_get_monotonic_time :: 
-    IO Int64
-
-
-getMonotonicTime ::
-    (MonadIO m) =>
-    m Int64                                 -- result
-getMonotonicTime  = liftIO $ do
-    result <- g_get_monotonic_time
-    return result
-
-
--- function g_get_locale_variants
--- Args : [Arg {argCName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_locale_variants" g_get_locale_variants :: 
-    CString ->                              -- locale : TBasicType TUTF8
-    IO (Ptr CString)
-
-
-getLocaleVariants ::
-    (MonadIO m) =>
-    T.Text                                  -- locale
-    -> m [T.Text]                           -- result
-getLocaleVariants locale = liftIO $ do
-    locale' <- textToCString locale
-    result <- g_get_locale_variants locale'
-    checkUnexpectedReturnNULL "g_get_locale_variants" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    freeMem locale'
-    return result'
-
-
--- function g_get_language_names
--- Args : []
--- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_language_names" g_get_language_names :: 
-    IO (Ptr CString)
-
-
-getLanguageNames ::
-    (MonadIO m) =>
-    m [T.Text]                              -- result
-getLanguageNames  = liftIO $ do
-    result <- g_get_language_names
-    checkUnexpectedReturnNULL "g_get_language_names" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    return result'
-
-
--- function g_get_host_name
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_host_name" g_get_host_name :: 
-    IO CString
-
-
-getHostName ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getHostName  = liftIO $ do
-    result <- g_get_host_name
-    checkUnexpectedReturnNULL "g_get_host_name" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_home_dir
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_home_dir" g_get_home_dir :: 
-    IO CString
-
-
-getHomeDir ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getHomeDir  = liftIO $ do
-    result <- g_get_home_dir
-    checkUnexpectedReturnNULL "g_get_home_dir" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_get_filename_charsets
--- Args : [Arg {argCName = "charsets", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_filename_charsets" g_get_filename_charsets :: 
-    CString ->                              -- charsets : TBasicType TUTF8
-    IO CInt
-
-
-getFilenameCharsets ::
-    (MonadIO m) =>
-    T.Text                                  -- charsets
-    -> m Bool                               -- result
-getFilenameCharsets charsets = liftIO $ do
-    charsets' <- textToCString charsets
-    result <- g_get_filename_charsets charsets'
-    let result' = (/= 0) result
-    freeMem charsets'
-    return result'
-
-
--- function g_get_environ
--- Args : []
--- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_environ" g_get_environ :: 
-    IO (Ptr CString)
-
-
-getEnviron ::
-    (MonadIO m) =>
-    m [T.Text]                              -- result
-getEnviron  = liftIO $ do
-    result <- g_get_environ
-    checkUnexpectedReturnNULL "g_get_environ" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    return result'
-
-
--- function g_get_current_time
--- Args : [Arg {argCName = "result", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_current_time" g_get_current_time :: 
-    Ptr TimeVal ->                          -- result : TInterface "GLib" "TimeVal"
-    IO ()
-
-
-getCurrentTime ::
-    (MonadIO m) =>
-    TimeVal                                 -- result_
-    -> m ()                                 -- result
-getCurrentTime result_ = liftIO $ do
-    let result_' = unsafeManagedPtrGetPtr result_
-    g_get_current_time result_'
-    touchManagedPtr result_
-    return ()
-
-
--- function g_get_current_dir
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_current_dir" g_get_current_dir :: 
-    IO CString
-
-
-getCurrentDir ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getCurrentDir  = liftIO $ do
-    result <- g_get_current_dir
-    checkUnexpectedReturnNULL "g_get_current_dir" result
-    result' <- cstringToText result
-    freeMem result
-    return result'
-
-
--- function g_get_codeset
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_codeset" g_get_codeset :: 
-    IO CString
-
-
-getCodeset ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getCodeset  = liftIO $ do
-    result <- g_get_codeset
-    checkUnexpectedReturnNULL "g_get_codeset" result
-    result' <- cstringToText result
-    freeMem result
-    return result'
-
-
--- function g_get_charset
--- Args : [Arg {argCName = "charset", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_charset" g_get_charset :: 
-    Ptr CString ->                          -- charset : TBasicType TUTF8
-    IO CInt
-
-
-getCharset ::
-    (MonadIO m) =>
-    m (Bool,T.Text)                         -- result
-getCharset  = liftIO $ do
-    charset <- allocMem :: IO (Ptr CString)
-    result <- g_get_charset charset
-    let result' = (/= 0) result
-    charset' <- peek charset
-    charset'' <- cstringToText charset'
-    freeMem charset
-    return (result', charset'')
-
-
--- function g_get_application_name
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_get_application_name" g_get_application_name :: 
-    IO CString
-
-
-getApplicationName ::
-    (MonadIO m) =>
-    m T.Text                                -- result
-getApplicationName  = liftIO $ do
-    result <- g_get_application_name
-    checkUnexpectedReturnNULL "g_get_application_name" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_free
--- Args : [Arg {argCName = "mem", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_free" g_free :: 
-    Ptr () ->                               -- mem : TBasicType TVoid
-    IO ()
-
-
-free ::
-    (MonadIO m) =>
-    Maybe (Ptr ())                          -- mem
-    -> m ()                                 -- result
-free mem = liftIO $ do
-    maybeMem <- case mem of
-        Nothing -> return nullPtr
-        Just jMem -> do
-            return jMem
-    g_free maybeMem
-    return ()
-
-
--- function g_format_size_full
--- Args : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "FormatSizeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_format_size_full" g_format_size_full :: 
-    Word64 ->                               -- size : TBasicType TUInt64
-    CUInt ->                                -- flags : TInterface "GLib" "FormatSizeFlags"
-    IO CString
-
-
-formatSizeFull ::
-    (MonadIO m) =>
-    Word64                                  -- size
-    -> [FormatSizeFlags]                    -- flags
-    -> m T.Text                             -- result
-formatSizeFull size flags = liftIO $ do
-    let flags' = gflagsToWord flags
-    result <- g_format_size_full size flags'
-    checkUnexpectedReturnNULL "g_format_size_full" result
-    result' <- cstringToText result
-    freeMem result
-    return result'
-
-
--- function g_format_size_for_display
--- Args : [Arg {argCName = "size", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_format_size_for_display" g_format_size_for_display :: 
-    Int64 ->                                -- size : TBasicType TInt64
-    IO CString
-
-{-# DEPRECATED formatSizeForDisplay ["(Since version 2.30)","This function is broken due to its use of SI","    suffixes to denote IEC units. Use g_format_size() instead."]#-}
-formatSizeForDisplay ::
-    (MonadIO m) =>
-    Int64                                   -- size
-    -> m T.Text                             -- result
-formatSizeForDisplay size = liftIO $ do
-    result <- g_format_size_for_display size
-    checkUnexpectedReturnNULL "g_format_size_for_display" result
-    result' <- cstringToText result
-    freeMem result
-    return result'
-
-
--- function g_format_size
--- Args : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_format_size" g_format_size :: 
-    Word64 ->                               -- size : TBasicType TUInt64
-    IO CString
-
-
-formatSize ::
-    (MonadIO m) =>
-    Word64                                  -- size
-    -> m T.Text                             -- result
-formatSize size = liftIO $ do
-    result <- g_format_size size
-    checkUnexpectedReturnNULL "g_format_size" result
-    result' <- cstringToText result
-    freeMem result
-    return result'
-
-
--- function g_find_program_in_path
--- Args : [Arg {argCName = "program", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_find_program_in_path" g_find_program_in_path :: 
-    CString ->                              -- program : TBasicType TUTF8
-    IO CString
-
-
-findProgramInPath ::
-    (MonadIO m) =>
-    T.Text                                  -- program
-    -> m T.Text                             -- result
-findProgramInPath program = liftIO $ do
-    program' <- textToCString program
-    result <- g_find_program_in_path program'
-    checkUnexpectedReturnNULL "g_find_program_in_path" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem program'
-    return result'
-
-
--- function g_filename_to_utf8
--- Args : [Arg {argCName = "opsysstring", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_filename_to_utf8" g_filename_to_utf8 :: 
-    CString ->                              -- opsysstring : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    Word64 ->                               -- bytes_read : TBasicType TUInt64
-    Word64 ->                               -- bytes_written : TBasicType TUInt64
-    Ptr (Ptr GError) ->                     -- error
-    IO CString
-
-
-filenameToUtf8 ::
-    (MonadIO m) =>
-    T.Text                                  -- opsysstring
-    -> Int64                                -- len
-    -> Word64                               -- bytesRead
-    -> Word64                               -- bytesWritten
-    -> m T.Text                             -- result
-filenameToUtf8 opsysstring len bytesRead bytesWritten = liftIO $ do
-    opsysstring' <- textToCString opsysstring
-    onException (do
-        result <- propagateGError $ g_filename_to_utf8 opsysstring' len bytesRead bytesWritten
-        checkUnexpectedReturnNULL "g_filename_to_utf8" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem opsysstring'
-        return result'
-     ) (do
-        freeMem opsysstring'
-     )
-
-
--- function g_filename_to_uri
--- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_filename_to_uri" g_filename_to_uri :: 
-    CString ->                              -- filename : TBasicType TUTF8
-    CString ->                              -- hostname : TBasicType TUTF8
-    Ptr (Ptr GError) ->                     -- error
-    IO CString
-
-
-filenameToUri ::
-    (MonadIO m) =>
-    T.Text                                  -- filename
-    -> Maybe (T.Text)                       -- hostname
-    -> m T.Text                             -- result
-filenameToUri filename hostname = liftIO $ do
-    filename' <- textToCString filename
-    maybeHostname <- case hostname of
-        Nothing -> return nullPtr
-        Just jHostname -> do
-            jHostname' <- textToCString jHostname
-            return jHostname'
-    onException (do
-        result <- propagateGError $ g_filename_to_uri filename' maybeHostname
-        checkUnexpectedReturnNULL "g_filename_to_uri" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem filename'
-        freeMem maybeHostname
-        return result'
-     ) (do
-        freeMem filename'
-        freeMem maybeHostname
-     )
-
-
--- function g_filename_from_utf8
--- Args : [Arg {argCName = "utf8string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : [Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TCArray False (-1) 3 (TBasicType TUInt8)
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_filename_from_utf8" g_filename_from_utf8 :: 
-    CString ->                              -- utf8string : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    Ptr Word64 ->                           -- bytes_read : TBasicType TUInt64
-    Ptr Word64 ->                           -- bytes_written : TBasicType TUInt64
-    Ptr (Ptr GError) ->                     -- error
-    IO (Ptr Word8)
-
-
-filenameFromUtf8 ::
-    (MonadIO m) =>
-    T.Text                                  -- utf8string
-    -> Int64                                -- len
-    -> m (ByteString,Word64)                -- result
-filenameFromUtf8 utf8string len = liftIO $ do
-    utf8string' <- textToCString utf8string
-    bytesRead <- allocMem :: IO (Ptr Word64)
-    bytesWritten <- allocMem :: IO (Ptr Word64)
-    onException (do
-        result <- propagateGError $ g_filename_from_utf8 utf8string' len bytesRead bytesWritten
-        bytesWritten' <- peek bytesWritten
-        checkUnexpectedReturnNULL "g_filename_from_utf8" result
-        result' <- (unpackByteStringWithLength bytesWritten') result
-        freeMem result
-        bytesRead' <- peek bytesRead
-        freeMem utf8string'
-        freeMem bytesRead
-        freeMem bytesWritten
-        return (result', bytesRead')
-     ) (do
-        freeMem utf8string'
-        freeMem bytesRead
-        freeMem bytesWritten
-     )
-
-
--- function g_filename_from_uri
--- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : []
--- returnType : TBasicType TFileName
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_filename_from_uri" g_filename_from_uri :: 
-    CString ->                              -- uri : TBasicType TUTF8
-    Ptr CString ->                          -- hostname : TBasicType TUTF8
-    Ptr (Ptr GError) ->                     -- error
-    IO CString
-
-
-filenameFromUri ::
-    (MonadIO m) =>
-    T.Text                                  -- uri
-    -> m ([Char],T.Text)                    -- result
-filenameFromUri uri = liftIO $ do
-    uri' <- textToCString uri
-    hostname <- allocMem :: IO (Ptr CString)
-    onException (do
-        result <- propagateGError $ g_filename_from_uri uri' hostname
-        checkUnexpectedReturnNULL "g_filename_from_uri" result
-        result' <- cstringToString result
-        freeMem result
-        hostname' <- peek hostname
-        hostname'' <- cstringToText hostname'
-        freeMem hostname'
-        freeMem uri'
-        freeMem hostname
-        return (result', hostname'')
-     ) (do
-        freeMem uri'
-        freeMem hostname
-     )
-
-
--- function g_filename_display_name
--- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_filename_display_name" g_filename_display_name :: 
-    CString ->                              -- filename : TBasicType TUTF8
-    IO CString
-
-
-filenameDisplayName ::
-    (MonadIO m) =>
-    T.Text                                  -- filename
-    -> m T.Text                             -- result
-filenameDisplayName filename = liftIO $ do
-    filename' <- textToCString filename
-    result <- g_filename_display_name filename'
-    checkUnexpectedReturnNULL "g_filename_display_name" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem filename'
-    return result'
-
-
--- function g_filename_display_basename
--- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_filename_display_basename" g_filename_display_basename :: 
-    CString ->                              -- filename : TBasicType TUTF8
-    IO CString
-
-
-filenameDisplayBasename ::
-    (MonadIO m) =>
-    T.Text                                  -- filename
-    -> m T.Text                             -- result
-filenameDisplayBasename filename = liftIO $ do
-    filename' <- textToCString filename
-    result <- g_filename_display_basename filename'
-    checkUnexpectedReturnNULL "g_filename_display_basename" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem filename'
-    return result'
-
-
--- function g_file_test
--- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test", argType = TInterface "GLib" "FileTest", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_file_test" g_file_test :: 
-    CString ->                              -- filename : TBasicType TUTF8
-    CUInt ->                                -- test : TInterface "GLib" "FileTest"
-    IO CInt
-
-
-fileTest ::
-    (MonadIO m) =>
-    T.Text                                  -- filename
-    -> [FileTest]                           -- test
-    -> m Bool                               -- result
-fileTest filename test = liftIO $ do
-    filename' <- textToCString filename
-    let test' = gflagsToWord test
-    result <- g_file_test filename' test'
-    let result' = (/= 0) result
-    freeMem filename'
-    return result'
-
-
--- function g_file_set_contents
--- Args : [Arg {argCName = "filename", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "contents", 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : [Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_file_set_contents" g_file_set_contents :: 
-    CString ->                              -- filename : TBasicType TFileName
-    Ptr Word8 ->                            -- contents : TCArray False (-1) 2 (TBasicType TUInt8)
-    Int64 ->                                -- length : TBasicType TInt64
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-fileSetContents ::
-    (MonadIO m) =>
-    [Char]                                  -- filename
-    -> ByteString                           -- contents
-    -> m ()                                 -- result
-fileSetContents filename contents = liftIO $ do
-    let length_ = fromIntegral $ B.length contents
-    filename' <- stringToCString filename
-    contents' <- packByteString contents
-    onException (do
-        _ <- propagateGError $ g_file_set_contents filename' contents' length_
-        freeMem filename'
-        freeMem contents'
-        return ()
-     ) (do
-        freeMem filename'
-        freeMem contents'
-     )
-
-
--- function g_file_read_link
--- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_file_read_link" g_file_read_link :: 
-    CString ->                              -- filename : TBasicType TUTF8
-    Ptr (Ptr GError) ->                     -- error
-    IO CString
-
-
-fileReadLink ::
-    (MonadIO m) =>
-    T.Text                                  -- filename
-    -> m T.Text                             -- result
-fileReadLink filename = liftIO $ do
-    filename' <- textToCString filename
-    onException (do
-        result <- propagateGError $ g_file_read_link filename'
-        checkUnexpectedReturnNULL "g_file_read_link" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem filename'
-        return result'
-     ) (do
-        freeMem filename'
-     )
-
-
--- function g_file_open_tmp
--- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name_used", argType = TBasicType TFileName, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_file_open_tmp" g_file_open_tmp :: 
-    CString ->                              -- tmpl : TBasicType TFileName
-    Ptr CString ->                          -- name_used : TBasicType TFileName
-    Ptr (Ptr GError) ->                     -- error
-    IO Int32
-
-
-fileOpenTmp ::
-    (MonadIO m) =>
-    Maybe ([Char])                          -- tmpl
-    -> m (Int32,[Char])                     -- result
-fileOpenTmp tmpl = liftIO $ do
-    maybeTmpl <- case tmpl of
-        Nothing -> return nullPtr
-        Just jTmpl -> do
-            jTmpl' <- stringToCString jTmpl
-            return jTmpl'
-    nameUsed <- allocMem :: IO (Ptr CString)
-    onException (do
-        result <- propagateGError $ g_file_open_tmp maybeTmpl nameUsed
-        nameUsed' <- peek nameUsed
-        nameUsed'' <- cstringToString nameUsed'
-        freeMem nameUsed'
-        freeMem maybeTmpl
-        freeMem nameUsed
-        return (result, nameUsed'')
-     ) (do
-        freeMem maybeTmpl
-        freeMem nameUsed
-     )
-
-
--- function g_file_get_contents
--- Args : [Arg {argCName = "filename", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "contents", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},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 TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_file_get_contents" g_file_get_contents :: 
-    CString ->                              -- filename : TBasicType TFileName
-    Ptr (Ptr Word8) ->                      -- contents : TCArray False (-1) 2 (TBasicType TUInt8)
-    Ptr Word64 ->                           -- length : TBasicType TUInt64
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-fileGetContents ::
-    (MonadIO m) =>
-    [Char]                                  -- filename
-    -> m (ByteString)                       -- result
-fileGetContents filename = liftIO $ do
-    filename' <- stringToCString filename
-    contents <- allocMem :: IO (Ptr (Ptr Word8))
-    length_ <- allocMem :: IO (Ptr Word64)
-    onException (do
-        _ <- propagateGError $ g_file_get_contents filename' contents length_
-        length_' <- peek length_
-        contents' <- peek contents
-        contents'' <- (unpackByteStringWithLength length_') contents'
-        freeMem contents'
-        freeMem filename'
-        freeMem contents
-        freeMem length_
-        return contents''
-     ) (do
-        freeMem filename'
-        freeMem contents
-        freeMem length_
-     )
-
-
--- function g_file_error_quark
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_file_error_quark" g_file_error_quark :: 
-    IO Word32
-
-
-fileErrorQuark ::
-    (MonadIO m) =>
-    m Word32                                -- result
-fileErrorQuark  = liftIO $ do
-    result <- g_file_error_quark
-    return result
-
-
--- function g_file_error_from_errno
--- Args : [Arg {argCName = "err_no", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "FileError"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_file_error_from_errno" g_file_error_from_errno :: 
-    Int32 ->                                -- err_no : TBasicType TInt32
-    IO CUInt
-
-
-fileErrorFromErrno ::
-    (MonadIO m) =>
-    Int32                                   -- errNo
-    -> m FileError                          -- result
-fileErrorFromErrno errNo = liftIO $ do
-    result <- g_file_error_from_errno errNo
-    let result' = (toEnum . fromIntegral) result
-    return result'
-
-
--- function g_environ_unsetenv
--- Args : [Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_environ_unsetenv" g_environ_unsetenv :: 
-    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
-    CString ->                              -- variable : TBasicType TUTF8
-    IO (Ptr CString)
-
-
-environUnsetenv ::
-    (MonadIO m) =>
-    Maybe ([T.Text])                        -- envp
-    -> T.Text                               -- variable
-    -> m [T.Text]                           -- result
-environUnsetenv envp variable = liftIO $ do
-    maybeEnvp <- case envp of
-        Nothing -> return nullPtr
-        Just jEnvp -> do
-            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
-            return jEnvp'
-    variable' <- textToCString variable
-    result <- g_environ_unsetenv maybeEnvp variable'
-    checkUnexpectedReturnNULL "g_environ_unsetenv" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    freeMem variable'
-    return result'
-
-
--- function g_environ_setenv
--- Args : [Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "variable", 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 = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_environ_setenv" g_environ_setenv :: 
-    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
-    CString ->                              -- variable : TBasicType TUTF8
-    CString ->                              -- value : TBasicType TUTF8
-    CInt ->                                 -- overwrite : TBasicType TBoolean
-    IO (Ptr CString)
-
-
-environSetenv ::
-    (MonadIO m) =>
-    Maybe ([T.Text])                        -- envp
-    -> T.Text                               -- variable
-    -> T.Text                               -- value
-    -> Bool                                 -- overwrite
-    -> m [T.Text]                           -- result
-environSetenv envp variable value overwrite = liftIO $ do
-    maybeEnvp <- case envp of
-        Nothing -> return nullPtr
-        Just jEnvp -> do
-            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
-            return jEnvp'
-    variable' <- textToCString variable
-    value' <- textToCString value
-    let overwrite' = (fromIntegral . fromEnum) overwrite
-    result <- g_environ_setenv maybeEnvp variable' value' overwrite'
-    checkUnexpectedReturnNULL "g_environ_setenv" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    freeMem variable'
-    freeMem value'
-    return result'
-
-
--- function g_environ_getenv
--- Args : [Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_environ_getenv" g_environ_getenv :: 
-    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
-    CString ->                              -- variable : TBasicType TUTF8
-    IO CString
-
-
-environGetenv ::
-    (MonadIO m) =>
-    Maybe ([T.Text])                        -- envp
-    -> T.Text                               -- variable
-    -> m T.Text                             -- result
-environGetenv envp variable = liftIO $ do
-    maybeEnvp <- case envp of
-        Nothing -> return nullPtr
-        Just jEnvp -> do
-            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
-            return jEnvp'
-    variable' <- textToCString variable
-    result <- g_environ_getenv maybeEnvp variable'
-    checkUnexpectedReturnNULL "g_environ_getenv" result
-    result' <- cstringToText result
-    mapZeroTerminatedCArray freeMem maybeEnvp
-    freeMem maybeEnvp
-    freeMem variable'
-    return result'
-
-
--- function g_dpgettext2
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_dpgettext2" g_dpgettext2 :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- context : TBasicType TUTF8
-    CString ->                              -- msgid : TBasicType TUTF8
-    IO CString
-
-
-dpgettext2 ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- domain
-    -> T.Text                               -- context
-    -> T.Text                               -- msgid
-    -> m T.Text                             -- result
-dpgettext2 domain context msgid = liftIO $ do
-    maybeDomain <- case domain of
-        Nothing -> return nullPtr
-        Just jDomain -> do
-            jDomain' <- textToCString jDomain
-            return jDomain'
-    context' <- textToCString context
-    msgid' <- textToCString msgid
-    result <- g_dpgettext2 maybeDomain context' msgid'
-    checkUnexpectedReturnNULL "g_dpgettext2" result
-    result' <- cstringToText result
-    freeMem maybeDomain
-    freeMem context'
-    freeMem msgid'
-    return result'
-
-
--- function g_dpgettext
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgctxtid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgidoffset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_dpgettext" g_dpgettext :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- msgctxtid : TBasicType TUTF8
-    Word64 ->                               -- msgidoffset : TBasicType TUInt64
-    IO CString
-
-
-dpgettext ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- domain
-    -> T.Text                               -- msgctxtid
-    -> Word64                               -- msgidoffset
-    -> m T.Text                             -- result
-dpgettext domain msgctxtid msgidoffset = liftIO $ do
-    maybeDomain <- case domain of
-        Nothing -> return nullPtr
-        Just jDomain -> do
-            jDomain' <- textToCString jDomain
-            return jDomain'
-    msgctxtid' <- textToCString msgctxtid
-    result <- g_dpgettext maybeDomain msgctxtid' msgidoffset
-    checkUnexpectedReturnNULL "g_dpgettext" result
-    result' <- cstringToText result
-    freeMem maybeDomain
-    freeMem msgctxtid'
-    return result'
-
-
--- function g_double_hash
--- Args : [Arg {argCName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_double_hash" g_double_hash :: 
-    Ptr () ->                               -- v : TBasicType TVoid
-    IO Word32
-
-
-doubleHash ::
-    (MonadIO m) =>
-    Ptr ()                                  -- v
-    -> m Word32                             -- result
-doubleHash v = liftIO $ do
-    result <- g_double_hash v
-    return result
-
-
--- function g_double_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}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_double_equal" g_double_equal :: 
-    Ptr () ->                               -- v1 : TBasicType TVoid
-    Ptr () ->                               -- v2 : TBasicType TVoid
-    IO CInt
-
-
-doubleEqual ::
-    (MonadIO m) =>
-    Ptr ()                                  -- v1
-    -> Ptr ()                               -- v2
-    -> m Bool                               -- result
-doubleEqual v1 v2 = liftIO $ do
-    result <- g_double_equal v1 v2
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_dngettext
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid_plural", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_dngettext" g_dngettext :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- msgid : TBasicType TUTF8
-    CString ->                              -- msgid_plural : TBasicType TUTF8
-    Word64 ->                               -- n : TBasicType TUInt64
-    IO CString
-
-
-dngettext ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- domain
-    -> T.Text                               -- msgid
-    -> T.Text                               -- msgidPlural
-    -> Word64                               -- n
-    -> m T.Text                             -- result
-dngettext domain msgid msgidPlural n = liftIO $ do
-    maybeDomain <- case domain of
-        Nothing -> return nullPtr
-        Just jDomain -> do
-            jDomain' <- textToCString jDomain
-            return jDomain'
-    msgid' <- textToCString msgid
-    msgidPlural' <- textToCString msgidPlural
-    result <- g_dngettext maybeDomain msgid' msgidPlural' n
-    checkUnexpectedReturnNULL "g_dngettext" result
-    result' <- cstringToText result
-    freeMem maybeDomain
-    freeMem msgid'
-    freeMem msgidPlural'
-    return result'
-
-
--- function g_direct_hash
--- Args : [Arg {argCName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_direct_hash" g_direct_hash :: 
-    Ptr () ->                               -- v : TBasicType TVoid
-    IO Word32
-
-
-directHash ::
-    (MonadIO m) =>
-    Maybe (Ptr ())                          -- v
-    -> m Word32                             -- result
-directHash v = liftIO $ do
-    maybeV <- case v of
-        Nothing -> return nullPtr
-        Just jV -> do
-            return jV
-    result <- g_direct_hash maybeV
-    return result
-
-
--- function g_direct_equal
--- Args : [Arg {argCName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_direct_equal" g_direct_equal :: 
-    Ptr () ->                               -- v1 : TBasicType TVoid
-    Ptr () ->                               -- v2 : TBasicType TVoid
-    IO CInt
-
-
-directEqual ::
-    (MonadIO m) =>
-    Maybe (Ptr ())                          -- v1
-    -> Maybe (Ptr ())                       -- v2
-    -> m Bool                               -- result
-directEqual v1 v2 = liftIO $ do
-    maybeV1 <- case v1 of
-        Nothing -> return nullPtr
-        Just jV1 -> do
-            return jV1
-    maybeV2 <- case v2 of
-        Nothing -> return nullPtr
-        Just jV2 -> do
-            return jV2
-    result <- g_direct_equal maybeV1 maybeV2
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_dgettext
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_dgettext" g_dgettext :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- msgid : TBasicType TUTF8
-    IO CString
-
-
-dgettext ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- domain
-    -> T.Text                               -- msgid
-    -> m T.Text                             -- result
-dgettext domain msgid = liftIO $ do
-    maybeDomain <- case domain of
-        Nothing -> return nullPtr
-        Just jDomain -> do
-            jDomain' <- textToCString jDomain
-            return jDomain'
-    msgid' <- textToCString msgid
-    result <- g_dgettext maybeDomain msgid'
-    checkUnexpectedReturnNULL "g_dgettext" result
-    result' <- cstringToText result
-    freeMem maybeDomain
-    freeMem msgid'
-    return result'
-
-
--- function g_dcgettext
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "category", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_dcgettext" g_dcgettext :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- msgid : TBasicType TUTF8
-    Int32 ->                                -- category : TBasicType TInt32
-    IO CString
-
-
-dcgettext ::
-    (MonadIO m) =>
-    Maybe (T.Text)                          -- domain
-    -> T.Text                               -- msgid
-    -> Int32                                -- category
-    -> m T.Text                             -- result
-dcgettext domain msgid category = liftIO $ do
-    maybeDomain <- case domain of
-        Nothing -> return nullPtr
-        Just jDomain -> do
-            jDomain' <- textToCString jDomain
-            return jDomain'
-    msgid' <- textToCString msgid
-    result <- g_dcgettext maybeDomain msgid' category
-    checkUnexpectedReturnNULL "g_dcgettext" result
-    result' <- cstringToText result
-    freeMem maybeDomain
-    freeMem msgid'
-    return result'
-
-
--- function g_dataset_id_set_data_full
--- Args : [Arg {argCName = "dataset_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_dataset_id_set_data_full" g_dataset_id_set_data_full :: 
-    Ptr () ->                               -- dataset_location : TBasicType TVoid
-    Word32 ->                               -- key_id : TBasicType TUInt32
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- destroy_func : TInterface "GLib" "DestroyNotify"
-    IO ()
-
-
-datasetIdSetDataFull ::
-    (MonadIO m) =>
-    Ptr ()                                  -- datasetLocation
-    -> Word32                               -- keyId
-    -> Ptr ()                               -- data_
-    -> DestroyNotify                        -- destroyFunc
-    -> m ()                                 -- result
-datasetIdSetDataFull datasetLocation keyId data_ destroyFunc = liftIO $ do
-    ptrdestroyFunc <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
-    destroyFunc' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroyFunc) destroyFunc)
-    poke ptrdestroyFunc destroyFunc'
-    g_dataset_id_set_data_full datasetLocation keyId data_ destroyFunc'
-    return ()
-
-
--- function g_dataset_destroy
--- Args : [Arg {argCName = "dataset_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_dataset_destroy" g_dataset_destroy :: 
-    Ptr () ->                               -- dataset_location : TBasicType TVoid
-    IO ()
-
-
-datasetDestroy ::
-    (MonadIO m) =>
-    Ptr ()                                  -- datasetLocation
-    -> m ()                                 -- result
-datasetDestroy datasetLocation = liftIO $ do
-    g_dataset_destroy datasetLocation
-    return ()
-
-
--- function g_datalist_unset_flags
--- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_datalist_unset_flags" g_datalist_unset_flags :: 
-    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
-    Word32 ->                               -- flags : TBasicType TUInt32
-    IO ()
-
-
-datalistUnsetFlags ::
-    (MonadIO m) =>
-    Data                                    -- datalist
-    -> Word32                               -- flags
-    -> m ()                                 -- result
-datalistUnsetFlags datalist flags = liftIO $ do
-    let datalist' = unsafeManagedPtrGetPtr datalist
-    g_datalist_unset_flags datalist' flags
-    touchManagedPtr datalist
-    return ()
-
-
--- function g_datalist_set_flags
--- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_datalist_set_flags" g_datalist_set_flags :: 
-    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
-    Word32 ->                               -- flags : TBasicType TUInt32
-    IO ()
-
-
-datalistSetFlags ::
-    (MonadIO m) =>
-    Data                                    -- datalist
-    -> Word32                               -- flags
-    -> m ()                                 -- result
-datalistSetFlags datalist flags = liftIO $ do
-    let datalist' = unsafeManagedPtrGetPtr datalist
-    g_datalist_set_flags datalist' flags
-    touchManagedPtr datalist
-    return ()
-
-
--- function g_datalist_init
--- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_datalist_init" g_datalist_init :: 
-    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
-    IO ()
-
-
-datalistInit ::
-    (MonadIO m) =>
-    Data                                    -- datalist
-    -> m ()                                 -- result
-datalistInit datalist = liftIO $ do
-    let datalist' = unsafeManagedPtrGetPtr datalist
-    g_datalist_init datalist'
-    touchManagedPtr datalist
-    return ()
-
-
--- function g_datalist_id_set_data_full
--- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_datalist_id_set_data_full" g_datalist_id_set_data_full :: 
-    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
-    Word32 ->                               -- key_id : TBasicType TUInt32
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- destroy_func : TInterface "GLib" "DestroyNotify"
-    IO ()
-
-
-datalistIdSetDataFull ::
-    (MonadIO m) =>
-    Data                                    -- datalist
-    -> Word32                               -- keyId
-    -> Maybe (Ptr ())                       -- data_
-    -> DestroyNotify                        -- destroyFunc
-    -> m ()                                 -- result
-datalistIdSetDataFull datalist keyId data_ destroyFunc = liftIO $ do
-    let datalist' = unsafeManagedPtrGetPtr datalist
-    maybeData_ <- case data_ of
-        Nothing -> return nullPtr
-        Just jData_ -> do
-            return jData_
-    ptrdestroyFunc <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
-    destroyFunc' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroyFunc) destroyFunc)
-    poke ptrdestroyFunc destroyFunc'
-    g_datalist_id_set_data_full datalist' keyId maybeData_ destroyFunc'
-    touchManagedPtr datalist
-    return ()
-
-
--- function g_datalist_id_replace_data
--- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "old_destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_datalist_id_replace_data" g_datalist_id_replace_data :: 
-    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
-    Word32 ->                               -- key_id : TBasicType TUInt32
-    Ptr () ->                               -- oldval : TBasicType TVoid
-    Ptr () ->                               -- newval : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- destroy : TInterface "GLib" "DestroyNotify"
-    FunPtr DestroyNotifyC ->                -- old_destroy : TInterface "GLib" "DestroyNotify"
-    IO CInt
-
-
-datalistIdReplaceData ::
-    (MonadIO m) =>
-    Data                                    -- datalist
-    -> Word32                               -- keyId
-    -> Maybe (Ptr ())                       -- oldval
-    -> Maybe (Ptr ())                       -- newval
-    -> Maybe (DestroyNotify)                -- destroy
-    -> Maybe (DestroyNotify)                -- oldDestroy
-    -> m Bool                               -- result
-datalistIdReplaceData datalist keyId oldval newval destroy oldDestroy = liftIO $ do
-    let datalist' = unsafeManagedPtrGetPtr datalist
-    maybeOldval <- case oldval of
-        Nothing -> return nullPtr
-        Just jOldval -> do
-            return jOldval
-    maybeNewval <- case newval of
-        Nothing -> return nullPtr
-        Just jNewval -> do
-            return jNewval
-    ptrdestroy <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
-    maybeDestroy <- case destroy of
-        Nothing -> return (castPtrToFunPtr nullPtr)
-        Just jDestroy -> do
-            jDestroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroy) jDestroy)
-            poke ptrdestroy jDestroy'
-            return jDestroy'
-    ptroldDestroy <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
-    maybeOldDestroy <- case oldDestroy of
-        Nothing -> return (castPtrToFunPtr nullPtr)
-        Just jOldDestroy -> do
-            jOldDestroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptroldDestroy) jOldDestroy)
-            poke ptroldDestroy jOldDestroy'
-            return jOldDestroy'
-    result <- g_datalist_id_replace_data datalist' keyId maybeOldval maybeNewval maybeDestroy maybeOldDestroy
-    let result' = (/= 0) result
-    touchManagedPtr datalist
-    return result'
-
-
--- function g_datalist_get_flags
--- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_datalist_get_flags" g_datalist_get_flags :: 
-    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
-    IO Word32
-
-
-datalistGetFlags ::
-    (MonadIO m) =>
-    Data                                    -- datalist
-    -> m Word32                             -- result
-datalistGetFlags datalist = liftIO $ do
-    let datalist' = unsafeManagedPtrGetPtr datalist
-    result <- g_datalist_get_flags datalist'
-    touchManagedPtr datalist
-    return result
-
-
--- function g_datalist_clear
--- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_datalist_clear" g_datalist_clear :: 
-    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
-    IO ()
-
-
-datalistClear ::
-    (MonadIO m) =>
-    Data                                    -- datalist
-    -> m ()                                 -- result
-datalistClear datalist = liftIO $ do
-    let datalist' = unsafeManagedPtrGetPtr datalist
-    g_datalist_clear datalist'
-    touchManagedPtr datalist
-    return ()
-
-
--- function g_convert_with_iconv
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "converter", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_convert_with_iconv" g_convert_with_iconv :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    Ptr IConv ->                            -- converter : TInterface "GLib" "IConv"
-    Word64 ->                               -- bytes_read : TBasicType TUInt64
-    Word64 ->                               -- bytes_written : TBasicType TUInt64
-    Ptr (Ptr GError) ->                     -- error
-    IO CString
-
-
-convertWithIconv ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> IConv                                -- converter
-    -> Word64                               -- bytesRead
-    -> Word64                               -- bytesWritten
-    -> m T.Text                             -- result
-convertWithIconv str len converter bytesRead bytesWritten = liftIO $ do
-    str' <- textToCString str
-    let converter' = unsafeManagedPtrGetPtr converter
-    onException (do
-        result <- propagateGError $ g_convert_with_iconv str' len converter' bytesRead bytesWritten
-        checkUnexpectedReturnNULL "g_convert_with_iconv" result
-        result' <- cstringToText result
-        freeMem result
-        touchManagedPtr converter
-        freeMem str'
-        return result'
-     ) (do
-        freeMem str'
-     )
-
-
--- function g_convert_with_fallback
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fallback", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_convert_with_fallback" g_convert_with_fallback :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    CString ->                              -- to_codeset : TBasicType TUTF8
-    CString ->                              -- from_codeset : TBasicType TUTF8
-    CString ->                              -- fallback : TBasicType TUTF8
-    Word64 ->                               -- bytes_read : TBasicType TUInt64
-    Word64 ->                               -- bytes_written : TBasicType TUInt64
-    Ptr (Ptr GError) ->                     -- error
-    IO CString
-
-
-convertWithFallback ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> T.Text                               -- toCodeset
-    -> T.Text                               -- fromCodeset
-    -> T.Text                               -- fallback
-    -> Word64                               -- bytesRead
-    -> Word64                               -- bytesWritten
-    -> m T.Text                             -- result
-convertWithFallback str len toCodeset fromCodeset fallback bytesRead bytesWritten = liftIO $ do
-    str' <- textToCString str
-    toCodeset' <- textToCString toCodeset
-    fromCodeset' <- textToCString fromCodeset
-    fallback' <- textToCString fallback
-    onException (do
-        result <- propagateGError $ g_convert_with_fallback str' len toCodeset' fromCodeset' fallback' bytesRead bytesWritten
-        checkUnexpectedReturnNULL "g_convert_with_fallback" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem str'
-        freeMem toCodeset'
-        freeMem fromCodeset'
-        freeMem fallback'
-        return result'
-     ) (do
-        freeMem str'
-        freeMem toCodeset'
-        freeMem fromCodeset'
-        freeMem fallback'
-     )
-
-
--- function g_convert_error_quark
--- Args : []
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_convert_error_quark" g_convert_error_quark :: 
-    IO Word32
-
-
-convertErrorQuark ::
-    (MonadIO m) =>
-    m Word32                                -- result
-convertErrorQuark  = liftIO $ do
-    result <- g_convert_error_quark
-    return result
-
-
--- function g_convert
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_convert" g_convert :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    CString ->                              -- to_codeset : TBasicType TUTF8
-    CString ->                              -- from_codeset : TBasicType TUTF8
-    Ptr Word64 ->                           -- bytes_read : TBasicType TUInt64
-    Ptr Word64 ->                           -- bytes_written : TBasicType TUInt64
-    Ptr (Ptr GError) ->                     -- error
-    IO CString
-
-
-convert ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> T.Text                               -- toCodeset
-    -> T.Text                               -- fromCodeset
-    -> m (T.Text,Word64,Word64)             -- result
-convert str len toCodeset fromCodeset = liftIO $ do
-    str' <- textToCString str
-    toCodeset' <- textToCString toCodeset
-    fromCodeset' <- textToCString fromCodeset
-    bytesRead <- allocMem :: IO (Ptr Word64)
-    bytesWritten <- allocMem :: IO (Ptr Word64)
-    onException (do
-        result <- propagateGError $ g_convert str' len toCodeset' fromCodeset' bytesRead bytesWritten
-        checkUnexpectedReturnNULL "g_convert" result
-        result' <- cstringToText result
-        freeMem result
-        bytesRead' <- peek bytesRead
-        bytesWritten' <- peek bytesWritten
-        freeMem str'
-        freeMem toCodeset'
-        freeMem fromCodeset'
-        freeMem bytesRead
-        freeMem bytesWritten
-        return (result', bytesRead', bytesWritten')
-     ) (do
-        freeMem str'
-        freeMem toCodeset'
-        freeMem fromCodeset'
-        freeMem bytesRead
-        freeMem bytesWritten
-     )
-
-
--- function g_compute_hmac_for_string
--- Args : [Arg {argCName = "digest_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : [Arg {argCName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_compute_hmac_for_string" g_compute_hmac_for_string :: 
-    CUInt ->                                -- digest_type : TInterface "GLib" "ChecksumType"
-    Ptr Word8 ->                            -- key : TCArray False (-1) 2 (TBasicType TUInt8)
-    Word64 ->                               -- key_len : TBasicType TUInt64
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- length : TBasicType TInt64
-    IO CString
-
-
-computeHmacForString ::
-    (MonadIO m) =>
-    ChecksumType                            -- digestType
-    -> ByteString                           -- key
-    -> T.Text                               -- str
-    -> Int64                                -- length_
-    -> m T.Text                             -- result
-computeHmacForString digestType key str length_ = liftIO $ do
-    let keyLen = fromIntegral $ B.length key
-    let digestType' = (fromIntegral . fromEnum) digestType
-    key' <- packByteString key
-    str' <- textToCString str
-    result <- g_compute_hmac_for_string digestType' key' keyLen str' length_
-    checkUnexpectedReturnNULL "g_compute_hmac_for_string" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem key'
-    freeMem str'
-    return result'
-
-
--- function g_compute_hmac_for_data
--- Args : [Arg {argCName = "digest_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = 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 = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_compute_hmac_for_data" g_compute_hmac_for_data :: 
-    CUInt ->                                -- digest_type : TInterface "GLib" "ChecksumType"
-    Ptr Word8 ->                            -- key : TCArray False (-1) 2 (TBasicType TUInt8)
-    Word64 ->                               -- key_len : TBasicType TUInt64
-    Word8 ->                                -- data : TBasicType TUInt8
-    Word64 ->                               -- length : TBasicType TUInt64
-    IO CString
-
-
-computeHmacForData ::
-    (MonadIO m) =>
-    ChecksumType                            -- digestType
-    -> ByteString                           -- key
-    -> Word8                                -- data_
-    -> Word64                               -- length_
-    -> m T.Text                             -- result
-computeHmacForData digestType key data_ length_ = liftIO $ do
-    let keyLen = fromIntegral $ B.length key
-    let digestType' = (fromIntegral . fromEnum) digestType
-    key' <- packByteString key
-    result <- g_compute_hmac_for_data digestType' key' keyLen data_ length_
-    checkUnexpectedReturnNULL "g_compute_hmac_for_data" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem key'
-    return result'
-
-
--- function g_compute_checksum_for_string
--- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_compute_checksum_for_string" g_compute_checksum_for_string :: 
-    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- length : TBasicType TInt64
-    IO CString
-
-
-computeChecksumForString ::
-    (MonadIO m) =>
-    ChecksumType                            -- checksumType
-    -> T.Text                               -- str
-    -> Int64                                -- length_
-    -> m T.Text                             -- result
-computeChecksumForString checksumType str length_ = liftIO $ do
-    let checksumType' = (fromIntegral . fromEnum) checksumType
-    str' <- textToCString str
-    result <- g_compute_checksum_for_string checksumType' str' length_
-    checkUnexpectedReturnNULL "g_compute_checksum_for_string" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_compute_checksum_for_data
--- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", 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 TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_compute_checksum_for_data" g_compute_checksum_for_data :: 
-    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
-    Ptr Word8 ->                            -- data : TCArray False (-1) 2 (TBasicType TUInt8)
-    Word64 ->                               -- length : TBasicType TUInt64
-    IO CString
-
-
-computeChecksumForData ::
-    (MonadIO m) =>
-    ChecksumType                            -- checksumType
-    -> ByteString                           -- data_
-    -> m T.Text                             -- result
-computeChecksumForData checksumType data_ = liftIO $ do
-    let length_ = fromIntegral $ B.length data_
-    let checksumType' = (fromIntegral . fromEnum) checksumType
-    data_' <- packByteString data_
-    result <- g_compute_checksum_for_data checksumType' data_' length_
-    checkUnexpectedReturnNULL "g_compute_checksum_for_data" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem data_'
-    return result'
-
-
--- function g_compute_checksum_for_bytes
--- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_compute_checksum_for_bytes" g_compute_checksum_for_bytes :: 
-    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
-    Ptr Bytes ->                            -- data : TInterface "GLib" "Bytes"
-    IO CString
-
-
-computeChecksumForBytes ::
-    (MonadIO m) =>
-    ChecksumType                            -- checksumType
-    -> Bytes                                -- data_
-    -> m T.Text                             -- result
-computeChecksumForBytes checksumType data_ = liftIO $ do
-    let checksumType' = (fromIntegral . fromEnum) checksumType
-    let data_' = unsafeManagedPtrGetPtr data_
-    result <- g_compute_checksum_for_bytes checksumType' data_'
-    checkUnexpectedReturnNULL "g_compute_checksum_for_bytes" result
-    result' <- cstringToText result
-    freeMem result
-    touchManagedPtr data_
-    return result'
-
-
--- function g_close
--- Args : [Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_close" g_close :: 
-    Int32 ->                                -- fd : TBasicType TInt32
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-close ::
-    (MonadIO m) =>
-    Int32                                   -- fd
-    -> m ()                                 -- result
-close fd = liftIO $ do
-    onException (do
-        _ <- propagateGError $ g_close fd
-        return ()
-     ) (do
-        return ()
-     )
-
-
--- function g_clear_error
--- Args : []
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : True
--- Skip return : False
-
-foreign import ccall "g_clear_error" g_clear_error :: 
-    Ptr (Ptr GError) ->                     -- error
-    IO ()
-
-
-clearError ::
-    (MonadIO m) =>
-    m ()                                    -- result
-clearError  = liftIO $ do
-    onException (do
-        propagateGError $ g_clear_error
-        return ()
-     ) (do
-        return ()
-     )
-
-
--- function g_child_watch_source_new
--- Args : [Arg {argCName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TInterface "GLib" "Source"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_child_watch_source_new" g_child_watch_source_new :: 
-    Int32 ->                                -- pid : TBasicType TInt32
-    IO (Ptr Source)
-
-
-childWatchSourceNew ::
-    (MonadIO m) =>
-    Int32                                   -- pid
-    -> m Source                             -- result
-childWatchSourceNew pid = liftIO $ do
-    result <- g_child_watch_source_new pid
-    checkUnexpectedReturnNULL "g_child_watch_source_new" result
-    result' <- (wrapBoxed Source) result
-    return result'
-
-
--- function g_child_watch_add_full
--- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "ChildWatchFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_child_watch_add_full" g_child_watch_add_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    Int32 ->                                -- pid : TBasicType TInt32
-    FunPtr ChildWatchFuncC ->               -- function : TInterface "GLib" "ChildWatchFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-childWatchAdd ::
-    (MonadIO m) =>
-    Int32                                   -- priority
-    -> Int32                                -- pid
-    -> ChildWatchFunc                       -- function
-    -> m Word32                             -- result
-childWatchAdd priority pid function = liftIO $ do
-    function' <- mkChildWatchFunc (childWatchFuncWrapper Nothing function)
-    let data_ = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- g_child_watch_add_full priority pid function' data_ notify
-    return result
-
-
--- function glib_check_version
--- Args : [Arg {argCName = "required_major", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "required_minor", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "required_micro", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "glib_check_version" glib_check_version :: 
-    Word32 ->                               -- required_major : TBasicType TUInt32
-    Word32 ->                               -- required_minor : TBasicType TUInt32
-    Word32 ->                               -- required_micro : TBasicType TUInt32
-    IO CString
-
-
-checkVersion ::
-    (MonadIO m) =>
-    Word32                                  -- requiredMajor
-    -> Word32                               -- requiredMinor
-    -> Word32                               -- requiredMicro
-    -> m T.Text                             -- result
-checkVersion requiredMajor requiredMinor requiredMicro = liftIO $ do
-    result <- glib_check_version requiredMajor requiredMinor requiredMicro
-    checkUnexpectedReturnNULL "glib_check_version" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_chdir
--- Args : [Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_chdir" g_chdir :: 
-    CString ->                              -- path : TBasicType TUTF8
-    IO Int32
-
-
-chdir ::
-    (MonadIO m) =>
-    T.Text                                  -- path
-    -> m Int32                              -- result
-chdir path = liftIO $ do
-    path' <- textToCString path
-    result <- g_chdir path'
-    freeMem path'
-    return result
-
-
--- function g_build_pathv
--- Args : [Arg {argCName = "separator", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "args", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_build_pathv" g_build_pathv :: 
-    CString ->                              -- separator : TBasicType TUTF8
-    Ptr CString ->                          -- args : TCArray True (-1) (-1) (TBasicType TUTF8)
-    IO CString
-
-
-buildPathv ::
-    (MonadIO m) =>
-    T.Text                                  -- separator
-    -> [T.Text]                             -- args
-    -> m T.Text                             -- result
-buildPathv separator args = liftIO $ do
-    separator' <- textToCString separator
-    args' <- packZeroTerminatedUTF8CArray args
-    result <- g_build_pathv separator' args'
-    checkUnexpectedReturnNULL "g_build_pathv" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem separator'
-    mapZeroTerminatedCArray freeMem args'
-    freeMem args'
-    return result'
-
-
--- function g_build_filenamev
--- Args : [Arg {argCName = "args", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_build_filenamev" g_build_filenamev :: 
-    Ptr CString ->                          -- args : TCArray True (-1) (-1) (TBasicType TUTF8)
-    IO CString
-
-
-buildFilenamev ::
-    (MonadIO m) =>
-    [T.Text]                                -- args
-    -> m T.Text                             -- result
-buildFilenamev args = liftIO $ do
-    args' <- packZeroTerminatedUTF8CArray args
-    result <- g_build_filenamev args'
-    checkUnexpectedReturnNULL "g_build_filenamev" result
-    result' <- cstringToText result
-    freeMem result
-    mapZeroTerminatedCArray freeMem args'
-    freeMem args'
-    return result'
-
-
--- function g_bit_unlock
--- Args : [Arg {argCName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_bit_unlock" g_bit_unlock :: 
-    Int32 ->                                -- address : TBasicType TInt32
-    Int32 ->                                -- lock_bit : TBasicType TInt32
-    IO ()
-
-
-bitUnlock ::
-    (MonadIO m) =>
-    Int32                                   -- address
-    -> Int32                                -- lockBit
-    -> m ()                                 -- result
-bitUnlock address lockBit = liftIO $ do
-    g_bit_unlock address lockBit
-    return ()
-
-
--- function g_bit_trylock
--- Args : [Arg {argCName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_bit_trylock" g_bit_trylock :: 
-    Int32 ->                                -- address : TBasicType TInt32
-    Int32 ->                                -- lock_bit : TBasicType TInt32
-    IO CInt
-
-
-bitTrylock ::
-    (MonadIO m) =>
-    Int32                                   -- address
-    -> Int32                                -- lockBit
-    -> m Bool                               -- result
-bitTrylock address lockBit = liftIO $ do
-    result <- g_bit_trylock address lockBit
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_bit_storage
--- Args : [Arg {argCName = "number", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_bit_storage" g_bit_storage :: 
-    Word64 ->                               -- number : TBasicType TUInt64
-    IO Word32
-
-
-bitStorage ::
-    (MonadIO m) =>
-    Word64                                  -- number
-    -> m Word32                             -- result
-bitStorage number = liftIO $ do
-    result <- g_bit_storage number
-    return result
-
-
--- function g_bit_nth_msf
--- Args : [Arg {argCName = "mask", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nth_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_bit_nth_msf" g_bit_nth_msf :: 
-    Word64 ->                               -- mask : TBasicType TUInt64
-    Int32 ->                                -- nth_bit : TBasicType TInt32
-    IO Int32
-
-
-bitNthMsf ::
-    (MonadIO m) =>
-    Word64                                  -- mask
-    -> Int32                                -- nthBit
-    -> m Int32                              -- result
-bitNthMsf mask nthBit = liftIO $ do
-    result <- g_bit_nth_msf mask nthBit
-    return result
-
-
--- function g_bit_nth_lsf
--- Args : [Arg {argCName = "mask", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nth_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_bit_nth_lsf" g_bit_nth_lsf :: 
-    Word64 ->                               -- mask : TBasicType TUInt64
-    Int32 ->                                -- nth_bit : TBasicType TInt32
-    IO Int32
-
-
-bitNthLsf ::
-    (MonadIO m) =>
-    Word64                                  -- mask
-    -> Int32                                -- nthBit
-    -> m Int32                              -- result
-bitNthLsf mask nthBit = liftIO $ do
-    result <- g_bit_nth_lsf mask nthBit
-    return result
-
-
--- function g_bit_lock
--- Args : [Arg {argCName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_bit_lock" g_bit_lock :: 
-    Int32 ->                                -- address : TBasicType TInt32
-    Int32 ->                                -- lock_bit : TBasicType TInt32
-    IO ()
-
-
-bitLock ::
-    (MonadIO m) =>
-    Int32                                   -- address
-    -> Int32                                -- lockBit
-    -> m ()                                 -- result
-bitLock address lockBit = liftIO $ do
-    g_bit_lock address lockBit
-    return ()
-
-
--- function g_basename
--- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_basename" g_basename :: 
-    CString ->                              -- file_name : TBasicType TUTF8
-    IO CString
-
-{-# DEPRECATED basename ["(Since version 2.2)","Use g_path_get_basename() instead, but notice","    that g_path_get_basename() allocates new memory for the","    returned string, unlike this function which returns a pointer","    into the argument."]#-}
-basename ::
-    (MonadIO m) =>
-    T.Text                                  -- fileName
-    -> m T.Text                             -- result
-basename fileName = liftIO $ do
-    fileName' <- textToCString fileName
-    result <- g_basename fileName'
-    checkUnexpectedReturnNULL "g_basename" result
-    result' <- cstringToText result
-    freeMem fileName'
-    return result'
-
-
--- function g_base64_encode
--- 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 = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, 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 : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_base64_encode" g_base64_encode :: 
-    Ptr Word8 ->                            -- data : TCArray False (-1) 1 (TBasicType TUInt8)
-    Word64 ->                               -- len : TBasicType TUInt64
-    IO CString
-
-
-base64Encode ::
-    (MonadIO m) =>
-    ByteString                              -- data_
-    -> m T.Text                             -- result
-base64Encode data_ = liftIO $ do
-    let len = fromIntegral $ B.length data_
-    data_' <- packByteString data_
-    result <- g_base64_encode data_' len
-    checkUnexpectedReturnNULL "g_base64_encode" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem data_'
-    return result'
-
-
--- function g_base64_decode_inplace
--- Args : [Arg {argCName = "text", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : [Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TUInt8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_base64_decode_inplace" g_base64_decode_inplace :: 
-    Ptr (Ptr Word8) ->                      -- text : TCArray False (-1) 1 (TBasicType TUInt8)
-    Ptr Word64 ->                           -- out_len : TBasicType TUInt64
-    IO Word8
-
-
-base64DecodeInplace ::
-    (MonadIO m) =>
-    ByteString                              -- text
-    -> m (Word8,ByteString)                 -- result
-base64DecodeInplace text = liftIO $ do
-    let outLen = fromIntegral $ B.length text
-    text' <- packByteString text
-    text'' <- allocMem :: IO (Ptr (Ptr Word8))
-    poke text'' text'
-    outLen' <- allocMem :: IO (Ptr Word64)
-    poke outLen' outLen
-    result <- g_base64_decode_inplace text'' outLen'
-    outLen'' <- peek outLen'
-    text''' <- peek text''
-    text'''' <- (unpackByteStringWithLength outLen'') text'''
-    freeMem text'''
-    freeMem text''
-    freeMem outLen'
-    return (result, text'''')
-
-
--- function g_base64_decode
--- Args : [Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : [Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TCArray False (-1) 1 (TBasicType TUInt8)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_base64_decode" g_base64_decode :: 
-    CString ->                              -- text : TBasicType TUTF8
-    Ptr Word64 ->                           -- out_len : TBasicType TUInt64
-    IO (Ptr Word8)
-
-
-base64Decode ::
-    (MonadIO m) =>
-    T.Text                                  -- text
-    -> m ByteString                         -- result
-base64Decode text = liftIO $ do
-    text' <- textToCString text
-    outLen <- allocMem :: IO (Ptr Word64)
-    result <- g_base64_decode text' outLen
-    outLen' <- peek outLen
-    checkUnexpectedReturnNULL "g_base64_decode" result
-    result' <- (unpackByteStringWithLength outLen') result
-    freeMem result
-    freeMem text'
-    freeMem outLen
-    return result'
-
-
--- function g_atomic_pointer_xor
--- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_pointer_xor" g_atomic_pointer_xor :: 
-    Ptr () ->                               -- atomic : TBasicType TVoid
-    Word64 ->                               -- val : TBasicType TUInt64
-    IO Word64
-
-
-atomicPointerXor ::
-    (MonadIO m) =>
-    Ptr ()                                  -- atomic
-    -> Word64                               -- val
-    -> m Word64                             -- result
-atomicPointerXor atomic val = liftIO $ do
-    result <- g_atomic_pointer_xor atomic val
-    return result
-
-
--- function g_atomic_pointer_set
--- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_pointer_set" g_atomic_pointer_set :: 
-    Ptr () ->                               -- atomic : TBasicType TVoid
-    Ptr () ->                               -- newval : TBasicType TVoid
-    IO ()
-
-
-atomicPointerSet ::
-    (MonadIO m) =>
-    Ptr ()                                  -- atomic
-    -> Ptr ()                               -- newval
-    -> m ()                                 -- result
-atomicPointerSet atomic newval = liftIO $ do
-    g_atomic_pointer_set atomic newval
-    return ()
-
-
--- function g_atomic_pointer_or
--- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_pointer_or" g_atomic_pointer_or :: 
-    Ptr () ->                               -- atomic : TBasicType TVoid
-    Word64 ->                               -- val : TBasicType TUInt64
-    IO Word64
-
-
-atomicPointerOr ::
-    (MonadIO m) =>
-    Ptr ()                                  -- atomic
-    -> Word64                               -- val
-    -> m Word64                             -- result
-atomicPointerOr atomic val = liftIO $ do
-    result <- g_atomic_pointer_or atomic val
-    return result
-
-
--- function g_atomic_pointer_compare_and_exchange
--- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_pointer_compare_and_exchange" g_atomic_pointer_compare_and_exchange :: 
-    Ptr () ->                               -- atomic : TBasicType TVoid
-    Ptr () ->                               -- oldval : TBasicType TVoid
-    Ptr () ->                               -- newval : TBasicType TVoid
-    IO CInt
-
-
-atomicPointerCompareAndExchange ::
-    (MonadIO m) =>
-    Ptr ()                                  -- atomic
-    -> Ptr ()                               -- oldval
-    -> Ptr ()                               -- newval
-    -> m Bool                               -- result
-atomicPointerCompareAndExchange atomic oldval newval = liftIO $ do
-    result <- g_atomic_pointer_compare_and_exchange atomic oldval newval
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_atomic_pointer_and
--- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_pointer_and" g_atomic_pointer_and :: 
-    Ptr () ->                               -- atomic : TBasicType TVoid
-    Word64 ->                               -- val : TBasicType TUInt64
-    IO Word64
-
-
-atomicPointerAnd ::
-    (MonadIO m) =>
-    Ptr ()                                  -- atomic
-    -> Word64                               -- val
-    -> m Word64                             -- result
-atomicPointerAnd atomic val = liftIO $ do
-    result <- g_atomic_pointer_and atomic val
-    return result
-
-
--- function g_atomic_pointer_add
--- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_pointer_add" g_atomic_pointer_add :: 
-    Ptr () ->                               -- atomic : TBasicType TVoid
-    Int64 ->                                -- val : TBasicType TInt64
-    IO Int64
-
-
-atomicPointerAdd ::
-    (MonadIO m) =>
-    Ptr ()                                  -- atomic
-    -> Int64                                -- val
-    -> m Int64                              -- result
-atomicPointerAdd atomic val = liftIO $ do
-    result <- g_atomic_pointer_add atomic val
-    return result
-
-
--- function g_atomic_int_xor
--- Args : [Arg {argCName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_int_xor" g_atomic_int_xor :: 
-    Word32 ->                               -- atomic : TBasicType TUInt32
-    Word32 ->                               -- val : TBasicType TUInt32
-    IO Word32
-
-
-atomicIntXor ::
-    (MonadIO m) =>
-    Word32                                  -- atomic
-    -> Word32                               -- val
-    -> m Word32                             -- result
-atomicIntXor atomic val = liftIO $ do
-    result <- g_atomic_int_xor atomic val
-    return result
-
-
--- function g_atomic_int_set
--- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_int_set" g_atomic_int_set :: 
-    Int32 ->                                -- atomic : TBasicType TInt32
-    Int32 ->                                -- newval : TBasicType TInt32
-    IO ()
-
-
-atomicIntSet ::
-    (MonadIO m) =>
-    Int32                                   -- atomic
-    -> Int32                                -- newval
-    -> m ()                                 -- result
-atomicIntSet atomic newval = liftIO $ do
-    g_atomic_int_set atomic newval
-    return ()
-
-
--- function g_atomic_int_or
--- Args : [Arg {argCName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_int_or" g_atomic_int_or :: 
-    Word32 ->                               -- atomic : TBasicType TUInt32
-    Word32 ->                               -- val : TBasicType TUInt32
-    IO Word32
-
-
-atomicIntOr ::
-    (MonadIO m) =>
-    Word32                                  -- atomic
-    -> Word32                               -- val
-    -> m Word32                             -- result
-atomicIntOr atomic val = liftIO $ do
-    result <- g_atomic_int_or atomic val
-    return result
-
-
--- function g_atomic_int_inc
--- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_int_inc" g_atomic_int_inc :: 
-    Int32 ->                                -- atomic : TBasicType TInt32
-    IO ()
-
-
-atomicIntInc ::
-    (MonadIO m) =>
-    Int32                                   -- atomic
-    -> m ()                                 -- result
-atomicIntInc atomic = liftIO $ do
-    g_atomic_int_inc atomic
-    return ()
-
-
--- function g_atomic_int_get
--- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_int_get" g_atomic_int_get :: 
-    Int32 ->                                -- atomic : TBasicType TInt32
-    IO Int32
-
-
-atomicIntGet ::
-    (MonadIO m) =>
-    Int32                                   -- atomic
-    -> m Int32                              -- result
-atomicIntGet atomic = liftIO $ do
-    result <- g_atomic_int_get atomic
-    return result
-
-
--- function g_atomic_int_exchange_and_add
--- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_int_exchange_and_add" g_atomic_int_exchange_and_add :: 
-    Int32 ->                                -- atomic : TBasicType TInt32
-    Int32 ->                                -- val : TBasicType TInt32
-    IO Int32
-
-{-# DEPRECATED atomicIntExchangeAndAdd ["(Since version 2.30)","Use g_atomic_int_add() instead."]#-}
-atomicIntExchangeAndAdd ::
-    (MonadIO m) =>
-    Int32                                   -- atomic
-    -> Int32                                -- val
-    -> m Int32                              -- result
-atomicIntExchangeAndAdd atomic val = liftIO $ do
-    result <- g_atomic_int_exchange_and_add atomic val
-    return result
-
-
--- function g_atomic_int_dec_and_test
--- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_int_dec_and_test" g_atomic_int_dec_and_test :: 
-    Int32 ->                                -- atomic : TBasicType TInt32
-    IO CInt
-
-
-atomicIntDecAndTest ::
-    (MonadIO m) =>
-    Int32                                   -- atomic
-    -> m Bool                               -- result
-atomicIntDecAndTest atomic = liftIO $ do
-    result <- g_atomic_int_dec_and_test atomic
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_atomic_int_compare_and_exchange
--- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_int_compare_and_exchange" g_atomic_int_compare_and_exchange :: 
-    Int32 ->                                -- atomic : TBasicType TInt32
-    Int32 ->                                -- oldval : TBasicType TInt32
-    Int32 ->                                -- newval : TBasicType TInt32
-    IO CInt
-
-
-atomicIntCompareAndExchange ::
-    (MonadIO m) =>
-    Int32                                   -- atomic
-    -> Int32                                -- oldval
-    -> Int32                                -- newval
-    -> m Bool                               -- result
-atomicIntCompareAndExchange atomic oldval newval = liftIO $ do
-    result <- g_atomic_int_compare_and_exchange atomic oldval newval
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_atomic_int_and
--- Args : [Arg {argCName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_int_and" g_atomic_int_and :: 
-    Word32 ->                               -- atomic : TBasicType TUInt32
-    Word32 ->                               -- val : TBasicType TUInt32
-    IO Word32
-
-
-atomicIntAnd ::
-    (MonadIO m) =>
-    Word32                                  -- atomic
-    -> Word32                               -- val
-    -> m Word32                             -- result
-atomicIntAnd atomic val = liftIO $ do
-    result <- g_atomic_int_and atomic val
-    return result
-
-
--- function g_atomic_int_add
--- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atomic_int_add" g_atomic_int_add :: 
-    Int32 ->                                -- atomic : TBasicType TInt32
-    Int32 ->                                -- val : TBasicType TInt32
-    IO Int32
-
-
-atomicIntAdd ::
-    (MonadIO m) =>
-    Int32                                   -- atomic
-    -> Int32                                -- val
-    -> m Int32                              -- result
-atomicIntAdd atomic val = liftIO $ do
-    result <- g_atomic_int_add atomic val
-    return result
-
-
--- function g_atexit
--- Args : [Arg {argCName = "func", argType = TInterface "GLib" "VoidFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_atexit" g_atexit :: 
-    FunPtr VoidFuncC ->                     -- func : TInterface "GLib" "VoidFunc"
-    IO ()
-
-{-# DEPRECATED atexit ["(Since version 2.32)","It is best to avoid g_atexit()."]#-}
-atexit ::
-    (MonadIO m) =>
-    VoidFunc                                -- func
-    -> m ()                                 -- result
-atexit func = liftIO $ do
-    ptrfunc <- callocMem :: IO (Ptr (FunPtr VoidFuncC))
-    func' <- mkVoidFunc (voidFuncWrapper (Just ptrfunc) func)
-    poke ptrfunc func'
-    g_atexit func'
-    return ()
-
-
--- function g_assertion_message_expr
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_assertion_message_expr" g_assertion_message_expr :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- file : TBasicType TUTF8
-    Int32 ->                                -- line : TBasicType TInt32
-    CString ->                              -- func : TBasicType TUTF8
-    CString ->                              -- expr : TBasicType TUTF8
-    IO ()
-
-
-assertionMessageExpr ::
-    (MonadIO m) =>
-    T.Text                                  -- domain
-    -> T.Text                               -- file
-    -> Int32                                -- line
-    -> T.Text                               -- func
-    -> T.Text                               -- expr
-    -> m ()                                 -- result
-assertionMessageExpr domain file line func expr = liftIO $ do
-    domain' <- textToCString domain
-    file' <- textToCString file
-    func' <- textToCString func
-    expr' <- textToCString expr
-    g_assertion_message_expr domain' file' line func' expr'
-    freeMem domain'
-    freeMem file'
-    freeMem func'
-    freeMem expr'
-    return ()
-
-
--- function g_assertion_message_error
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error_domain", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error_code", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_assertion_message_error" g_assertion_message_error :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- file : TBasicType TUTF8
-    Int32 ->                                -- line : TBasicType TInt32
-    CString ->                              -- func : TBasicType TUTF8
-    CString ->                              -- expr : TBasicType TUTF8
-    Ptr GError ->                           -- error : TError
-    Word32 ->                               -- error_domain : TBasicType TUInt32
-    Int32 ->                                -- error_code : TBasicType TInt32
-    IO ()
-
-
-assertionMessageError ::
-    (MonadIO m) =>
-    T.Text                                  -- domain
-    -> T.Text                               -- file
-    -> Int32                                -- line
-    -> T.Text                               -- func
-    -> T.Text                               -- expr
-    -> GError                               -- error_
-    -> Word32                               -- errorDomain
-    -> Int32                                -- errorCode
-    -> m ()                                 -- result
-assertionMessageError domain file line func expr error_ errorDomain errorCode = liftIO $ do
-    domain' <- textToCString domain
-    file' <- textToCString file
-    func' <- textToCString func
-    expr' <- textToCString expr
-    let error_' = unsafeManagedPtrGetPtr error_
-    g_assertion_message_error domain' file' line func' expr' error_' errorDomain errorCode
-    touchManagedPtr error_
-    freeMem domain'
-    freeMem file'
-    freeMem func'
-    freeMem expr'
-    return ()
-
-
--- function g_assertion_message_cmpstr
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "arg1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cmp", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "arg2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_assertion_message_cmpstr" g_assertion_message_cmpstr :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- file : TBasicType TUTF8
-    Int32 ->                                -- line : TBasicType TInt32
-    CString ->                              -- func : TBasicType TUTF8
-    CString ->                              -- expr : TBasicType TUTF8
-    CString ->                              -- arg1 : TBasicType TUTF8
-    CString ->                              -- cmp : TBasicType TUTF8
-    CString ->                              -- arg2 : TBasicType TUTF8
-    IO ()
-
-
-assertionMessageCmpstr ::
-    (MonadIO m) =>
-    T.Text                                  -- domain
-    -> T.Text                               -- file
-    -> Int32                                -- line
-    -> T.Text                               -- func
-    -> T.Text                               -- expr
-    -> T.Text                               -- arg1
-    -> T.Text                               -- cmp
-    -> T.Text                               -- arg2
-    -> m ()                                 -- result
-assertionMessageCmpstr domain file line func expr arg1 cmp arg2 = liftIO $ do
-    domain' <- textToCString domain
-    file' <- textToCString file
-    func' <- textToCString func
-    expr' <- textToCString expr
-    arg1' <- textToCString arg1
-    cmp' <- textToCString cmp
-    arg2' <- textToCString arg2
-    g_assertion_message_cmpstr domain' file' line func' expr' arg1' cmp' arg2'
-    freeMem domain'
-    freeMem file'
-    freeMem func'
-    freeMem expr'
-    freeMem arg1'
-    freeMem cmp'
-    freeMem arg2'
-    return ()
-
-
--- function g_assertion_message
--- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_assertion_message" g_assertion_message :: 
-    CString ->                              -- domain : TBasicType TUTF8
-    CString ->                              -- file : TBasicType TUTF8
-    Int32 ->                                -- line : TBasicType TInt32
-    CString ->                              -- func : TBasicType TUTF8
-    CString ->                              -- message : TBasicType TUTF8
-    IO ()
-
-
-assertionMessage ::
-    (MonadIO m) =>
-    T.Text                                  -- domain
-    -> T.Text                               -- file
-    -> Int32                                -- line
-    -> T.Text                               -- func
-    -> T.Text                               -- message
-    -> m ()                                 -- result
-assertionMessage domain file line func message = liftIO $ do
-    domain' <- textToCString domain
-    file' <- textToCString file
-    func' <- textToCString func
-    message' <- textToCString message
-    g_assertion_message domain' file' line func' message'
-    freeMem domain'
-    freeMem file'
-    freeMem func'
-    freeMem message'
-    return ()
-
-
--- function g_assert_warning
--- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pretty_function", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expression", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_assert_warning" g_assert_warning :: 
-    CString ->                              -- log_domain : TBasicType TUTF8
-    CString ->                              -- file : TBasicType TUTF8
-    Int32 ->                                -- line : TBasicType TInt32
-    CString ->                              -- pretty_function : TBasicType TUTF8
-    CString ->                              -- expression : TBasicType TUTF8
-    IO ()
-
-
-assertWarning ::
-    (MonadIO m) =>
-    T.Text                                  -- logDomain
-    -> T.Text                               -- file
-    -> Int32                                -- line
-    -> T.Text                               -- prettyFunction
-    -> T.Text                               -- expression
-    -> m ()                                 -- result
-assertWarning logDomain file line prettyFunction expression = liftIO $ do
-    logDomain' <- textToCString logDomain
-    file' <- textToCString file
-    prettyFunction' <- textToCString prettyFunction
-    expression' <- textToCString expression
-    g_assert_warning logDomain' file' line prettyFunction' expression'
-    freeMem logDomain'
-    freeMem file'
-    freeMem prettyFunction'
-    freeMem expression'
-    return ()
-
-
--- function g_ascii_xdigit_value
--- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_xdigit_value" g_ascii_xdigit_value :: 
-    Int8 ->                                 -- c : TBasicType TInt8
-    IO Int32
-
-
-asciiXdigitValue ::
-    (MonadIO m) =>
-    Int8                                    -- c
-    -> m Int32                              -- result
-asciiXdigitValue c = liftIO $ do
-    result <- g_ascii_xdigit_value c
-    return result
-
-
--- function g_ascii_toupper
--- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_toupper" g_ascii_toupper :: 
-    Int8 ->                                 -- c : TBasicType TInt8
-    IO Int8
-
-
-asciiToupper ::
-    (MonadIO m) =>
-    Int8                                    -- c
-    -> m Int8                               -- result
-asciiToupper c = liftIO $ do
-    result <- g_ascii_toupper c
-    return result
-
-
--- function g_ascii_tolower
--- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_tolower" g_ascii_tolower :: 
-    Int8 ->                                 -- c : TBasicType TInt8
-    IO Int8
-
-
-asciiTolower ::
-    (MonadIO m) =>
-    Int8                                    -- c
-    -> m Int8                               -- result
-asciiTolower c = liftIO $ do
-    result <- g_ascii_tolower c
-    return result
-
-
--- function g_ascii_strup
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_strup" g_ascii_strup :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    IO CString
-
-
-asciiStrup ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> m T.Text                             -- result
-asciiStrup str len = liftIO $ do
-    str' <- textToCString str
-    result <- g_ascii_strup str' len
-    checkUnexpectedReturnNULL "g_ascii_strup" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_ascii_strtoull
--- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "base", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_strtoull" g_ascii_strtoull :: 
-    CString ->                              -- nptr : TBasicType TUTF8
-    CString ->                              -- endptr : TBasicType TUTF8
-    Word32 ->                               -- base : TBasicType TUInt32
-    IO Word64
-
-
-asciiStrtoull ::
-    (MonadIO m) =>
-    T.Text                                  -- nptr
-    -> T.Text                               -- endptr
-    -> Word32                               -- base
-    -> m Word64                             -- result
-asciiStrtoull nptr endptr base = liftIO $ do
-    nptr' <- textToCString nptr
-    endptr' <- textToCString endptr
-    result <- g_ascii_strtoull nptr' endptr' base
-    freeMem nptr'
-    freeMem endptr'
-    return result
-
-
--- function g_ascii_strtoll
--- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "base", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_strtoll" g_ascii_strtoll :: 
-    CString ->                              -- nptr : TBasicType TUTF8
-    CString ->                              -- endptr : TBasicType TUTF8
-    Word32 ->                               -- base : TBasicType TUInt32
-    IO Int64
-
-
-asciiStrtoll ::
-    (MonadIO m) =>
-    T.Text                                  -- nptr
-    -> T.Text                               -- endptr
-    -> Word32                               -- base
-    -> m Int64                              -- result
-asciiStrtoll nptr endptr base = liftIO $ do
-    nptr' <- textToCString nptr
-    endptr' <- textToCString endptr
-    result <- g_ascii_strtoll nptr' endptr' base
-    freeMem nptr'
-    freeMem endptr'
-    return result
-
-
--- function g_ascii_strtod
--- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TDouble
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_strtod" g_ascii_strtod :: 
-    CString ->                              -- nptr : TBasicType TUTF8
-    CString ->                              -- endptr : TBasicType TUTF8
-    IO CDouble
-
-
-asciiStrtod ::
-    (MonadIO m) =>
-    T.Text                                  -- nptr
-    -> T.Text                               -- endptr
-    -> m Double                             -- result
-asciiStrtod nptr endptr = liftIO $ do
-    nptr' <- textToCString nptr
-    endptr' <- textToCString endptr
-    result <- g_ascii_strtod nptr' endptr'
-    let result' = realToFrac result
-    freeMem nptr'
-    freeMem endptr'
-    return result'
-
-
--- function g_ascii_strncasecmp
--- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_strncasecmp" g_ascii_strncasecmp :: 
-    CString ->                              -- s1 : TBasicType TUTF8
-    CString ->                              -- s2 : TBasicType TUTF8
-    Word64 ->                               -- n : TBasicType TUInt64
-    IO Int32
-
-
-asciiStrncasecmp ::
-    (MonadIO m) =>
-    T.Text                                  -- s1
-    -> T.Text                               -- s2
-    -> Word64                               -- n
-    -> m Int32                              -- result
-asciiStrncasecmp s1 s2 n = liftIO $ do
-    s1' <- textToCString s1
-    s2' <- textToCString s2
-    result <- g_ascii_strncasecmp s1' s2' n
-    freeMem s1'
-    freeMem s2'
-    return result
-
-
--- function g_ascii_strdown
--- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_strdown" g_ascii_strdown :: 
-    CString ->                              -- str : TBasicType TUTF8
-    Int64 ->                                -- len : TBasicType TInt64
-    IO CString
-
-
-asciiStrdown ::
-    (MonadIO m) =>
-    T.Text                                  -- str
-    -> Int64                                -- len
-    -> m T.Text                             -- result
-asciiStrdown str len = liftIO $ do
-    str' <- textToCString str
-    result <- g_ascii_strdown str' len
-    checkUnexpectedReturnNULL "g_ascii_strdown" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function g_ascii_strcasecmp
--- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_strcasecmp" g_ascii_strcasecmp :: 
-    CString ->                              -- s1 : TBasicType TUTF8
-    CString ->                              -- s2 : TBasicType TUTF8
-    IO Int32
-
-
-asciiStrcasecmp ::
-    (MonadIO m) =>
-    T.Text                                  -- s1
-    -> T.Text                               -- s2
-    -> m Int32                              -- result
-asciiStrcasecmp s1 s2 = liftIO $ do
-    s1' <- textToCString s1
-    s2' <- textToCString s2
-    result <- g_ascii_strcasecmp s1' s2'
-    freeMem s1'
-    freeMem s2'
-    return result
-
-
--- function g_ascii_formatd
--- Args : [Arg {argCName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_formatd" g_ascii_formatd :: 
-    CString ->                              -- buffer : TBasicType TUTF8
-    Int32 ->                                -- buf_len : TBasicType TInt32
-    CString ->                              -- format : TBasicType TUTF8
-    CDouble ->                              -- d : TBasicType TDouble
-    IO CString
-
-
-asciiFormatd ::
-    (MonadIO m) =>
-    T.Text                                  -- buffer
-    -> Int32                                -- bufLen
-    -> T.Text                               -- format
-    -> Double                               -- d
-    -> m T.Text                             -- result
-asciiFormatd buffer bufLen format d = liftIO $ do
-    buffer' <- textToCString buffer
-    format' <- textToCString format
-    let d' = realToFrac d
-    result <- g_ascii_formatd buffer' bufLen format' d'
-    checkUnexpectedReturnNULL "g_ascii_formatd" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem buffer'
-    freeMem format'
-    return result'
-
-
--- function g_ascii_dtostr
--- Args : [Arg {argCName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_dtostr" g_ascii_dtostr :: 
-    CString ->                              -- buffer : TBasicType TUTF8
-    Int32 ->                                -- buf_len : TBasicType TInt32
-    CDouble ->                              -- d : TBasicType TDouble
-    IO CString
-
-
-asciiDtostr ::
-    (MonadIO m) =>
-    T.Text                                  -- buffer
-    -> Int32                                -- bufLen
-    -> Double                               -- d
-    -> m T.Text                             -- result
-asciiDtostr buffer bufLen d = liftIO $ do
-    buffer' <- textToCString buffer
-    let d' = realToFrac d
-    result <- g_ascii_dtostr buffer' bufLen d'
-    checkUnexpectedReturnNULL "g_ascii_dtostr" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem buffer'
-    return result'
-
-
--- function g_ascii_digit_value
--- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_ascii_digit_value" g_ascii_digit_value :: 
-    Int8 ->                                 -- c : TBasicType TInt8
-    IO Int32
-
-
-asciiDigitValue ::
-    (MonadIO m) =>
-    Int8                                    -- c
-    -> m Int32                              -- result
-asciiDigitValue c = liftIO $ do
-    result <- g_ascii_digit_value c
-    return result
-
-
--- function g_access
--- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_access" g_access :: 
-    CString ->                              -- filename : TBasicType TUTF8
-    Int32 ->                                -- mode : TBasicType TInt32
+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
+
+import GI.GLib.Types
+import GI.GLib.Callbacks
+
+-- function g_warn_message
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "warnexpr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_warn_message" g_warn_message :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt
+    CString ->                              -- func : TBasicType TUTF8
+    CString ->                              -- warnexpr : TBasicType TUTF8
+    IO ()
+
+
+warnMessage ::
+    (MonadIO m) =>
+    T.Text                                  -- domain
+    -> T.Text                               -- file
+    -> Int32                                -- line
+    -> T.Text                               -- func
+    -> T.Text                               -- warnexpr
+    -> m ()                                 -- result
+warnMessage domain file line func warnexpr = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    warnexpr' <- textToCString warnexpr
+    g_warn_message domain' file' line func' warnexpr'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem warnexpr'
+    return ()
+
+
+-- function g_variant_get_gtype
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TGType)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_get_gtype" g_variant_get_gtype :: 
+    IO CGType
+
+
+variantGetGtype ::
+    (MonadIO m) =>
+    m GType                                 -- result
+variantGetGtype  = liftIO $ do
+    result <- g_variant_get_gtype
+    let result' = GType result
+    return result'
+
+
+-- function g_utf8_validate
+-- Args : [Arg {argCName = "str", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_validate" g_utf8_validate :: 
+    Ptr Word8 ->                            -- str : TCArray False (-1) 1 (TBasicType TUInt8)
+    Int64 ->                                -- max_len : TBasicType TInt64
+    Ptr CString ->                          -- end : TBasicType TUTF8
+    IO CInt
+
+
+utf8Validate ::
+    (MonadIO m) =>
+    ByteString                              -- str
+    -> m (Bool,T.Text)                      -- result
+utf8Validate str = liftIO $ do
+    let maxLen = fromIntegral $ B.length str
+    str' <- packByteString str
+    end <- allocMem :: IO (Ptr CString)
+    result <- g_utf8_validate str' maxLen end
+    let result' = (/= 0) result
+    end' <- peek end
+    end'' <- cstringToText end'
+    freeMem str'
+    freeMem end
+    return (result', end'')
+
+
+-- function g_utf8_substring
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_pos", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_substring" g_utf8_substring :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CLong ->                                -- start_pos : TBasicType TLong
+    CLong ->                                -- end_pos : TBasicType TLong
+    IO CString
+
+
+utf8Substring ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> CLong                                -- startPos
+    -> CLong                                -- endPos
+    -> m T.Text                             -- result
+utf8Substring str startPos endPos = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_substring str' startPos endPos
+    checkUnexpectedReturnNULL "g_utf8_substring" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_strup
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strup" g_utf8_strup :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8Strup ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> m T.Text                             -- result
+utf8Strup str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_strup str' len
+    checkUnexpectedReturnNULL "g_utf8_strup" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_strreverse
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strreverse" g_utf8_strreverse :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8Strreverse ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> m T.Text                             -- result
+utf8Strreverse str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_strreverse str' len
+    checkUnexpectedReturnNULL "g_utf8_strreverse" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_strrchr
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strrchr" g_utf8_strrchr :: 
+    CString ->                              -- p : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CString
+
+
+utf8Strrchr ::
+    (MonadIO m) =>
+    T.Text                                  -- p
+    -> Int64                                -- len
+    -> Char                                 -- c
+    -> m T.Text                             -- result
+utf8Strrchr p len c = liftIO $ do
+    p' <- textToCString p
+    let c' = (fromIntegral . ord) c
+    result <- g_utf8_strrchr p' len c'
+    checkUnexpectedReturnNULL "g_utf8_strrchr" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_strncpy
+-- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strncpy" g_utf8_strncpy :: 
+    CString ->                              -- dest : TBasicType TUTF8
+    CString ->                              -- src : TBasicType TUTF8
+    Word64 ->                               -- n : TBasicType TUInt64
+    IO CString
+
+
+utf8Strncpy ::
+    (MonadIO m) =>
+    T.Text                                  -- dest
+    -> T.Text                               -- src
+    -> Word64                               -- n
+    -> m T.Text                             -- result
+utf8Strncpy dest src n = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_utf8_strncpy dest' src' n
+    checkUnexpectedReturnNULL "g_utf8_strncpy" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem dest'
+    freeMem src'
+    return result'
+
+
+-- function g_utf8_strlen
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TLong)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strlen" g_utf8_strlen :: 
+    CString ->                              -- p : TBasicType TUTF8
+    Int64 ->                                -- max : TBasicType TInt64
+    IO CLong
+
+
+utf8Strlen ::
+    (MonadIO m) =>
+    T.Text                                  -- p
+    -> Int64                                -- max
+    -> m CLong                              -- result
+utf8Strlen p max = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_strlen p' max
+    freeMem p'
+    return result
+
+
+-- function g_utf8_strdown
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strdown" g_utf8_strdown :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8Strdown ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> m T.Text                             -- result
+utf8Strdown str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_strdown str' len
+    checkUnexpectedReturnNULL "g_utf8_strdown" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_strchr
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strchr" g_utf8_strchr :: 
+    CString ->                              -- p : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CString
+
+
+utf8Strchr ::
+    (MonadIO m) =>
+    T.Text                                  -- p
+    -> Int64                                -- len
+    -> Char                                 -- c
+    -> m T.Text                             -- result
+utf8Strchr p len c = liftIO $ do
+    p' <- textToCString p
+    let c' = (fromIntegral . ord) c
+    result <- g_utf8_strchr p' len c'
+    checkUnexpectedReturnNULL "g_utf8_strchr" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_prev_char
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_prev_char" g_utf8_prev_char :: 
+    CString ->                              -- p : TBasicType TUTF8
+    IO CString
+
+
+utf8PrevChar ::
+    (MonadIO m) =>
+    T.Text                                  -- p
+    -> m T.Text                             -- result
+utf8PrevChar p = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_prev_char p'
+    checkUnexpectedReturnNULL "g_utf8_prev_char" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_pointer_to_offset
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TLong)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_pointer_to_offset" g_utf8_pointer_to_offset :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CString ->                              -- pos : TBasicType TUTF8
+    IO CLong
+
+
+utf8PointerToOffset ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> T.Text                               -- pos
+    -> m CLong                              -- result
+utf8PointerToOffset str pos = liftIO $ do
+    str' <- textToCString str
+    pos' <- textToCString pos
+    result <- g_utf8_pointer_to_offset str' pos'
+    freeMem str'
+    freeMem pos'
+    return result
+
+
+-- function g_utf8_offset_to_pointer
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_offset_to_pointer" g_utf8_offset_to_pointer :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CLong ->                                -- offset : TBasicType TLong
+    IO CString
+
+
+utf8OffsetToPointer ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> CLong                                -- offset
+    -> m T.Text                             -- result
+utf8OffsetToPointer str offset = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_offset_to_pointer str' offset
+    checkUnexpectedReturnNULL "g_utf8_offset_to_pointer" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_normalize
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface "GLib" "NormalizeMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_normalize" g_utf8_normalize :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    CUInt ->                                -- mode : TInterface "GLib" "NormalizeMode"
+    IO CString
+
+
+utf8Normalize ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> NormalizeMode                        -- mode
+    -> m T.Text                             -- result
+utf8Normalize str len mode = liftIO $ do
+    str' <- textToCString str
+    let mode' = (fromIntegral . fromEnum) mode
+    result <- g_utf8_normalize str' len mode'
+    checkUnexpectedReturnNULL "g_utf8_normalize" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_get_char_validated
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUniChar)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_get_char_validated" g_utf8_get_char_validated :: 
+    CString ->                              -- p : TBasicType TUTF8
+    Int64 ->                                -- max_len : TBasicType TInt64
+    IO CInt
+
+
+utf8GetCharValidated ::
+    (MonadIO m) =>
+    T.Text                                  -- p
+    -> Int64                                -- maxLen
+    -> m Char                               -- result
+utf8GetCharValidated p maxLen = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_get_char_validated p' maxLen
+    let result' = (chr . fromIntegral) result
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_get_char
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUniChar)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_get_char" g_utf8_get_char :: 
+    CString ->                              -- p : TBasicType TUTF8
+    IO CInt
+
+
+utf8GetChar ::
+    (MonadIO m) =>
+    T.Text                                  -- p
+    -> m Char                               -- result
+utf8GetChar p = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_get_char p'
+    let result' = (chr . fromIntegral) result
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_find_prev_char
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_find_prev_char" g_utf8_find_prev_char :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CString ->                              -- p : TBasicType TUTF8
+    IO CString
+
+
+utf8FindPrevChar ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> T.Text                               -- p
+    -> m T.Text                             -- result
+utf8FindPrevChar str p = liftIO $ do
+    str' <- textToCString str
+    p' <- textToCString p
+    result <- g_utf8_find_prev_char str' p'
+    checkUnexpectedReturnNULL "g_utf8_find_prev_char" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_find_next_char
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_find_next_char" g_utf8_find_next_char :: 
+    CString ->                              -- p : TBasicType TUTF8
+    CString ->                              -- end : TBasicType TUTF8
+    IO CString
+
+
+utf8FindNextChar ::
+    (MonadIO m) =>
+    T.Text                                  -- p
+    -> T.Text                               -- end
+    -> m T.Text                             -- result
+utf8FindNextChar p end = liftIO $ do
+    p' <- textToCString p
+    end' <- textToCString end
+    result <- g_utf8_find_next_char p' end'
+    checkUnexpectedReturnNULL "g_utf8_find_next_char" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    freeMem end'
+    return result'
+
+
+-- function g_utf8_collate_key_for_filename
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_collate_key_for_filename" g_utf8_collate_key_for_filename :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8CollateKeyForFilename ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> m T.Text                             -- result
+utf8CollateKeyForFilename str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_collate_key_for_filename str' len
+    checkUnexpectedReturnNULL "g_utf8_collate_key_for_filename" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_collate_key
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_collate_key" g_utf8_collate_key :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8CollateKey ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> m T.Text                             -- result
+utf8CollateKey str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_collate_key str' len
+    checkUnexpectedReturnNULL "g_utf8_collate_key" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_collate
+-- Args : [Arg {argCName = "str1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_collate" g_utf8_collate :: 
+    CString ->                              -- str1 : TBasicType TUTF8
+    CString ->                              -- str2 : TBasicType TUTF8
+    IO Int32
+
+
+utf8Collate ::
+    (MonadIO m) =>
+    T.Text                                  -- str1
+    -> T.Text                               -- str2
+    -> m Int32                              -- result
+utf8Collate str1 str2 = liftIO $ do
+    str1' <- textToCString str1
+    str2' <- textToCString str2
+    result <- g_utf8_collate str1' str2'
+    freeMem str1'
+    freeMem str2'
+    return result
+
+
+-- function g_utf8_casefold
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_casefold" g_utf8_casefold :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8Casefold ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> m T.Text                             -- result
+utf8Casefold str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_casefold str' len
+    checkUnexpectedReturnNULL "g_utf8_casefold" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_usleep
+-- Args : [Arg {argCName = "microseconds", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_usleep" g_usleep :: 
+    CULong ->                               -- microseconds : TBasicType TULong
+    IO ()
+
+
+usleep ::
+    (MonadIO m) =>
+    CULong                                  -- microseconds
+    -> m ()                                 -- result
+usleep microseconds = liftIO $ do
+    g_usleep microseconds
+    return ()
+
+
+-- function g_uri_unescape_string
+-- Args : [Arg {argCName = "escaped_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "illegal_characters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_uri_unescape_string" g_uri_unescape_string :: 
+    CString ->                              -- escaped_string : TBasicType TUTF8
+    CString ->                              -- illegal_characters : TBasicType TUTF8
+    IO CString
+
+
+uriUnescapeString ::
+    (MonadIO m) =>
+    T.Text                                  -- escapedString
+    -> Maybe (T.Text)                       -- illegalCharacters
+    -> m T.Text                             -- result
+uriUnescapeString escapedString illegalCharacters = liftIO $ do
+    escapedString' <- textToCString escapedString
+    maybeIllegalCharacters <- case illegalCharacters of
+        Nothing -> return nullPtr
+        Just jIllegalCharacters -> do
+            jIllegalCharacters' <- textToCString jIllegalCharacters
+            return jIllegalCharacters'
+    result <- g_uri_unescape_string escapedString' maybeIllegalCharacters
+    checkUnexpectedReturnNULL "g_uri_unescape_string" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem escapedString'
+    freeMem maybeIllegalCharacters
+    return result'
+
+
+-- function g_uri_unescape_segment
+-- Args : [Arg {argCName = "escaped_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "escaped_string_end", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "illegal_characters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_uri_unescape_segment" g_uri_unescape_segment :: 
+    CString ->                              -- escaped_string : TBasicType TUTF8
+    CString ->                              -- escaped_string_end : TBasicType TUTF8
+    CString ->                              -- illegal_characters : TBasicType TUTF8
+    IO CString
+
+
+uriUnescapeSegment ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- escapedString
+    -> Maybe (T.Text)                       -- escapedStringEnd
+    -> Maybe (T.Text)                       -- illegalCharacters
+    -> m T.Text                             -- result
+uriUnescapeSegment escapedString escapedStringEnd illegalCharacters = liftIO $ do
+    maybeEscapedString <- case escapedString of
+        Nothing -> return nullPtr
+        Just jEscapedString -> do
+            jEscapedString' <- textToCString jEscapedString
+            return jEscapedString'
+    maybeEscapedStringEnd <- case escapedStringEnd of
+        Nothing -> return nullPtr
+        Just jEscapedStringEnd -> do
+            jEscapedStringEnd' <- textToCString jEscapedStringEnd
+            return jEscapedStringEnd'
+    maybeIllegalCharacters <- case illegalCharacters of
+        Nothing -> return nullPtr
+        Just jIllegalCharacters -> do
+            jIllegalCharacters' <- textToCString jIllegalCharacters
+            return jIllegalCharacters'
+    result <- g_uri_unescape_segment maybeEscapedString maybeEscapedStringEnd maybeIllegalCharacters
+    checkUnexpectedReturnNULL "g_uri_unescape_segment" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem maybeEscapedString
+    freeMem maybeEscapedStringEnd
+    freeMem maybeIllegalCharacters
+    return result'
+
+
+-- function g_uri_parse_scheme
+-- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_uri_parse_scheme" g_uri_parse_scheme :: 
+    CString ->                              -- uri : TBasicType TUTF8
+    IO CString
+
+
+uriParseScheme ::
+    (MonadIO m) =>
+    T.Text                                  -- uri
+    -> m T.Text                             -- result
+uriParseScheme uri = liftIO $ do
+    uri' <- textToCString uri
+    result <- g_uri_parse_scheme uri'
+    checkUnexpectedReturnNULL "g_uri_parse_scheme" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem uri'
+    return result'
+
+
+-- function g_uri_list_extract_uris
+-- Args : [Arg {argCName = "uri_list", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_uri_list_extract_uris" g_uri_list_extract_uris :: 
+    CString ->                              -- uri_list : TBasicType TUTF8
+    IO (Ptr CString)
+
+
+uriListExtractUris ::
+    (MonadIO m) =>
+    T.Text                                  -- uriList
+    -> m [T.Text]                           -- result
+uriListExtractUris uriList = liftIO $ do
+    uriList' <- textToCString uriList
+    result <- g_uri_list_extract_uris uriList'
+    checkUnexpectedReturnNULL "g_uri_list_extract_uris" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem uriList'
+    return result'
+
+
+-- function g_uri_escape_string
+-- Args : [Arg {argCName = "unescaped", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reserved_chars_allowed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allow_utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_uri_escape_string" g_uri_escape_string :: 
+    CString ->                              -- unescaped : TBasicType TUTF8
+    CString ->                              -- reserved_chars_allowed : TBasicType TUTF8
+    CInt ->                                 -- allow_utf8 : TBasicType TBoolean
+    IO CString
+
+
+uriEscapeString ::
+    (MonadIO m) =>
+    T.Text                                  -- unescaped
+    -> Maybe (T.Text)                       -- reservedCharsAllowed
+    -> Bool                                 -- allowUtf8
+    -> m T.Text                             -- result
+uriEscapeString unescaped reservedCharsAllowed allowUtf8 = liftIO $ do
+    unescaped' <- textToCString unescaped
+    maybeReservedCharsAllowed <- case reservedCharsAllowed of
+        Nothing -> return nullPtr
+        Just jReservedCharsAllowed -> do
+            jReservedCharsAllowed' <- textToCString jReservedCharsAllowed
+            return jReservedCharsAllowed'
+    let allowUtf8' = (fromIntegral . fromEnum) allowUtf8
+    result <- g_uri_escape_string unescaped' maybeReservedCharsAllowed allowUtf8'
+    checkUnexpectedReturnNULL "g_uri_escape_string" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem unescaped'
+    freeMem maybeReservedCharsAllowed
+    return result'
+
+
+-- function g_unsetenv
+-- Args : [Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unsetenv" g_unsetenv :: 
+    CString ->                              -- variable : TBasicType TUTF8
+    IO ()
+
+
+unsetenv ::
+    (MonadIO m) =>
+    T.Text                                  -- variable
+    -> m ()                                 -- result
+unsetenv variable = liftIO $ do
+    variable' <- textToCString variable
+    g_unsetenv variable'
+    freeMem variable'
+    return ()
+
+
+-- function g_unlink
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unlink" g_unlink :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    IO Int32
+
+
+unlink ::
+    (MonadIO m) =>
+    T.Text                                  -- filename
+    -> m Int32                              -- result
+unlink filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_unlink filename'
+    freeMem filename'
+    return result
+
+
+-- function g_unix_signal_source_new
+-- Args : [Arg {argCName = "signum", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "Source")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unix_signal_source_new" g_unix_signal_source_new :: 
+    Int32 ->                                -- signum : TBasicType TInt
+    IO (Ptr Source)
+
+
+unixSignalSourceNew ::
+    (MonadIO m) =>
+    Int32                                   -- signum
+    -> m Source                             -- result
+unixSignalSourceNew signum = liftIO $ do
+    result <- g_unix_signal_source_new signum
+    checkUnexpectedReturnNULL "g_unix_signal_source_new" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_unix_signal_add_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signum", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler", argType = TInterface "GLib" "SourceFunc", 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 = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unix_signal_add_full" g_unix_signal_add_full :: 
+    Int32 ->                                -- priority : TBasicType TInt
+    Int32 ->                                -- signum : TBasicType TInt
+    FunPtr SourceFuncC ->                   -- handler : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- user_data : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+unixSignalAdd ::
+    (MonadIO m) =>
+    Int32                                   -- priority
+    -> Int32                                -- signum
+    -> SourceFunc                           -- handler
+    -> m Word32                             -- result
+unixSignalAdd priority signum handler = liftIO $ do
+    handler' <- mkSourceFunc (sourceFuncWrapper Nothing handler)
+    let userData = castFunPtrToPtr handler'
+    let notify = safeFreeFunPtrPtr
+    result <- g_unix_signal_add_full priority signum handler' userData notify
+    return result
+
+
+-- function g_unix_set_fd_nonblocking
+-- Args : [Arg {argCName = "fd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nonblock", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_unix_set_fd_nonblocking" g_unix_set_fd_nonblocking :: 
+    Int32 ->                                -- fd : TBasicType TInt
+    CInt ->                                 -- nonblock : TBasicType TBoolean
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+unixSetFdNonblocking ::
+    (MonadIO m) =>
+    Int32                                   -- fd
+    -> Bool                                 -- nonblock
+    -> m ()                                 -- result
+unixSetFdNonblocking fd nonblock = liftIO $ do
+    let nonblock' = (fromIntegral . fromEnum) nonblock
+    onException (do
+        _ <- propagateGError $ g_unix_set_fd_nonblocking fd nonblock'
+        return ()
+     ) (do
+        return ()
+     )
+
+
+-- function g_unix_open_pipe
+-- Args : [Arg {argCName = "fds", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_unix_open_pipe" g_unix_open_pipe :: 
+    Int32 ->                                -- fds : TBasicType TInt
+    Int32 ->                                -- flags : TBasicType TInt
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+unixOpenPipe ::
+    (MonadIO m) =>
+    Int32                                   -- fds
+    -> Int32                                -- flags
+    -> m ()                                 -- result
+unixOpenPipe fds flags = liftIO $ do
+    onException (do
+        _ <- propagateGError $ g_unix_open_pipe fds flags
+        return ()
+     ) (do
+        return ()
+     )
+
+
+-- function g_unix_fd_source_new
+-- Args : [Arg {argCName = "fd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "Source")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unix_fd_source_new" g_unix_fd_source_new :: 
+    Int32 ->                                -- fd : TBasicType TInt
+    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
+    IO (Ptr Source)
+
+
+unixFdSourceNew ::
+    (MonadIO m) =>
+    Int32                                   -- fd
+    -> [IOCondition]                        -- condition
+    -> m Source                             -- result
+unixFdSourceNew fd condition = liftIO $ do
+    let condition' = gflagsToWord condition
+    result <- g_unix_fd_source_new fd condition'
+    checkUnexpectedReturnNULL "g_unix_fd_source_new" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_unix_fd_add_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt, 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 = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "UnixFDSourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, 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 = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unix_fd_add_full" g_unix_fd_add_full :: 
+    Int32 ->                                -- priority : TBasicType TInt
+    Int32 ->                                -- fd : TBasicType TInt
+    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
+    FunPtr UnixFDSourceFuncC ->             -- function : TInterface "GLib" "UnixFDSourceFunc"
+    Ptr () ->                               -- user_data : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+unixFdAddFull ::
+    (MonadIO m) =>
+    Int32                                   -- priority
+    -> Int32                                -- fd
+    -> [IOCondition]                        -- condition
+    -> UnixFDSourceFunc                     -- function
+    -> m Word32                             -- result
+unixFdAddFull priority fd condition function = liftIO $ do
+    let condition' = gflagsToWord condition
+    function' <- mkUnixFDSourceFunc (unixFDSourceFuncWrapper Nothing function)
+    let userData = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_unix_fd_add_full priority fd condition' function' userData notify
+    return result
+
+
+-- function g_unix_error_quark
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unix_error_quark" g_unix_error_quark :: 
+    IO Word32
+
+
+unixErrorQuark ::
+    (MonadIO m) =>
+    m Word32                                -- result
+unixErrorQuark  = liftIO $ do
+    result <- g_unix_error_quark
+    return result
+
+
+-- function g_unicode_script_to_iso15924
+-- Args : [Arg {argCName = "script", argType = TInterface "GLib" "UnicodeScript", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unicode_script_to_iso15924" g_unicode_script_to_iso15924 :: 
+    CUInt ->                                -- script : TInterface "GLib" "UnicodeScript"
+    IO Word32
+
+
+unicodeScriptToIso15924 ::
+    (MonadIO m) =>
+    UnicodeScript                           -- script
+    -> m Word32                             -- result
+unicodeScriptToIso15924 script = liftIO $ do
+    let script' = (fromIntegral . fromEnum) script
+    result <- g_unicode_script_to_iso15924 script'
+    return result
+
+
+-- function g_unicode_script_from_iso15924
+-- Args : [Arg {argCName = "iso15924", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "UnicodeScript")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unicode_script_from_iso15924" g_unicode_script_from_iso15924 :: 
+    Word32 ->                               -- iso15924 : TBasicType TUInt32
+    IO CUInt
+
+
+unicodeScriptFromIso15924 ::
+    (MonadIO m) =>
+    Word32                                  -- iso15924
+    -> m UnicodeScript                      -- result
+unicodeScriptFromIso15924 iso15924 = liftIO $ do
+    result <- g_unicode_script_from_iso15924 iso15924
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+
+-- function g_unicode_canonical_ordering
+-- Args : [Arg {argCName = "string", argType = TBasicType TUniChar, 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}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unicode_canonical_ordering" g_unicode_canonical_ordering :: 
+    CInt ->                                 -- string : TBasicType TUniChar
+    Word64 ->                               -- len : TBasicType TUInt64
+    IO ()
+
+
+unicodeCanonicalOrdering ::
+    (MonadIO m) =>
+    Char                                    -- string
+    -> Word64                               -- len
+    -> m ()                                 -- result
+unicodeCanonicalOrdering string len = liftIO $ do
+    let string' = (fromIntegral . ord) string
+    g_unicode_canonical_ordering string' len
+    return ()
+
+
+-- function g_unicode_canonical_decomposition
+-- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUniChar)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unicode_canonical_decomposition" g_unicode_canonical_decomposition :: 
+    CInt ->                                 -- ch : TBasicType TUniChar
+    Word64 ->                               -- result_len : TBasicType TUInt64
+    IO CInt
+
+{-# DEPRECATED unicodeCanonicalDecomposition ["(Since version 2.30)","Use the more flexible g_unichar_fully_decompose()","  instead."]#-}
+unicodeCanonicalDecomposition ::
+    (MonadIO m) =>
+    Char                                    -- ch
+    -> Word64                               -- resultLen
+    -> m Char                               -- result
+unicodeCanonicalDecomposition ch resultLen = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    result <- g_unicode_canonical_decomposition ch' resultLen
+    let result' = (chr . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_xdigit_value
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_xdigit_value" g_unichar_xdigit_value :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO Int32
+
+
+unicharXdigitValue ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Int32                              -- result
+unicharXdigitValue c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_xdigit_value c'
+    return result
+
+
+-- function g_unichar_validate
+-- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_validate" g_unichar_validate :: 
+    CInt ->                                 -- ch : TBasicType TUniChar
+    IO CInt
+
+
+unicharValidate ::
+    (MonadIO m) =>
+    Char                                    -- ch
+    -> m Bool                               -- result
+unicharValidate ch = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    result <- g_unichar_validate ch'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_type
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "UnicodeType")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_type" g_unichar_type :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CUInt
+
+
+unicharType ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m UnicodeType                        -- result
+unicharType c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_type c'
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_toupper
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUniChar)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_toupper" g_unichar_toupper :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharToupper ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Char                               -- result
+unicharToupper c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_toupper c'
+    let result' = (chr . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_totitle
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUniChar)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_totitle" g_unichar_totitle :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharTotitle ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Char                               -- result
+unicharTotitle c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_totitle c'
+    let result' = (chr . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_tolower
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUniChar)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_tolower" g_unichar_tolower :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharTolower ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Char                               -- result
+unicharTolower c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_tolower c'
+    let result' = (chr . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_to_utf8
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "outbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_to_utf8" g_unichar_to_utf8 :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    CString ->                              -- outbuf : TBasicType TUTF8
+    IO Int32
+
+
+unicharToUtf8 ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> T.Text                               -- outbuf
+    -> m Int32                              -- result
+unicharToUtf8 c outbuf = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    outbuf' <- textToCString outbuf
+    result <- g_unichar_to_utf8 c' outbuf'
+    freeMem outbuf'
+    return result
+
+
+-- function g_unichar_iszerowidth
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_iszerowidth" g_unichar_iszerowidth :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIszerowidth ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIszerowidth c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iszerowidth c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isxdigit
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isxdigit" g_unichar_isxdigit :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsxdigit ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIsxdigit c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isxdigit c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_iswide_cjk
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_iswide_cjk" g_unichar_iswide_cjk :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIswideCjk ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIswideCjk c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iswide_cjk c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_iswide
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_iswide" g_unichar_iswide :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIswide ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIswide c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iswide c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isupper
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isupper" g_unichar_isupper :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsupper ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIsupper c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isupper c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_istitle
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_istitle" g_unichar_istitle :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIstitle ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIstitle c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_istitle c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isspace
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isspace" g_unichar_isspace :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsspace ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIsspace c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isspace c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_ispunct
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_ispunct" g_unichar_ispunct :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIspunct ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIspunct c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_ispunct c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isprint
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isprint" g_unichar_isprint :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsprint ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIsprint c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isprint c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_ismark
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_ismark" g_unichar_ismark :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsmark ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIsmark c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_ismark c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_islower
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_islower" g_unichar_islower :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIslower ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIslower c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_islower c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isgraph
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isgraph" g_unichar_isgraph :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsgraph ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIsgraph c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isgraph c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isdigit
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isdigit" g_unichar_isdigit :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsdigit ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIsdigit c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isdigit c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isdefined
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isdefined" g_unichar_isdefined :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsdefined ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIsdefined c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isdefined c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_iscntrl
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_iscntrl" g_unichar_iscntrl :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIscntrl ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIscntrl c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iscntrl c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isalpha
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isalpha" g_unichar_isalpha :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsalpha ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIsalpha c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isalpha c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isalnum
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isalnum" g_unichar_isalnum :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsalnum ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Bool                               -- result
+unicharIsalnum c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isalnum c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_get_script
+-- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "UnicodeScript")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_get_script" g_unichar_get_script :: 
+    CInt ->                                 -- ch : TBasicType TUniChar
+    IO CUInt
+
+
+unicharGetScript ::
+    (MonadIO m) =>
+    Char                                    -- ch
+    -> m UnicodeScript                      -- result
+unicharGetScript ch = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    result <- g_unichar_get_script ch'
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_get_mirror_char
+-- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mirrored_ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_get_mirror_char" g_unichar_get_mirror_char :: 
+    CInt ->                                 -- ch : TBasicType TUniChar
+    CInt ->                                 -- mirrored_ch : TBasicType TUniChar
+    IO CInt
+
+
+unicharGetMirrorChar ::
+    (MonadIO m) =>
+    Char                                    -- ch
+    -> Char                                 -- mirroredCh
+    -> m Bool                               -- result
+unicharGetMirrorChar ch mirroredCh = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    let mirroredCh' = (fromIntegral . ord) mirroredCh
+    result <- g_unichar_get_mirror_char ch' mirroredCh'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_digit_value
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_digit_value" g_unichar_digit_value :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO Int32
+
+
+unicharDigitValue ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m Int32                              -- result
+unicharDigitValue c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_digit_value c'
+    return result
+
+
+-- function g_unichar_decompose
+-- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "a", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_decompose" g_unichar_decompose :: 
+    CInt ->                                 -- ch : TBasicType TUniChar
+    CInt ->                                 -- a : TBasicType TUniChar
+    CInt ->                                 -- b : TBasicType TUniChar
+    IO CInt
+
+
+unicharDecompose ::
+    (MonadIO m) =>
+    Char                                    -- ch
+    -> Char                                 -- a
+    -> Char                                 -- b
+    -> m Bool                               -- result
+unicharDecompose ch a b = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    let a' = (fromIntegral . ord) a
+    let b' = (fromIntegral . ord) b
+    result <- g_unichar_decompose ch' a' b'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_compose
+-- Args : [Arg {argCName = "a", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_compose" g_unichar_compose :: 
+    CInt ->                                 -- a : TBasicType TUniChar
+    CInt ->                                 -- b : TBasicType TUniChar
+    CInt ->                                 -- ch : TBasicType TUniChar
+    IO CInt
+
+
+unicharCompose ::
+    (MonadIO m) =>
+    Char                                    -- a
+    -> Char                                 -- b
+    -> Char                                 -- ch
+    -> m Bool                               -- result
+unicharCompose a b ch = liftIO $ do
+    let a' = (fromIntegral . ord) a
+    let b' = (fromIntegral . ord) b
+    let ch' = (fromIntegral . ord) ch
+    result <- g_unichar_compose a' b' ch'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_combining_class
+-- Args : [Arg {argCName = "uc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_combining_class" g_unichar_combining_class :: 
+    CInt ->                                 -- uc : TBasicType TUniChar
+    IO Int32
+
+
+unicharCombiningClass ::
+    (MonadIO m) =>
+    Char                                    -- uc
+    -> m Int32                              -- result
+unicharCombiningClass uc = liftIO $ do
+    let uc' = (fromIntegral . ord) uc
+    result <- g_unichar_combining_class uc'
+    return result
+
+
+-- function g_unichar_break_type
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "UnicodeBreakType")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_break_type" g_unichar_break_type :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CUInt
+
+
+unicharBreakType ::
+    (MonadIO m) =>
+    Char                                    -- c
+    -> m UnicodeBreakType                   -- result
+unicharBreakType c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_break_type c'
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+
+-- function g_timeout_source_new_seconds
+-- Args : [Arg {argCName = "interval", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "Source")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timeout_source_new_seconds" g_timeout_source_new_seconds :: 
+    Word32 ->                               -- interval : TBasicType TUInt
+    IO (Ptr Source)
+
+
+timeoutSourceNewSeconds ::
+    (MonadIO m) =>
+    Word32                                  -- interval
+    -> m Source                             -- result
+timeoutSourceNewSeconds interval = liftIO $ do
+    result <- g_timeout_source_new_seconds interval
+    checkUnexpectedReturnNULL "g_timeout_source_new_seconds" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_timeout_source_new
+-- Args : [Arg {argCName = "interval", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "Source")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timeout_source_new" g_timeout_source_new :: 
+    Word32 ->                               -- interval : TBasicType TUInt
+    IO (Ptr Source)
+
+
+timeoutSourceNew ::
+    (MonadIO m) =>
+    Word32                                  -- interval
+    -> m Source                             -- result
+timeoutSourceNew interval = liftIO $ do
+    result <- g_timeout_source_new interval
+    checkUnexpectedReturnNULL "g_timeout_source_new" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_timeout_add_seconds_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timeout_add_seconds_full" g_timeout_add_seconds_full :: 
+    Int32 ->                                -- priority : TBasicType TInt
+    Word32 ->                               -- interval : TBasicType TUInt
+    FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+timeoutAddSeconds ::
+    (MonadIO m) =>
+    Int32                                   -- priority
+    -> Word32                               -- interval
+    -> SourceFunc                           -- function
+    -> m Word32                             -- result
+timeoutAddSeconds priority interval function = liftIO $ do
+    function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_timeout_add_seconds_full priority interval function' data_ notify
+    return result
+
+
+-- function g_timeout_add_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timeout_add_full" g_timeout_add_full :: 
+    Int32 ->                                -- priority : TBasicType TInt
+    Word32 ->                               -- interval : TBasicType TUInt
+    FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+timeoutAdd ::
+    (MonadIO m) =>
+    Int32                                   -- priority
+    -> Word32                               -- interval
+    -> SourceFunc                           -- function
+    -> m Word32                             -- result
+timeoutAdd priority interval function = liftIO $ do
+    function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_timeout_add_full priority interval function' data_ notify
+    return result
+
+
+-- function g_test_trap_subprocess
+-- Args : [Arg {argCName = "test_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "usec_timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_flags", argType = TInterface "GLib" "TestSubprocessFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_trap_subprocess" g_test_trap_subprocess :: 
+    CString ->                              -- test_path : TBasicType TUTF8
+    Word64 ->                               -- usec_timeout : TBasicType TUInt64
+    CUInt ->                                -- test_flags : TInterface "GLib" "TestSubprocessFlags"
+    IO ()
+
+
+testTrapSubprocess ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- testPath
+    -> Word64                               -- usecTimeout
+    -> [TestSubprocessFlags]                -- testFlags
+    -> m ()                                 -- result
+testTrapSubprocess testPath usecTimeout testFlags = liftIO $ do
+    maybeTestPath <- case testPath of
+        Nothing -> return nullPtr
+        Just jTestPath -> do
+            jTestPath' <- textToCString jTestPath
+            return jTestPath'
+    let testFlags' = gflagsToWord testFlags
+    g_test_trap_subprocess maybeTestPath usecTimeout testFlags'
+    freeMem maybeTestPath
+    return ()
+
+
+-- function g_test_trap_reached_timeout
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_trap_reached_timeout" g_test_trap_reached_timeout :: 
+    IO CInt
+
+
+testTrapReachedTimeout ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+testTrapReachedTimeout  = liftIO $ do
+    result <- g_test_trap_reached_timeout
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_test_trap_has_passed
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_trap_has_passed" g_test_trap_has_passed :: 
+    IO CInt
+
+
+testTrapHasPassed ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+testTrapHasPassed  = liftIO $ do
+    result <- g_test_trap_has_passed
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_test_trap_fork
+-- Args : [Arg {argCName = "usec_timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_trap_flags", argType = TInterface "GLib" "TestTrapFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_trap_fork" g_test_trap_fork :: 
+    Word64 ->                               -- usec_timeout : TBasicType TUInt64
+    CUInt ->                                -- test_trap_flags : TInterface "GLib" "TestTrapFlags"
+    IO CInt
+
+{-# DEPRECATED testTrapFork ["This function is implemented only on Unix platforms,","and is not always reliable due to problems inherent in","fork-without-exec. Use g_test_trap_subprocess() instead."]#-}
+testTrapFork ::
+    (MonadIO m) =>
+    Word64                                  -- usecTimeout
+    -> [TestTrapFlags]                      -- testTrapFlags
+    -> m Bool                               -- result
+testTrapFork usecTimeout testTrapFlags = liftIO $ do
+    let testTrapFlags' = gflagsToWord testTrapFlags
+    result <- g_test_trap_fork usecTimeout testTrapFlags'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_test_trap_assertions
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "assertion_flags", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_trap_assertions" g_test_trap_assertions :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt
+    CString ->                              -- func : TBasicType TUTF8
+    Word64 ->                               -- assertion_flags : TBasicType TUInt64
+    CString ->                              -- pattern : TBasicType TUTF8
+    IO ()
+
+
+testTrapAssertions ::
+    (MonadIO m) =>
+    T.Text                                  -- domain
+    -> T.Text                               -- file
+    -> Int32                                -- line
+    -> T.Text                               -- func
+    -> Word64                               -- assertionFlags
+    -> T.Text                               -- pattern
+    -> m ()                                 -- result
+testTrapAssertions domain file line func assertionFlags pattern = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    pattern' <- textToCString pattern
+    g_test_trap_assertions domain' file' line func' assertionFlags pattern'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem pattern'
+    return ()
+
+
+-- function g_test_timer_start
+-- Args : []
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_timer_start" g_test_timer_start :: 
+    IO ()
+
+
+testTimerStart ::
+    (MonadIO m) =>
+    m ()                                    -- result
+testTimerStart  = liftIO $ do
+    g_test_timer_start
+    return ()
+
+
+-- function g_test_timer_last
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TDouble)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_timer_last" g_test_timer_last :: 
+    IO CDouble
+
+
+testTimerLast ::
+    (MonadIO m) =>
+    m Double                                -- result
+testTimerLast  = liftIO $ do
+    result <- g_test_timer_last
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_test_timer_elapsed
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TDouble)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_timer_elapsed" g_test_timer_elapsed :: 
+    IO CDouble
+
+
+testTimerElapsed ::
+    (MonadIO m) =>
+    m Double                                -- result
+testTimerElapsed  = liftIO $ do
+    result <- g_test_timer_elapsed
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_test_subprocess
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_subprocess" g_test_subprocess :: 
+    IO CInt
+
+
+testSubprocess ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+testSubprocess  = liftIO $ do
+    result <- g_test_subprocess
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_test_skip
+-- Args : [Arg {argCName = "msg", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_skip" g_test_skip :: 
+    CString ->                              -- msg : TBasicType TUTF8
+    IO ()
+
+
+testSkip ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- msg
+    -> m ()                                 -- result
+testSkip msg = liftIO $ do
+    maybeMsg <- case msg of
+        Nothing -> return nullPtr
+        Just jMsg -> do
+            jMsg' <- textToCString jMsg
+            return jMsg'
+    g_test_skip maybeMsg
+    freeMem maybeMsg
+    return ()
+
+
+-- function g_test_set_nonfatal_assertions
+-- Args : []
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_set_nonfatal_assertions" g_test_set_nonfatal_assertions :: 
+    IO ()
+
+
+testSetNonfatalAssertions ::
+    (MonadIO m) =>
+    m ()                                    -- result
+testSetNonfatalAssertions  = liftIO $ do
+    g_test_set_nonfatal_assertions
+    return ()
+
+
+-- function g_test_run_suite
+-- Args : [Arg {argCName = "suite", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_run_suite" g_test_run_suite :: 
+    Ptr TestSuite ->                        -- suite : TInterface "GLib" "TestSuite"
+    IO Int32
+
+
+testRunSuite ::
+    (MonadIO m) =>
+    TestSuite                               -- suite
+    -> m Int32                              -- result
+testRunSuite suite = liftIO $ do
+    let suite' = unsafeManagedPtrGetPtr suite
+    result <- g_test_run_suite suite'
+    touchManagedPtr suite
+    return result
+
+
+-- function g_test_run
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_run" g_test_run :: 
+    IO Int32
+
+
+testRun ::
+    (MonadIO m) =>
+    m Int32                                 -- result
+testRun  = liftIO $ do
+    result <- g_test_run
+    return result
+
+
+-- function g_test_rand_int_range
+-- Args : [Arg {argCName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_rand_int_range" g_test_rand_int_range :: 
+    Int32 ->                                -- begin : TBasicType TInt32
+    Int32 ->                                -- end : TBasicType TInt32
+    IO Int32
+
+
+testRandIntRange ::
+    (MonadIO m) =>
+    Int32                                   -- begin
+    -> Int32                                -- end
+    -> m Int32                              -- result
+testRandIntRange begin end = liftIO $ do
+    result <- g_test_rand_int_range begin end
+    return result
+
+
+-- function g_test_rand_int
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_rand_int" g_test_rand_int :: 
+    IO Int32
+
+
+testRandInt ::
+    (MonadIO m) =>
+    m Int32                                 -- result
+testRandInt  = liftIO $ do
+    result <- g_test_rand_int
+    return result
+
+
+-- function g_test_rand_double_range
+-- Args : [Arg {argCName = "range_start", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "range_end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TDouble)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_rand_double_range" g_test_rand_double_range :: 
+    CDouble ->                              -- range_start : TBasicType TDouble
+    CDouble ->                              -- range_end : TBasicType TDouble
+    IO CDouble
+
+
+testRandDoubleRange ::
+    (MonadIO m) =>
+    Double                                  -- rangeStart
+    -> Double                               -- rangeEnd
+    -> m Double                             -- result
+testRandDoubleRange rangeStart rangeEnd = liftIO $ do
+    let rangeStart' = realToFrac rangeStart
+    let rangeEnd' = realToFrac rangeEnd
+    result <- g_test_rand_double_range rangeStart' rangeEnd'
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_test_rand_double
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TDouble)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_rand_double" g_test_rand_double :: 
+    IO CDouble
+
+
+testRandDouble ::
+    (MonadIO m) =>
+    m Double                                -- result
+testRandDouble  = liftIO $ do
+    result <- g_test_rand_double
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_test_queue_free
+-- Args : [Arg {argCName = "gfree_pointer", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_queue_free" g_test_queue_free :: 
+    Ptr () ->                               -- gfree_pointer : TBasicType TPtr
+    IO ()
+
+
+testQueueFree ::
+    (MonadIO m) =>
+    Ptr ()                                  -- gfreePointer
+    -> m ()                                 -- result
+testQueueFree gfreePointer = liftIO $ do
+    g_test_queue_free gfreePointer
+    return ()
+
+
+-- function g_test_queue_destroy
+-- Args : [Arg {argCName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_queue_destroy" g_test_queue_destroy :: 
+    FunPtr DestroyNotifyC ->                -- destroy_func : TInterface "GLib" "DestroyNotify"
+    Ptr () ->                               -- destroy_data : TBasicType TPtr
+    IO ()
+
+
+testQueueDestroy ::
+    (MonadIO m) =>
+    DestroyNotify                           -- destroyFunc
+    -> Ptr ()                               -- destroyData
+    -> m ()                                 -- result
+testQueueDestroy destroyFunc destroyData = liftIO $ do
+    ptrdestroyFunc <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    destroyFunc' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroyFunc) destroyFunc)
+    poke ptrdestroyFunc destroyFunc'
+    g_test_queue_destroy destroyFunc' destroyData
+    return ()
+
+
+-- function g_test_log_type_name
+-- Args : [Arg {argCName = "log_type", argType = TInterface "GLib" "TestLogType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_log_type_name" g_test_log_type_name :: 
+    CUInt ->                                -- log_type : TInterface "GLib" "TestLogType"
+    IO CString
+
+
+testLogTypeName ::
+    (MonadIO m) =>
+    TestLogType                             -- logType
+    -> m T.Text                             -- result
+testLogTypeName logType = liftIO $ do
+    let logType' = (fromIntegral . fromEnum) logType
+    result <- g_test_log_type_name logType'
+    checkUnexpectedReturnNULL "g_test_log_type_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_test_incomplete
+-- Args : [Arg {argCName = "msg", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_incomplete" g_test_incomplete :: 
+    CString ->                              -- msg : TBasicType TUTF8
+    IO ()
+
+
+testIncomplete ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- msg
+    -> m ()                                 -- result
+testIncomplete msg = liftIO $ do
+    maybeMsg <- case msg of
+        Nothing -> return nullPtr
+        Just jMsg -> do
+            jMsg' <- textToCString jMsg
+            return jMsg'
+    g_test_incomplete maybeMsg
+    freeMem maybeMsg
+    return ()
+
+
+-- function g_test_get_dir
+-- Args : [Arg {argCName = "file_type", argType = TInterface "GLib" "TestFileType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_get_dir" g_test_get_dir :: 
+    CUInt ->                                -- file_type : TInterface "GLib" "TestFileType"
+    IO CString
+
+
+testGetDir ::
+    (MonadIO m) =>
+    TestFileType                            -- fileType
+    -> m T.Text                             -- result
+testGetDir fileType = liftIO $ do
+    let fileType' = (fromIntegral . fromEnum) fileType
+    result <- g_test_get_dir fileType'
+    checkUnexpectedReturnNULL "g_test_get_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_test_failed
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_failed" g_test_failed :: 
+    IO CInt
+
+
+testFailed ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+testFailed  = liftIO $ do
+    result <- g_test_failed
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_test_fail
+-- Args : []
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_fail" g_test_fail :: 
+    IO ()
+
+
+testFail ::
+    (MonadIO m) =>
+    m ()                                    -- result
+testFail  = liftIO $ do
+    g_test_fail
+    return ()
+
+
+-- function g_test_expect_message
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_level", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_expect_message" g_test_expect_message :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CUInt ->                                -- log_level : TInterface "GLib" "LogLevelFlags"
+    CString ->                              -- pattern : TBasicType TUTF8
+    IO ()
+
+
+testExpectMessage ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- logDomain
+    -> [LogLevelFlags]                      -- logLevel
+    -> T.Text                               -- pattern
+    -> m ()                                 -- result
+testExpectMessage logDomain logLevel pattern = liftIO $ do
+    maybeLogDomain <- case logDomain of
+        Nothing -> return nullPtr
+        Just jLogDomain -> do
+            jLogDomain' <- textToCString jLogDomain
+            return jLogDomain'
+    let logLevel' = gflagsToWord logLevel
+    pattern' <- textToCString pattern
+    g_test_expect_message maybeLogDomain logLevel' pattern'
+    freeMem maybeLogDomain
+    freeMem pattern'
+    return ()
+
+
+-- function g_test_bug_base
+-- Args : [Arg {argCName = "uri_pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_bug_base" g_test_bug_base :: 
+    CString ->                              -- uri_pattern : TBasicType TUTF8
+    IO ()
+
+
+testBugBase ::
+    (MonadIO m) =>
+    T.Text                                  -- uriPattern
+    -> m ()                                 -- result
+testBugBase uriPattern = liftIO $ do
+    uriPattern' <- textToCString uriPattern
+    g_test_bug_base uriPattern'
+    freeMem uriPattern'
+    return ()
+
+
+-- function g_test_bug
+-- Args : [Arg {argCName = "bug_uri_snippet", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_bug" g_test_bug :: 
+    CString ->                              -- bug_uri_snippet : TBasicType TUTF8
+    IO ()
+
+
+testBug ::
+    (MonadIO m) =>
+    T.Text                                  -- bugUriSnippet
+    -> m ()                                 -- result
+testBug bugUriSnippet = liftIO $ do
+    bugUriSnippet' <- textToCString bugUriSnippet
+    g_test_bug bugUriSnippet'
+    freeMem bugUriSnippet'
+    return ()
+
+
+-- function g_test_assert_expected_messages_internal
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_assert_expected_messages_internal" g_test_assert_expected_messages_internal :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt
+    CString ->                              -- func : TBasicType TUTF8
+    IO ()
+
+
+testAssertExpectedMessagesInternal ::
+    (MonadIO m) =>
+    T.Text                                  -- domain
+    -> T.Text                               -- file
+    -> Int32                                -- line
+    -> T.Text                               -- func
+    -> m ()                                 -- result
+testAssertExpectedMessagesInternal domain file line func = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    g_test_assert_expected_messages_internal domain' file' line func'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    return ()
+
+
+-- function g_test_add_func
+-- Args : [Arg {argCName = "testpath", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_func", argType = TInterface "GLib" "TestFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_add_func" g_test_add_func :: 
+    CString ->                              -- testpath : TBasicType TUTF8
+    FunPtr TestFuncC ->                     -- test_func : TInterface "GLib" "TestFunc"
+    IO ()
+
+
+testAddFunc ::
+    (MonadIO m) =>
+    T.Text                                  -- testpath
+    -> TestFunc                             -- testFunc
+    -> m ()                                 -- result
+testAddFunc testpath testFunc = liftIO $ do
+    testpath' <- textToCString testpath
+    ptrtestFunc <- callocMem :: IO (Ptr (FunPtr TestFuncC))
+    testFunc' <- mkTestFunc (testFuncWrapper (Just ptrtestFunc) testFunc)
+    poke ptrtestFunc testFunc'
+    g_test_add_func testpath' testFunc'
+    freeMem testpath'
+    return ()
+
+
+-- function g_test_add_data_func
+-- Args : [Arg {argCName = "testpath", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_func", argType = TInterface "GLib" "TestDataFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_add_data_func" g_test_add_data_func :: 
+    CString ->                              -- testpath : TBasicType TUTF8
+    Ptr () ->                               -- test_data : TBasicType TPtr
+    FunPtr TestDataFuncC ->                 -- test_func : TInterface "GLib" "TestDataFunc"
+    IO ()
+
+
+testAddDataFunc ::
+    (MonadIO m) =>
+    T.Text                                  -- testpath
+    -> Ptr ()                               -- testData
+    -> TestDataFunc                         -- testFunc
+    -> m ()                                 -- result
+testAddDataFunc testpath testData testFunc = liftIO $ do
+    testpath' <- textToCString testpath
+    ptrtestFunc <- callocMem :: IO (Ptr (FunPtr TestDataFuncC))
+    testFunc' <- mkTestDataFunc (testDataFuncWrapper (Just ptrtestFunc) testFunc)
+    poke ptrtestFunc testFunc'
+    g_test_add_data_func testpath' testData testFunc'
+    freeMem testpath'
+    return ()
+
+
+-- function g_strv_length
+-- Args : [Arg {argCName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strv_length" g_strv_length :: 
+    CString ->                              -- str_array : TBasicType TUTF8
+    IO Word32
+
+
+strvLength ::
+    (MonadIO m) =>
+    T.Text                                  -- strArray
+    -> m Word32                             -- result
+strvLength strArray = liftIO $ do
+    strArray' <- textToCString strArray
+    result <- g_strv_length strArray'
+    freeMem strArray'
+    return result
+
+
+-- function g_strv_get_type
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TGType)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strv_get_type" g_strv_get_type :: 
+    IO CGType
+
+
+strvGetType ::
+    (MonadIO m) =>
+    m GType                                 -- result
+strvGetType  = liftIO $ do
+    result <- g_strv_get_type
+    let result' = GType result
+    return result'
+
+
+-- function g_strv_contains
+-- Args : [Arg {argCName = "strv", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strv_contains" g_strv_contains :: 
+    CString ->                              -- strv : TBasicType TUTF8
+    CString ->                              -- str : TBasicType TUTF8
+    IO CInt
+
+
+strvContains ::
+    (MonadIO m) =>
+    T.Text                                  -- strv
+    -> T.Text                               -- str
+    -> m Bool                               -- result
+strvContains strv str = liftIO $ do
+    strv' <- textToCString strv
+    str' <- textToCString str
+    result <- g_strv_contains strv' str'
+    let result' = (/= 0) result
+    freeMem strv'
+    freeMem str'
+    return result'
+
+
+-- function g_strup
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strup" g_strup :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+{-# DEPRECATED strup ["(Since version 2.2)","This function is totally broken for the reasons","    discussed in the g_strncasecmp() docs - use g_ascii_strup()","    or g_utf8_strup() instead."]#-}
+strup ::
+    (MonadIO m) =>
+    T.Text                                  -- string
+    -> m T.Text                             -- result
+strup string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strup string'
+    checkUnexpectedReturnNULL "g_strup" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+
+-- function g_strtod
+-- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TDouble)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strtod" g_strtod :: 
+    CString ->                              -- nptr : TBasicType TUTF8
+    CString ->                              -- endptr : TBasicType TUTF8
+    IO CDouble
+
+
+strtod ::
+    (MonadIO m) =>
+    T.Text                                  -- nptr
+    -> T.Text                               -- endptr
+    -> m Double                             -- result
+strtod nptr endptr = liftIO $ do
+    nptr' <- textToCString nptr
+    endptr' <- textToCString endptr
+    result <- g_strtod nptr' endptr'
+    let result' = realToFrac result
+    freeMem nptr'
+    freeMem endptr'
+    return result'
+
+
+-- function g_strstr_len
+-- Args : [Arg {argCName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "haystack_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strstr_len" g_strstr_len :: 
+    CString ->                              -- haystack : TBasicType TUTF8
+    Int64 ->                                -- haystack_len : TBasicType TInt64
+    CString ->                              -- needle : TBasicType TUTF8
+    IO CString
+
+
+strstrLen ::
+    (MonadIO m) =>
+    T.Text                                  -- haystack
+    -> Int64                                -- haystackLen
+    -> T.Text                               -- needle
+    -> m T.Text                             -- result
+strstrLen haystack haystackLen needle = liftIO $ do
+    haystack' <- textToCString haystack
+    needle' <- textToCString needle
+    result <- g_strstr_len haystack' haystackLen needle'
+    checkUnexpectedReturnNULL "g_strstr_len" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem haystack'
+    freeMem needle'
+    return result'
+
+
+-- function g_strsignal
+-- Args : [Arg {argCName = "signum", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strsignal" g_strsignal :: 
+    Int32 ->                                -- signum : TBasicType TInt
+    IO CString
+
+
+strsignal ::
+    (MonadIO m) =>
+    Int32                                   -- signum
+    -> m T.Text                             -- result
+strsignal signum = liftIO $ do
+    result <- g_strsignal signum
+    checkUnexpectedReturnNULL "g_strsignal" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_strrstr_len
+-- Args : [Arg {argCName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "haystack_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strrstr_len" g_strrstr_len :: 
+    CString ->                              -- haystack : TBasicType TUTF8
+    Int64 ->                                -- haystack_len : TBasicType TInt64
+    CString ->                              -- needle : TBasicType TUTF8
+    IO CString
+
+
+strrstrLen ::
+    (MonadIO m) =>
+    T.Text                                  -- haystack
+    -> Int64                                -- haystackLen
+    -> T.Text                               -- needle
+    -> m T.Text                             -- result
+strrstrLen haystack haystackLen needle = liftIO $ do
+    haystack' <- textToCString haystack
+    needle' <- textToCString needle
+    result <- g_strrstr_len haystack' haystackLen needle'
+    checkUnexpectedReturnNULL "g_strrstr_len" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem haystack'
+    freeMem needle'
+    return result'
+
+
+-- function g_strrstr
+-- Args : [Arg {argCName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strrstr" g_strrstr :: 
+    CString ->                              -- haystack : TBasicType TUTF8
+    CString ->                              -- needle : TBasicType TUTF8
+    IO CString
+
+
+strrstr ::
+    (MonadIO m) =>
+    T.Text                                  -- haystack
+    -> T.Text                               -- needle
+    -> m T.Text                             -- result
+strrstr haystack needle = liftIO $ do
+    haystack' <- textToCString haystack
+    needle' <- textToCString needle
+    result <- g_strrstr haystack' needle'
+    checkUnexpectedReturnNULL "g_strrstr" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem haystack'
+    freeMem needle'
+    return result'
+
+
+-- function g_strreverse
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strreverse" g_strreverse :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+strreverse ::
+    (MonadIO m) =>
+    T.Text                                  -- string
+    -> m T.Text                             -- result
+strreverse string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strreverse string'
+    checkUnexpectedReturnNULL "g_strreverse" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+
+-- function g_strnfill
+-- Args : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fill_char", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strnfill" g_strnfill :: 
+    Word64 ->                               -- length : TBasicType TUInt64
+    Int8 ->                                 -- fill_char : TBasicType TInt8
+    IO CString
+
+
+strnfill ::
+    (MonadIO m) =>
+    Word64                                  -- length_
+    -> Int8                                 -- fillChar
+    -> m T.Text                             -- result
+strnfill length_ fillChar = liftIO $ do
+    result <- g_strnfill length_ fillChar
+    checkUnexpectedReturnNULL "g_strnfill" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_strndup
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strndup" g_strndup :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Word64 ->                               -- n : TBasicType TUInt64
+    IO CString
+
+
+strndup ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Word64                               -- n
+    -> m T.Text                             -- result
+strndup str n = liftIO $ do
+    str' <- textToCString str
+    result <- g_strndup str' n
+    checkUnexpectedReturnNULL "g_strndup" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_strncasecmp
+-- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strncasecmp" g_strncasecmp :: 
+    CString ->                              -- s1 : TBasicType TUTF8
+    CString ->                              -- s2 : TBasicType TUTF8
+    Word32 ->                               -- n : TBasicType TUInt
+    IO Int32
+
+{-# DEPRECATED strncasecmp ["(Since version 2.2)","The problem with g_strncasecmp() is that it does","    the comparison by calling toupper()/tolower(). These functions","    are locale-specific and operate on single bytes. However, it is","    impossible to handle things correctly from an internationalization","    standpoint by operating on bytes, since characters may be multibyte.","    Thus g_strncasecmp() is broken if your string is guaranteed to be","    ASCII, since it is locale-sensitive, and it's broken if your string","    is localized, since it doesn't work on many encodings at all,","    including UTF-8, EUC-JP, etc.","","    There are therefore two replacement techniques: g_ascii_strncasecmp(),","    which only works on ASCII and is not locale-sensitive, and","    g_utf8_casefold() followed by strcmp() on the resulting strings,","    which is good for case-insensitive sorting of UTF-8."]#-}
+strncasecmp ::
+    (MonadIO m) =>
+    T.Text                                  -- s1
+    -> T.Text                               -- s2
+    -> Word32                               -- n
+    -> m Int32                              -- result
+strncasecmp s1 s2 n = liftIO $ do
+    s1' <- textToCString s1
+    s2' <- textToCString s2
+    result <- g_strncasecmp s1' s2' n
+    freeMem s1'
+    freeMem s2'
+    return result
+
+
+-- function g_strlcpy
+-- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strlcpy" g_strlcpy :: 
+    CString ->                              -- dest : TBasicType TUTF8
+    CString ->                              -- src : TBasicType TUTF8
+    Word64 ->                               -- dest_size : TBasicType TUInt64
+    IO Word64
+
+
+strlcpy ::
+    (MonadIO m) =>
+    T.Text                                  -- dest
+    -> T.Text                               -- src
+    -> Word64                               -- destSize
+    -> m Word64                             -- result
+strlcpy dest src destSize = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_strlcpy dest' src' destSize
+    freeMem dest'
+    freeMem src'
+    return result
+
+
+-- function g_strlcat
+-- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strlcat" g_strlcat :: 
+    CString ->                              -- dest : TBasicType TUTF8
+    CString ->                              -- src : TBasicType TUTF8
+    Word64 ->                               -- dest_size : TBasicType TUInt64
+    IO Word64
+
+
+strlcat ::
+    (MonadIO m) =>
+    T.Text                                  -- dest
+    -> T.Text                               -- src
+    -> Word64                               -- destSize
+    -> m Word64                             -- result
+strlcat dest src destSize = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_strlcat dest' src' destSize
+    freeMem dest'
+    freeMem src'
+    return result
+
+
+-- function g_strjoinv
+-- Args : [Arg {argCName = "separator", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strjoinv" g_strjoinv :: 
+    CString ->                              -- separator : TBasicType TUTF8
+    CString ->                              -- str_array : TBasicType TUTF8
+    IO CString
+
+
+strjoinv ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- separator
+    -> T.Text                               -- strArray
+    -> m T.Text                             -- result
+strjoinv separator strArray = liftIO $ do
+    maybeSeparator <- case separator of
+        Nothing -> return nullPtr
+        Just jSeparator -> do
+            jSeparator' <- textToCString jSeparator
+            return jSeparator'
+    strArray' <- textToCString strArray
+    result <- g_strjoinv maybeSeparator strArray'
+    checkUnexpectedReturnNULL "g_strjoinv" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem maybeSeparator
+    freeMem strArray'
+    return result'
+
+
+-- function g_strip_context
+-- Args : [Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgval", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strip_context" g_strip_context :: 
+    CString ->                              -- msgid : TBasicType TUTF8
+    CString ->                              -- msgval : TBasicType TUTF8
+    IO CString
+
+
+stripContext ::
+    (MonadIO m) =>
+    T.Text                                  -- msgid
+    -> T.Text                               -- msgval
+    -> m T.Text                             -- result
+stripContext msgid msgval = liftIO $ do
+    msgid' <- textToCString msgid
+    msgval' <- textToCString msgval
+    result <- g_strip_context msgid' msgval'
+    checkUnexpectedReturnNULL "g_strip_context" result
+    result' <- cstringToText result
+    freeMem msgid'
+    freeMem msgval'
+    return result'
+
+
+-- function g_string_sized_new
+-- Args : [Arg {argCName = "dfl_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "String")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_sized_new" g_string_sized_new :: 
+    Word64 ->                               -- dfl_size : TBasicType TUInt64
+    IO (Ptr String)
+
+
+stringSizedNew ::
+    (MonadIO m) =>
+    Word64                                  -- dflSize
+    -> m String                             -- result
+stringSizedNew dflSize = liftIO $ do
+    result <- g_string_sized_new dflSize
+    checkUnexpectedReturnNULL "g_string_sized_new" result
+    result' <- (wrapBoxed String) result
+    return result'
+
+
+-- function g_string_new_len
+-- Args : [Arg {argCName = "init", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "String")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_new_len" g_string_new_len :: 
+    CString ->                              -- init : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO (Ptr String)
+
+
+stringNewLen ::
+    (MonadIO m) =>
+    T.Text                                  -- init
+    -> Int64                                -- len
+    -> m String                             -- result
+stringNewLen init len = liftIO $ do
+    init' <- textToCString init
+    result <- g_string_new_len init' len
+    checkUnexpectedReturnNULL "g_string_new_len" result
+    result' <- (wrapBoxed String) result
+    freeMem init'
+    return result'
+
+
+-- function g_string_new
+-- Args : [Arg {argCName = "init", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "String")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_new" g_string_new :: 
+    CString ->                              -- init : TBasicType TUTF8
+    IO (Ptr String)
+
+
+stringNew ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- init
+    -> m String                             -- result
+stringNew init = liftIO $ do
+    maybeInit <- case init of
+        Nothing -> return nullPtr
+        Just jInit -> do
+            jInit' <- textToCString jInit
+            return jInit'
+    result <- g_string_new maybeInit
+    checkUnexpectedReturnNULL "g_string_new" result
+    result' <- (wrapBoxed String) result
+    freeMem maybeInit
+    return result'
+
+
+-- function g_strfreev
+-- Args : [Arg {argCName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strfreev" g_strfreev :: 
+    CString ->                              -- str_array : TBasicType TUTF8
+    IO ()
+
+
+strfreev ::
+    (MonadIO m) =>
+    T.Text                                  -- strArray
+    -> m ()                                 -- result
+strfreev strArray = liftIO $ do
+    strArray' <- textToCString strArray
+    g_strfreev strArray'
+    freeMem strArray'
+    return ()
+
+
+-- function g_strescape
+-- Args : [Arg {argCName = "source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exceptions", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strescape" g_strescape :: 
+    CString ->                              -- source : TBasicType TUTF8
+    CString ->                              -- exceptions : TBasicType TUTF8
+    IO CString
+
+
+strescape ::
+    (MonadIO m) =>
+    T.Text                                  -- source
+    -> T.Text                               -- exceptions
+    -> m T.Text                             -- result
+strescape source exceptions = liftIO $ do
+    source' <- textToCString source
+    exceptions' <- textToCString exceptions
+    result <- g_strescape source' exceptions'
+    checkUnexpectedReturnNULL "g_strescape" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem source'
+    freeMem exceptions'
+    return result'
+
+
+-- function g_strerror
+-- Args : [Arg {argCName = "errnum", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strerror" g_strerror :: 
+    Int32 ->                                -- errnum : TBasicType TInt
+    IO CString
+
+
+strerror ::
+    (MonadIO m) =>
+    Int32                                   -- errnum
+    -> m T.Text                             -- result
+strerror errnum = liftIO $ do
+    result <- g_strerror errnum
+    checkUnexpectedReturnNULL "g_strerror" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_strdup
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strdup" g_strdup :: 
+    CString ->                              -- str : TBasicType TUTF8
+    IO CString
+
+
+strdup ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> m T.Text                             -- result
+strdup str = liftIO $ do
+    str' <- textToCString str
+    result <- g_strdup str'
+    checkUnexpectedReturnNULL "g_strdup" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_strdown
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strdown" g_strdown :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+{-# DEPRECATED strdown ["(Since version 2.2)","This function is totally broken for the reasons discussed","in the g_strncasecmp() docs - use g_ascii_strdown() or g_utf8_strdown()","instead."]#-}
+strdown ::
+    (MonadIO m) =>
+    T.Text                                  -- string
+    -> m T.Text                             -- result
+strdown string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strdown string'
+    checkUnexpectedReturnNULL "g_strdown" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+
+-- function g_strdelimit
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "delimiters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_delimiter", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strdelimit" g_strdelimit :: 
+    CString ->                              -- string : TBasicType TUTF8
+    CString ->                              -- delimiters : TBasicType TUTF8
+    Int8 ->                                 -- new_delimiter : TBasicType TInt8
+    IO CString
+
+
+strdelimit ::
+    (MonadIO m) =>
+    T.Text                                  -- string
+    -> Maybe (T.Text)                       -- delimiters
+    -> Int8                                 -- newDelimiter
+    -> m T.Text                             -- result
+strdelimit string delimiters newDelimiter = liftIO $ do
+    string' <- textToCString string
+    maybeDelimiters <- case delimiters of
+        Nothing -> return nullPtr
+        Just jDelimiters -> do
+            jDelimiters' <- textToCString jDelimiters
+            return jDelimiters'
+    result <- g_strdelimit string' maybeDelimiters newDelimiter
+    checkUnexpectedReturnNULL "g_strdelimit" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    freeMem maybeDelimiters
+    return result'
+
+
+-- function g_strcompress
+-- Args : [Arg {argCName = "source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strcompress" g_strcompress :: 
+    CString ->                              -- source : TBasicType TUTF8
+    IO CString
+
+
+strcompress ::
+    (MonadIO m) =>
+    T.Text                                  -- source
+    -> m T.Text                             -- result
+strcompress source = liftIO $ do
+    source' <- textToCString source
+    result <- g_strcompress source'
+    checkUnexpectedReturnNULL "g_strcompress" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem source'
+    return result'
+
+
+-- function g_strcmp0
+-- Args : [Arg {argCName = "str1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strcmp0" g_strcmp0 :: 
+    CString ->                              -- str1 : TBasicType TUTF8
+    CString ->                              -- str2 : TBasicType TUTF8
+    IO Int32
+
+
+strcmp0 ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- str1
+    -> Maybe (T.Text)                       -- str2
+    -> m Int32                              -- result
+strcmp0 str1 str2 = liftIO $ do
+    maybeStr1 <- case str1 of
+        Nothing -> return nullPtr
+        Just jStr1 -> do
+            jStr1' <- textToCString jStr1
+            return jStr1'
+    maybeStr2 <- case str2 of
+        Nothing -> return nullPtr
+        Just jStr2 -> do
+            jStr2' <- textToCString jStr2
+            return jStr2'
+    result <- g_strcmp0 maybeStr1 maybeStr2
+    freeMem maybeStr1
+    freeMem maybeStr2
+    return result
+
+
+-- function g_strchug
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strchug" g_strchug :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+strchug ::
+    (MonadIO m) =>
+    T.Text                                  -- string
+    -> m T.Text                             -- result
+strchug string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strchug string'
+    checkUnexpectedReturnNULL "g_strchug" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+
+-- function g_strchomp
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strchomp" g_strchomp :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+strchomp ::
+    (MonadIO m) =>
+    T.Text                                  -- string
+    -> m T.Text                             -- result
+strchomp string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strchomp string'
+    checkUnexpectedReturnNULL "g_strchomp" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+
+-- function g_strcasecmp
+-- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strcasecmp" g_strcasecmp :: 
+    CString ->                              -- s1 : TBasicType TUTF8
+    CString ->                              -- s2 : TBasicType TUTF8
+    IO Int32
+
+{-# DEPRECATED strcasecmp ["(Since version 2.2)","See g_strncasecmp() for a discussion of why this","    function is deprecated and how to replace it."]#-}
+strcasecmp ::
+    (MonadIO m) =>
+    T.Text                                  -- s1
+    -> T.Text                               -- s2
+    -> m Int32                              -- result
+strcasecmp s1 s2 = liftIO $ do
+    s1' <- textToCString s1
+    s2' <- textToCString s2
+    result <- g_strcasecmp s1' s2'
+    freeMem s1'
+    freeMem s2'
+    return result
+
+
+-- function g_strcanon
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "valid_chars", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "substitutor", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strcanon" g_strcanon :: 
+    CString ->                              -- string : TBasicType TUTF8
+    CString ->                              -- valid_chars : TBasicType TUTF8
+    Int8 ->                                 -- substitutor : TBasicType TInt8
+    IO CString
+
+
+strcanon ::
+    (MonadIO m) =>
+    T.Text                                  -- string
+    -> T.Text                               -- validChars
+    -> Int8                                 -- substitutor
+    -> m T.Text                             -- result
+strcanon string validChars substitutor = liftIO $ do
+    string' <- textToCString string
+    validChars' <- textToCString validChars
+    result <- g_strcanon string' validChars' substitutor
+    checkUnexpectedReturnNULL "g_strcanon" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    freeMem validChars'
+    return result'
+
+
+-- function g_str_tokenize_and_fold
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "translit_locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ascii_alternates", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_tokenize_and_fold" g_str_tokenize_and_fold :: 
+    CString ->                              -- string : TBasicType TUTF8
+    CString ->                              -- translit_locale : TBasicType TUTF8
+    Ptr (Ptr CString) ->                    -- ascii_alternates : TCArray True (-1) (-1) (TBasicType TUTF8)
+    IO (Ptr CString)
+
+
+strTokenizeAndFold ::
+    (MonadIO m) =>
+    T.Text                                  -- string
+    -> Maybe (T.Text)                       -- translitLocale
+    -> m ([T.Text],[T.Text])                -- result
+strTokenizeAndFold string translitLocale = liftIO $ do
+    string' <- textToCString string
+    maybeTranslitLocale <- case translitLocale of
+        Nothing -> return nullPtr
+        Just jTranslitLocale -> do
+            jTranslitLocale' <- textToCString jTranslitLocale
+            return jTranslitLocale'
+    asciiAlternates <- allocMem :: IO (Ptr (Ptr CString))
+    result <- g_str_tokenize_and_fold string' maybeTranslitLocale asciiAlternates
+    checkUnexpectedReturnNULL "g_str_tokenize_and_fold" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    asciiAlternates' <- peek asciiAlternates
+    asciiAlternates'' <- unpackZeroTerminatedUTF8CArray asciiAlternates'
+    mapZeroTerminatedCArray freeMem asciiAlternates'
+    freeMem asciiAlternates'
+    freeMem string'
+    freeMem maybeTranslitLocale
+    freeMem asciiAlternates
+    return (result', asciiAlternates'')
+
+
+-- function g_str_to_ascii
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_to_ascii" g_str_to_ascii :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CString ->                              -- from_locale : TBasicType TUTF8
+    IO CString
+
+
+strToAscii ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Maybe (T.Text)                       -- fromLocale
+    -> m T.Text                             -- result
+strToAscii str fromLocale = liftIO $ do
+    str' <- textToCString str
+    maybeFromLocale <- case fromLocale of
+        Nothing -> return nullPtr
+        Just jFromLocale -> do
+            jFromLocale' <- textToCString jFromLocale
+            return jFromLocale'
+    result <- g_str_to_ascii str' maybeFromLocale
+    checkUnexpectedReturnNULL "g_str_to_ascii" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    freeMem maybeFromLocale
+    return result'
+
+
+-- function g_str_match_string
+-- Args : [Arg {argCName = "search_term", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "potential_hit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accept_alternates", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_match_string" g_str_match_string :: 
+    CString ->                              -- search_term : TBasicType TUTF8
+    CString ->                              -- potential_hit : TBasicType TUTF8
+    CInt ->                                 -- accept_alternates : TBasicType TBoolean
+    IO CInt
+
+
+strMatchString ::
+    (MonadIO m) =>
+    T.Text                                  -- searchTerm
+    -> T.Text                               -- potentialHit
+    -> Bool                                 -- acceptAlternates
+    -> m Bool                               -- result
+strMatchString searchTerm potentialHit acceptAlternates = liftIO $ do
+    searchTerm' <- textToCString searchTerm
+    potentialHit' <- textToCString potentialHit
+    let acceptAlternates' = (fromIntegral . fromEnum) acceptAlternates
+    result <- g_str_match_string searchTerm' potentialHit' acceptAlternates'
+    let result' = (/= 0) result
+    freeMem searchTerm'
+    freeMem potentialHit'
+    return result'
+
+
+-- function g_str_is_ascii
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_is_ascii" g_str_is_ascii :: 
+    CString ->                              -- str : TBasicType TUTF8
+    IO CInt
+
+
+strIsAscii ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> m Bool                               -- result
+strIsAscii str = liftIO $ do
+    str' <- textToCString str
+    result <- g_str_is_ascii str'
+    let result' = (/= 0) result
+    freeMem str'
+    return result'
+
+
+-- function g_str_hash
+-- Args : [Arg {argCName = "v", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_hash" g_str_hash :: 
+    Ptr () ->                               -- v : TBasicType TPtr
+    IO Word32
+
+
+strHash ::
+    (MonadIO m) =>
+    Ptr ()                                  -- v
+    -> m Word32                             -- result
+strHash v = liftIO $ do
+    result <- g_str_hash v
+    return result
+
+
+-- function g_str_has_suffix
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "suffix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_has_suffix" g_str_has_suffix :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CString ->                              -- suffix : TBasicType TUTF8
+    IO CInt
+
+
+strHasSuffix ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> T.Text                               -- suffix
+    -> m Bool                               -- result
+strHasSuffix str suffix = liftIO $ do
+    str' <- textToCString str
+    suffix' <- textToCString suffix
+    result <- g_str_has_suffix str' suffix'
+    let result' = (/= 0) result
+    freeMem str'
+    freeMem suffix'
+    return result'
+
+
+-- function g_str_has_prefix
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "prefix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_has_prefix" g_str_has_prefix :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CString ->                              -- prefix : TBasicType TUTF8
+    IO CInt
+
+
+strHasPrefix ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> T.Text                               -- prefix
+    -> m Bool                               -- result
+strHasPrefix str prefix = liftIO $ do
+    str' <- textToCString str
+    prefix' <- textToCString prefix
+    result <- g_str_has_prefix str' prefix'
+    let result' = (/= 0) result
+    freeMem str'
+    freeMem prefix'
+    return result'
+
+
+-- function g_str_equal
+-- 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 : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_equal" g_str_equal :: 
+    Ptr () ->                               -- v1 : TBasicType TPtr
+    Ptr () ->                               -- v2 : TBasicType TPtr
+    IO CInt
+
+
+strEqual ::
+    (MonadIO m) =>
+    Ptr ()                                  -- v1
+    -> Ptr ()                               -- v2
+    -> m Bool                               -- result
+strEqual v1 v2 = liftIO $ do
+    result <- g_str_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_stpcpy
+-- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_stpcpy" g_stpcpy :: 
+    CString ->                              -- dest : TBasicType TUTF8
+    CString ->                              -- src : TBasicType TUTF8
+    IO CString
+
+
+stpcpy ::
+    (MonadIO m) =>
+    T.Text                                  -- dest
+    -> T.Text                               -- src
+    -> m T.Text                             -- result
+stpcpy dest src = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_stpcpy dest' src'
+    checkUnexpectedReturnNULL "g_stpcpy" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem dest'
+    freeMem src'
+    return result'
+
+
+-- function g_spawn_sync
+-- Args : [Arg {argCName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, 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},Arg {argCName = "standard_output", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_error", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "exit_status", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_sync" g_spawn_sync :: 
+    CString ->                              -- working_directory : TBasicType TUTF8
+    Ptr CString ->                          -- argv : TCArray True (-1) (-1) (TBasicType TUTF8)
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CUInt ->                                -- flags : TInterface "GLib" "SpawnFlags"
+    FunPtr SpawnChildSetupFuncC ->          -- child_setup : TInterface "GLib" "SpawnChildSetupFunc"
+    Ptr () ->                               -- user_data : TBasicType TPtr
+    Ptr (Ptr Word8) ->                      -- standard_output : TCArray True (-1) (-1) (TBasicType TUInt8)
+    Ptr (Ptr Word8) ->                      -- standard_error : TCArray True (-1) (-1) (TBasicType TUInt8)
+    Ptr Int32 ->                            -- exit_status : TBasicType TInt
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnSync ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- workingDirectory
+    -> [T.Text]                             -- argv
+    -> Maybe ([T.Text])                     -- envp
+    -> [SpawnFlags]                         -- flags
+    -> Maybe (SpawnChildSetupFunc)          -- childSetup
+    -> m (ByteString,ByteString,Int32)      -- result
+spawnSync workingDirectory argv envp flags childSetup = liftIO $ do
+    maybeWorkingDirectory <- case workingDirectory of
+        Nothing -> return nullPtr
+        Just jWorkingDirectory -> do
+            jWorkingDirectory' <- textToCString jWorkingDirectory
+            return jWorkingDirectory'
+    argv' <- packZeroTerminatedUTF8CArray argv
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    let flags' = gflagsToWord flags
+    ptrchildSetup <- callocMem :: IO (Ptr (FunPtr SpawnChildSetupFuncC))
+    maybeChildSetup <- case childSetup of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChildSetup -> do
+            jChildSetup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchildSetup) jChildSetup)
+            poke ptrchildSetup jChildSetup'
+            return jChildSetup'
+    standardOutput <- allocMem :: IO (Ptr (Ptr Word8))
+    standardError <- allocMem :: IO (Ptr (Ptr Word8))
+    exitStatus <- allocMem :: IO (Ptr Int32)
+    let userData = nullPtr
+    onException (do
+        _ <- propagateGError $ g_spawn_sync maybeWorkingDirectory argv' maybeEnvp flags' maybeChildSetup userData standardOutput standardError exitStatus
+        standardOutput' <- peek standardOutput
+        standardOutput'' <- unpackZeroTerminatedByteString standardOutput'
+        freeMem standardOutput'
+        standardError' <- peek standardError
+        standardError'' <- unpackZeroTerminatedByteString standardError'
+        freeMem standardError'
+        exitStatus' <- peek exitStatus
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem standardOutput
+        freeMem standardError
+        freeMem exitStatus
+        return (standardOutput'', standardError'', exitStatus')
+     ) (do
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem standardOutput
+        freeMem standardError
+        freeMem exitStatus
+     )
+
+
+-- function g_spawn_exit_error_quark
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_spawn_exit_error_quark" g_spawn_exit_error_quark :: 
+    IO Word32
+
+
+spawnExitErrorQuark ::
+    (MonadIO m) =>
+    m Word32                                -- result
+spawnExitErrorQuark  = liftIO $ do
+    result <- g_spawn_exit_error_quark
+    return result
+
+
+-- function g_spawn_error_quark
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_spawn_error_quark" g_spawn_error_quark :: 
+    IO Word32
+
+
+spawnErrorQuark ::
+    (MonadIO m) =>
+    m Word32                                -- result
+spawnErrorQuark  = liftIO $ do
+    result <- g_spawn_error_quark
+    return result
+
+
+-- function g_spawn_command_line_sync
+-- Args : [Arg {argCName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "standard_output", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_error", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "exit_status", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_command_line_sync" g_spawn_command_line_sync :: 
+    CString ->                              -- command_line : TBasicType TUTF8
+    Ptr (Ptr Word8) ->                      -- standard_output : TCArray True (-1) (-1) (TBasicType TUInt8)
+    Ptr (Ptr Word8) ->                      -- standard_error : TCArray True (-1) (-1) (TBasicType TUInt8)
+    Ptr Int32 ->                            -- exit_status : TBasicType TInt
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnCommandLineSync ::
+    (MonadIO m) =>
+    T.Text                                  -- commandLine
+    -> m (ByteString,ByteString,Int32)      -- result
+spawnCommandLineSync commandLine = liftIO $ do
+    commandLine' <- textToCString commandLine
+    standardOutput <- allocMem :: IO (Ptr (Ptr Word8))
+    standardError <- allocMem :: IO (Ptr (Ptr Word8))
+    exitStatus <- allocMem :: IO (Ptr Int32)
+    onException (do
+        _ <- propagateGError $ g_spawn_command_line_sync commandLine' standardOutput standardError exitStatus
+        standardOutput' <- peek standardOutput
+        standardOutput'' <- unpackZeroTerminatedByteString standardOutput'
+        freeMem standardOutput'
+        standardError' <- peek standardError
+        standardError'' <- unpackZeroTerminatedByteString standardError'
+        freeMem standardError'
+        exitStatus' <- peek exitStatus
+        freeMem commandLine'
+        freeMem standardOutput
+        freeMem standardError
+        freeMem exitStatus
+        return (standardOutput'', standardError'', exitStatus')
+     ) (do
+        freeMem commandLine'
+        freeMem standardOutput
+        freeMem standardError
+        freeMem exitStatus
+     )
+
+
+-- function g_spawn_command_line_async
+-- Args : [Arg {argCName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_command_line_async" g_spawn_command_line_async :: 
+    CString ->                              -- command_line : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnCommandLineAsync ::
+    (MonadIO m) =>
+    T.Text                                  -- commandLine
+    -> m ()                                 -- result
+spawnCommandLineAsync commandLine = liftIO $ do
+    commandLine' <- textToCString commandLine
+    onException (do
+        _ <- propagateGError $ g_spawn_command_line_async commandLine'
+        freeMem commandLine'
+        return ()
+     ) (do
+        freeMem commandLine'
+     )
+
+
+-- function g_spawn_close_pid
+-- Args : [Arg {argCName = "pid", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_spawn_close_pid" g_spawn_close_pid :: 
+    Int32 ->                                -- pid : TBasicType TInt
+    IO ()
+
+
+spawnClosePid ::
+    (MonadIO m) =>
+    Int32                                   -- pid
+    -> m ()                                 -- result
+spawnClosePid pid = liftIO $ do
+    g_spawn_close_pid pid
+    return ()
+
+
+-- function g_spawn_check_exit_status
+-- Args : [Arg {argCName = "exit_status", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_check_exit_status" g_spawn_check_exit_status :: 
+    Int32 ->                                -- exit_status : TBasicType TInt
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnCheckExitStatus ::
+    (MonadIO m) =>
+    Int32                                   -- exitStatus
+    -> m ()                                 -- result
+spawnCheckExitStatus exitStatus = liftIO $ do
+    onException (do
+        _ <- propagateGError $ g_spawn_check_exit_status exitStatus
+        return ()
+     ) (do
+        return ()
+     )
+
+
+-- function g_spawn_async_with_pipes
+-- Args : [Arg {argCName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, 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},Arg {argCName = "child_pid", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_input", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_output", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_error", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_async_with_pipes" g_spawn_async_with_pipes :: 
+    CString ->                              -- working_directory : TBasicType TUTF8
+    Ptr CString ->                          -- argv : TCArray True (-1) (-1) (TBasicType TUTF8)
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CUInt ->                                -- flags : TInterface "GLib" "SpawnFlags"
+    FunPtr SpawnChildSetupFuncC ->          -- child_setup : TInterface "GLib" "SpawnChildSetupFunc"
+    Ptr () ->                               -- user_data : TBasicType TPtr
+    Ptr Int32 ->                            -- child_pid : TBasicType TInt
+    Ptr Int32 ->                            -- standard_input : TBasicType TInt
+    Ptr Int32 ->                            -- standard_output : TBasicType TInt
+    Ptr Int32 ->                            -- standard_error : TBasicType TInt
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnAsyncWithPipes ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- workingDirectory
+    -> [T.Text]                             -- argv
+    -> Maybe ([T.Text])                     -- envp
+    -> [SpawnFlags]                         -- flags
+    -> Maybe (SpawnChildSetupFunc)          -- childSetup
+    -> m (Int32,Int32,Int32,Int32)          -- result
+spawnAsyncWithPipes workingDirectory argv envp flags childSetup = liftIO $ do
+    maybeWorkingDirectory <- case workingDirectory of
+        Nothing -> return nullPtr
+        Just jWorkingDirectory -> do
+            jWorkingDirectory' <- textToCString jWorkingDirectory
+            return jWorkingDirectory'
+    argv' <- packZeroTerminatedUTF8CArray argv
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    let flags' = gflagsToWord flags
+    ptrchildSetup <- callocMem :: IO (Ptr (FunPtr SpawnChildSetupFuncC))
+    maybeChildSetup <- case childSetup of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChildSetup -> do
+            jChildSetup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchildSetup) jChildSetup)
+            poke ptrchildSetup jChildSetup'
+            return jChildSetup'
+    childPid <- allocMem :: IO (Ptr Int32)
+    standardInput <- allocMem :: IO (Ptr Int32)
+    standardOutput <- allocMem :: IO (Ptr Int32)
+    standardError <- allocMem :: IO (Ptr Int32)
+    let userData = nullPtr
+    onException (do
+        _ <- propagateGError $ g_spawn_async_with_pipes maybeWorkingDirectory argv' maybeEnvp flags' maybeChildSetup userData childPid standardInput standardOutput standardError
+        childPid' <- peek childPid
+        standardInput' <- peek standardInput
+        standardOutput' <- peek standardOutput
+        standardError' <- peek standardError
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem childPid
+        freeMem standardInput
+        freeMem standardOutput
+        freeMem standardError
+        return (childPid', standardInput', standardOutput', standardError')
+     ) (do
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem childPid
+        freeMem standardInput
+        freeMem standardOutput
+        freeMem standardError
+     )
+
+
+-- function g_spawn_async
+-- Args : [Arg {argCName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, 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},Arg {argCName = "child_pid", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_async" g_spawn_async :: 
+    CString ->                              -- working_directory : TBasicType TUTF8
+    Ptr CString ->                          -- argv : TCArray True (-1) (-1) (TBasicType TUTF8)
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CUInt ->                                -- flags : TInterface "GLib" "SpawnFlags"
+    FunPtr SpawnChildSetupFuncC ->          -- child_setup : TInterface "GLib" "SpawnChildSetupFunc"
+    Ptr () ->                               -- user_data : TBasicType TPtr
+    Ptr Int32 ->                            -- child_pid : TBasicType TInt
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnAsync ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- workingDirectory
+    -> [T.Text]                             -- argv
+    -> Maybe ([T.Text])                     -- envp
+    -> [SpawnFlags]                         -- flags
+    -> Maybe (SpawnChildSetupFunc)          -- childSetup
+    -> m (Int32)                            -- result
+spawnAsync workingDirectory argv envp flags childSetup = liftIO $ do
+    maybeWorkingDirectory <- case workingDirectory of
+        Nothing -> return nullPtr
+        Just jWorkingDirectory -> do
+            jWorkingDirectory' <- textToCString jWorkingDirectory
+            return jWorkingDirectory'
+    argv' <- packZeroTerminatedUTF8CArray argv
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    let flags' = gflagsToWord flags
+    ptrchildSetup <- callocMem :: IO (Ptr (FunPtr SpawnChildSetupFuncC))
+    maybeChildSetup <- case childSetup of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChildSetup -> do
+            jChildSetup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchildSetup) jChildSetup)
+            poke ptrchildSetup jChildSetup'
+            return jChildSetup'
+    childPid <- allocMem :: IO (Ptr Int32)
+    let userData = nullPtr
+    onException (do
+        _ <- propagateGError $ g_spawn_async maybeWorkingDirectory argv' maybeEnvp flags' maybeChildSetup userData childPid
+        childPid' <- peek childPid
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem childPid
+        return childPid'
+     ) (do
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem childPid
+     )
+
+
+-- function g_spaced_primes_closest
+-- Args : [Arg {argCName = "num", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_spaced_primes_closest" g_spaced_primes_closest :: 
+    Word32 ->                               -- num : TBasicType TUInt
+    IO Word32
+
+
+spacedPrimesClosest ::
+    (MonadIO m) =>
+    Word32                                  -- num
+    -> m Word32                             -- result
+spacedPrimesClosest num = liftIO $ do
+    result <- g_spaced_primes_closest num
+    return result
+
+
+-- function g_slice_set_config
+-- Args : [Arg {argCName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_slice_set_config" g_slice_set_config :: 
+    CUInt ->                                -- ckey : TInterface "GLib" "SliceConfig"
+    Int64 ->                                -- value : TBasicType TInt64
+    IO ()
+
+
+sliceSetConfig ::
+    (MonadIO m) =>
+    SliceConfig                             -- ckey
+    -> Int64                                -- value
+    -> m ()                                 -- result
+sliceSetConfig ckey value = liftIO $ do
+    let ckey' = (fromIntegral . fromEnum) ckey
+    g_slice_set_config ckey' value
+    return ()
+
+
+-- function g_slice_get_config_state
+-- Args : [Arg {argCName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "address", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_slice_get_config_state" g_slice_get_config_state :: 
+    CUInt ->                                -- ckey : TInterface "GLib" "SliceConfig"
+    Int64 ->                                -- address : TBasicType TInt64
+    Word32 ->                               -- n_values : TBasicType TUInt
+    IO Int64
+
+
+sliceGetConfigState ::
+    (MonadIO m) =>
+    SliceConfig                             -- ckey
+    -> Int64                                -- address
+    -> Word32                               -- nValues
+    -> m Int64                              -- result
+sliceGetConfigState ckey address nValues = liftIO $ do
+    let ckey' = (fromIntegral . fromEnum) ckey
+    result <- g_slice_get_config_state ckey' address nValues
+    return result
+
+
+-- function g_slice_get_config
+-- Args : [Arg {argCName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_slice_get_config" g_slice_get_config :: 
+    CUInt ->                                -- ckey : TInterface "GLib" "SliceConfig"
+    IO Int64
+
+
+sliceGetConfig ::
+    (MonadIO m) =>
+    SliceConfig                             -- ckey
+    -> m Int64                              -- result
+sliceGetConfig ckey = liftIO $ do
+    let ckey' = (fromIntegral . fromEnum) ckey
+    result <- g_slice_get_config ckey'
+    return result
+
+
+-- function g_slice_free_chain_with_offset
+-- Args : [Arg {argCName = "block_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mem_chain", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "next_offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_slice_free_chain_with_offset" g_slice_free_chain_with_offset :: 
+    Word64 ->                               -- block_size : TBasicType TUInt64
+    Ptr () ->                               -- mem_chain : TBasicType TPtr
+    Word64 ->                               -- next_offset : TBasicType TUInt64
+    IO ()
+
+
+sliceFreeChainWithOffset ::
+    (MonadIO m) =>
+    Word64                                  -- blockSize
+    -> Ptr ()                               -- memChain
+    -> Word64                               -- nextOffset
+    -> m ()                                 -- result
+sliceFreeChainWithOffset blockSize memChain nextOffset = liftIO $ do
+    g_slice_free_chain_with_offset blockSize memChain nextOffset
+    return ()
+
+
+-- function g_slice_free1
+-- Args : [Arg {argCName = "block_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mem_block", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_slice_free1" g_slice_free1 :: 
+    Word64 ->                               -- block_size : TBasicType TUInt64
+    Ptr () ->                               -- mem_block : TBasicType TPtr
+    IO ()
+
+
+sliceFree1 ::
+    (MonadIO m) =>
+    Word64                                  -- blockSize
+    -> Ptr ()                               -- memBlock
+    -> m ()                                 -- result
+sliceFree1 blockSize memBlock = liftIO $ do
+    g_slice_free1 blockSize memBlock
+    return ()
+
+
+-- function g_shell_unquote
+-- Args : [Arg {argCName = "quoted_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_shell_unquote" g_shell_unquote :: 
+    CString ->                              -- quoted_string : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+shellUnquote ::
+    (MonadIO m) =>
+    T.Text                                  -- quotedString
+    -> m T.Text                             -- result
+shellUnquote quotedString = liftIO $ do
+    quotedString' <- textToCString quotedString
+    onException (do
+        result <- propagateGError $ g_shell_unquote quotedString'
+        checkUnexpectedReturnNULL "g_shell_unquote" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem quotedString'
+        return result'
+     ) (do
+        freeMem quotedString'
+     )
+
+
+-- function g_shell_quote
+-- Args : [Arg {argCName = "unquoted_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_shell_quote" g_shell_quote :: 
+    CString ->                              -- unquoted_string : TBasicType TUTF8
+    IO CString
+
+
+shellQuote ::
+    (MonadIO m) =>
+    T.Text                                  -- unquotedString
+    -> m T.Text                             -- result
+shellQuote unquotedString = liftIO $ do
+    unquotedString' <- textToCString unquotedString
+    result <- g_shell_quote unquotedString'
+    checkUnexpectedReturnNULL "g_shell_quote" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem unquotedString'
+    return result'
+
+
+-- function g_shell_parse_argv
+-- Args : [Arg {argCName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argcp", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "argvp", argType = TCArray True (-1) 1 (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_shell_parse_argv" g_shell_parse_argv :: 
+    CString ->                              -- command_line : TBasicType TUTF8
+    Ptr Int32 ->                            -- argcp : TBasicType TInt
+    Ptr (Ptr CString) ->                    -- argvp : TCArray True (-1) 1 (TBasicType TUTF8)
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+shellParseArgv ::
+    (MonadIO m) =>
+    T.Text                                  -- commandLine
+    -> m (Int32,[T.Text])                   -- result
+shellParseArgv commandLine = liftIO $ do
+    commandLine' <- textToCString commandLine
+    argcp <- allocMem :: IO (Ptr Int32)
+    argvp <- allocMem :: IO (Ptr (Ptr CString))
+    onException (do
+        _ <- propagateGError $ g_shell_parse_argv commandLine' argcp argvp
+        argcp' <- peek argcp
+        argvp' <- peek argvp
+        argvp'' <- unpackZeroTerminatedUTF8CArray argvp'
+        mapZeroTerminatedCArray freeMem argvp'
+        freeMem argvp'
+        freeMem commandLine'
+        freeMem argcp
+        freeMem argvp
+        return (argcp', argvp'')
+     ) (do
+        freeMem commandLine'
+        freeMem argcp
+        freeMem argvp
+     )
+
+
+-- function g_shell_error_quark
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_shell_error_quark" g_shell_error_quark :: 
+    IO Word32
+
+
+shellErrorQuark ::
+    (MonadIO m) =>
+    m Word32                                -- result
+shellErrorQuark  = liftIO $ do
+    result <- g_shell_error_quark
+    return result
+
+
+-- function g_setenv
+-- Args : [Arg {argCName = "variable", 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 = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_setenv" g_setenv :: 
+    CString ->                              -- variable : TBasicType TUTF8
+    CString ->                              -- value : TBasicType TUTF8
+    CInt ->                                 -- overwrite : TBasicType TBoolean
+    IO CInt
+
+
+setenv ::
+    (MonadIO m) =>
+    T.Text                                  -- variable
+    -> T.Text                               -- value
+    -> Bool                                 -- overwrite
+    -> m Bool                               -- result
+setenv variable value overwrite = liftIO $ do
+    variable' <- textToCString variable
+    value' <- textToCString value
+    let overwrite' = (fromIntegral . fromEnum) overwrite
+    result <- g_setenv variable' value' overwrite'
+    let result' = (/= 0) result
+    freeMem variable'
+    freeMem value'
+    return result'
+
+
+-- function g_set_prgname
+-- Args : [Arg {argCName = "prgname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_set_prgname" g_set_prgname :: 
+    CString ->                              -- prgname : TBasicType TUTF8
+    IO ()
+
+
+setPrgname ::
+    (MonadIO m) =>
+    T.Text                                  -- prgname
+    -> m ()                                 -- result
+setPrgname prgname = liftIO $ do
+    prgname' <- textToCString prgname
+    g_set_prgname prgname'
+    freeMem prgname'
+    return ()
+
+
+-- function g_set_error_literal
+-- Args : [Arg {argCName = "err", argType = TError, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "domain", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "code", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_set_error_literal" g_set_error_literal :: 
+    Ptr GError ->                           -- err : TError
+    Word32 ->                               -- domain : TBasicType TUInt32
+    Int32 ->                                -- code : TBasicType TInt
+    CString ->                              -- message : TBasicType TUTF8
+    IO ()
+
+
+setErrorLiteral ::
+    (MonadIO m) =>
+    Maybe (GError)                          -- err
+    -> Word32                               -- domain
+    -> Int32                                -- code
+    -> T.Text                               -- message
+    -> m ()                                 -- result
+setErrorLiteral err domain code message = liftIO $ do
+    maybeErr <- case err of
+        Nothing -> return nullPtr
+        Just jErr -> do
+            let jErr' = unsafeManagedPtrGetPtr jErr
+            return jErr'
+    message' <- textToCString message
+    g_set_error_literal maybeErr domain code message'
+    whenJust err touchManagedPtr
+    freeMem message'
+    return ()
+
+
+-- function g_set_application_name
+-- Args : [Arg {argCName = "application_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_set_application_name" g_set_application_name :: 
+    CString ->                              -- application_name : TBasicType TUTF8
+    IO ()
+
+
+setApplicationName ::
+    (MonadIO m) =>
+    T.Text                                  -- applicationName
+    -> m ()                                 -- result
+setApplicationName applicationName = liftIO $ do
+    applicationName' <- textToCString applicationName
+    g_set_application_name applicationName'
+    freeMem applicationName'
+    return ()
+
+
+-- function g_rmdir
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rmdir" g_rmdir :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    IO Int32
+
+
+rmdir ::
+    (MonadIO m) =>
+    T.Text                                  -- filename
+    -> m Int32                              -- result
+rmdir filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_rmdir filename'
+    freeMem filename'
+    return result
+
+
+-- function g_return_if_fail_warning
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pretty_function", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expression", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_return_if_fail_warning" g_return_if_fail_warning :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CString ->                              -- pretty_function : TBasicType TUTF8
+    CString ->                              -- expression : TBasicType TUTF8
+    IO ()
+
+
+returnIfFailWarning ::
+    (MonadIO m) =>
+    T.Text                                  -- logDomain
+    -> T.Text                               -- prettyFunction
+    -> T.Text                               -- expression
+    -> m ()                                 -- result
+returnIfFailWarning logDomain prettyFunction expression = liftIO $ do
+    logDomain' <- textToCString logDomain
+    prettyFunction' <- textToCString prettyFunction
+    expression' <- textToCString expression
+    g_return_if_fail_warning logDomain' prettyFunction' expression'
+    freeMem logDomain'
+    freeMem prettyFunction'
+    freeMem expression'
+    return ()
+
+
+-- function g_reload_user_special_dirs_cache
+-- Args : []
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_reload_user_special_dirs_cache" g_reload_user_special_dirs_cache :: 
+    IO ()
+
+
+reloadUserSpecialDirsCache ::
+    (MonadIO m) =>
+    m ()                                    -- result
+reloadUserSpecialDirsCache  = liftIO $ do
+    g_reload_user_special_dirs_cache
+    return ()
+
+
+-- function g_random_set_seed
+-- Args : [Arg {argCName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_set_seed" g_random_set_seed :: 
+    Word32 ->                               -- seed : TBasicType TUInt32
+    IO ()
+
+
+randomSetSeed ::
+    (MonadIO m) =>
+    Word32                                  -- seed
+    -> m ()                                 -- result
+randomSetSeed seed = liftIO $ do
+    g_random_set_seed seed
+    return ()
+
+
+-- function g_random_int_range
+-- Args : [Arg {argCName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_int_range" g_random_int_range :: 
+    Int32 ->                                -- begin : TBasicType TInt32
+    Int32 ->                                -- end : TBasicType TInt32
+    IO Int32
+
+
+randomIntRange ::
+    (MonadIO m) =>
+    Int32                                   -- begin
+    -> Int32                                -- end
+    -> m Int32                              -- result
+randomIntRange begin end = liftIO $ do
+    result <- g_random_int_range begin end
+    return result
+
+
+-- function g_random_int
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_int" g_random_int :: 
+    IO Word32
+
+
+randomInt ::
+    (MonadIO m) =>
+    m Word32                                -- result
+randomInt  = liftIO $ do
+    result <- g_random_int
+    return result
+
+
+-- function g_random_double_range
+-- Args : [Arg {argCName = "begin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TDouble)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_double_range" g_random_double_range :: 
+    CDouble ->                              -- begin : TBasicType TDouble
+    CDouble ->                              -- end : TBasicType TDouble
+    IO CDouble
+
+
+randomDoubleRange ::
+    (MonadIO m) =>
+    Double                                  -- begin
+    -> Double                               -- end
+    -> m Double                             -- result
+randomDoubleRange begin end = liftIO $ do
+    let begin' = realToFrac begin
+    let end' = realToFrac end
+    result <- g_random_double_range begin' end'
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_random_double
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TDouble)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_double" g_random_double :: 
+    IO CDouble
+
+
+randomDouble ::
+    (MonadIO m) =>
+    m Double                                -- result
+randomDouble  = liftIO $ do
+    result <- g_random_double
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_quark_try_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_quark_try_string" g_quark_try_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO Word32
+
+
+quarkTryString ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- string
+    -> m Word32                             -- result
+quarkTryString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_quark_try_string maybeString
+    freeMem maybeString
+    return result
+
+
+-- function g_quark_to_string
+-- Args : [Arg {argCName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_quark_to_string" g_quark_to_string :: 
+    Word32 ->                               -- quark : TBasicType TUInt32
+    IO CString
+
+
+quarkToString ::
+    (MonadIO m) =>
+    Word32                                  -- quark
+    -> m T.Text                             -- result
+quarkToString quark = liftIO $ do
+    result <- g_quark_to_string quark
+    checkUnexpectedReturnNULL "g_quark_to_string" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_quark_from_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_quark_from_string" g_quark_from_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO Word32
+
+
+quarkFromString ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- string
+    -> m Word32                             -- result
+quarkFromString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_quark_from_string maybeString
+    freeMem maybeString
+    return result
+
+
+-- function g_quark_from_static_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_quark_from_static_string" g_quark_from_static_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO Word32
+
+
+quarkFromStaticString ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- string
+    -> m Word32                             -- result
+quarkFromStaticString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_quark_from_static_string maybeString
+    freeMem maybeString
+    return result
+
+
+-- function g_propagate_error
+-- Args : [Arg {argCName = "dest", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_propagate_error" g_propagate_error :: 
+    Ptr GError ->                           -- dest : TError
+    Ptr GError ->                           -- src : TError
+    IO ()
+
+
+propagateError ::
+    (MonadIO m) =>
+    GError                                  -- dest
+    -> GError                               -- src
+    -> m ()                                 -- result
+propagateError dest src = liftIO $ do
+    let dest' = unsafeManagedPtrGetPtr dest
+    let src' = unsafeManagedPtrGetPtr src
+    g_propagate_error dest' src'
+    touchManagedPtr dest
+    touchManagedPtr src
+    return ()
+
+
+-- function g_poll
+-- Args : [Arg {argCName = "fds", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nfds", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_poll" g_poll :: 
+    Ptr PollFD ->                           -- fds : TInterface "GLib" "PollFD"
+    Word32 ->                               -- nfds : TBasicType TUInt
+    Int32 ->                                -- timeout : TBasicType TInt
+    IO Int32
+
+
+poll ::
+    (MonadIO m) =>
+    PollFD                                  -- fds
+    -> Word32                               -- nfds
+    -> Int32                                -- timeout
+    -> m Int32                              -- result
+poll fds nfds timeout = liftIO $ do
+    let fds' = unsafeManagedPtrGetPtr fds
+    result <- g_poll fds' nfds timeout
+    touchManagedPtr fds
+    return result
+
+
+-- function g_pointer_bit_unlock
+-- Args : [Arg {argCName = "address", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pointer_bit_unlock" g_pointer_bit_unlock :: 
+    Ptr () ->                               -- address : TBasicType TPtr
+    Int32 ->                                -- lock_bit : TBasicType TInt
+    IO ()
+
+
+pointerBitUnlock ::
+    (MonadIO m) =>
+    Ptr ()                                  -- address
+    -> Int32                                -- lockBit
+    -> m ()                                 -- result
+pointerBitUnlock address lockBit = liftIO $ do
+    g_pointer_bit_unlock address lockBit
+    return ()
+
+
+-- function g_pointer_bit_trylock
+-- Args : [Arg {argCName = "address", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pointer_bit_trylock" g_pointer_bit_trylock :: 
+    Ptr () ->                               -- address : TBasicType TPtr
+    Int32 ->                                -- lock_bit : TBasicType TInt
+    IO CInt
+
+
+pointerBitTrylock ::
+    (MonadIO m) =>
+    Ptr ()                                  -- address
+    -> Int32                                -- lockBit
+    -> m Bool                               -- result
+pointerBitTrylock address lockBit = liftIO $ do
+    result <- g_pointer_bit_trylock address lockBit
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_pointer_bit_lock
+-- Args : [Arg {argCName = "address", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pointer_bit_lock" g_pointer_bit_lock :: 
+    Ptr () ->                               -- address : TBasicType TPtr
+    Int32 ->                                -- lock_bit : TBasicType TInt
+    IO ()
+
+
+pointerBitLock ::
+    (MonadIO m) =>
+    Ptr ()                                  -- address
+    -> Int32                                -- lockBit
+    -> m ()                                 -- result
+pointerBitLock address lockBit = liftIO $ do
+    g_pointer_bit_lock address lockBit
+    return ()
+
+
+-- function g_pattern_match_string
+-- Args : [Arg {argCName = "pspec", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pattern_match_string" g_pattern_match_string :: 
+    Ptr PatternSpec ->                      -- pspec : TInterface "GLib" "PatternSpec"
+    CString ->                              -- string : TBasicType TUTF8
+    IO CInt
+
+
+patternMatchString ::
+    (MonadIO m) =>
+    PatternSpec                             -- pspec
+    -> T.Text                               -- string
+    -> m Bool                               -- result
+patternMatchString pspec string = liftIO $ do
+    let pspec' = unsafeManagedPtrGetPtr pspec
+    string' <- textToCString string
+    result <- g_pattern_match_string pspec' string'
+    let result' = (/= 0) result
+    touchManagedPtr pspec
+    freeMem string'
+    return result'
+
+
+-- function g_pattern_match_simple
+-- Args : [Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pattern_match_simple" g_pattern_match_simple :: 
+    CString ->                              -- pattern : TBasicType TUTF8
+    CString ->                              -- string : TBasicType TUTF8
+    IO CInt
+
+
+patternMatchSimple ::
+    (MonadIO m) =>
+    T.Text                                  -- pattern
+    -> T.Text                               -- string
+    -> m Bool                               -- result
+patternMatchSimple pattern string = liftIO $ do
+    pattern' <- textToCString pattern
+    string' <- textToCString string
+    result <- g_pattern_match_simple pattern' string'
+    let result' = (/= 0) result
+    freeMem pattern'
+    freeMem string'
+    return result'
+
+
+-- function g_pattern_match
+-- Args : [Arg {argCName = "pspec", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_length", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_reversed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pattern_match" g_pattern_match :: 
+    Ptr PatternSpec ->                      -- pspec : TInterface "GLib" "PatternSpec"
+    Word32 ->                               -- string_length : TBasicType TUInt
+    CString ->                              -- string : TBasicType TUTF8
+    CString ->                              -- string_reversed : TBasicType TUTF8
+    IO CInt
+
+
+patternMatch ::
+    (MonadIO m) =>
+    PatternSpec                             -- pspec
+    -> Word32                               -- stringLength
+    -> T.Text                               -- string
+    -> Maybe (T.Text)                       -- stringReversed
+    -> m Bool                               -- result
+patternMatch pspec stringLength string stringReversed = liftIO $ do
+    let pspec' = unsafeManagedPtrGetPtr pspec
+    string' <- textToCString string
+    maybeStringReversed <- case stringReversed of
+        Nothing -> return nullPtr
+        Just jStringReversed -> do
+            jStringReversed' <- textToCString jStringReversed
+            return jStringReversed'
+    result <- g_pattern_match pspec' stringLength string' maybeStringReversed
+    let result' = (/= 0) result
+    touchManagedPtr pspec
+    freeMem string'
+    freeMem maybeStringReversed
+    return result'
+
+
+-- function g_path_skip_root
+-- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_path_skip_root" g_path_skip_root :: 
+    CString ->                              -- file_name : TBasicType TUTF8
+    IO CString
+
+
+pathSkipRoot ::
+    (MonadIO m) =>
+    T.Text                                  -- fileName
+    -> m (Maybe T.Text)                     -- result
+pathSkipRoot fileName = liftIO $ do
+    fileName' <- textToCString fileName
+    result <- g_path_skip_root fileName'
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        return result''
+    freeMem fileName'
+    return maybeResult
+
+
+-- function g_path_is_absolute
+-- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_path_is_absolute" g_path_is_absolute :: 
+    CString ->                              -- file_name : TBasicType TUTF8
+    IO CInt
+
+
+pathIsAbsolute ::
+    (MonadIO m) =>
+    T.Text                                  -- fileName
+    -> m Bool                               -- result
+pathIsAbsolute fileName = liftIO $ do
+    fileName' <- textToCString fileName
+    result <- g_path_is_absolute fileName'
+    let result' = (/= 0) result
+    freeMem fileName'
+    return result'
+
+
+-- function g_path_get_dirname
+-- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_path_get_dirname" g_path_get_dirname :: 
+    CString ->                              -- file_name : TBasicType TUTF8
+    IO CString
+
+
+pathGetDirname ::
+    (MonadIO m) =>
+    T.Text                                  -- fileName
+    -> m T.Text                             -- result
+pathGetDirname fileName = liftIO $ do
+    fileName' <- textToCString fileName
+    result <- g_path_get_dirname fileName'
+    checkUnexpectedReturnNULL "g_path_get_dirname" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem fileName'
+    return result'
+
+
+-- function g_path_get_basename
+-- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_path_get_basename" g_path_get_basename :: 
+    CString ->                              -- file_name : TBasicType TUTF8
+    IO CString
+
+
+pathGetBasename ::
+    (MonadIO m) =>
+    T.Text                                  -- fileName
+    -> m T.Text                             -- result
+pathGetBasename fileName = liftIO $ do
+    fileName' <- textToCString fileName
+    result <- g_path_get_basename fileName'
+    checkUnexpectedReturnNULL "g_path_get_basename" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem fileName'
+    return result'
+
+
+-- function g_parse_debug_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keys", argType = TCArray False (-1) 2 (TInterface "GLib" "DebugKey"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nkeys", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "nkeys", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_parse_debug_string" g_parse_debug_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    Ptr DebugKey ->                         -- keys : TCArray False (-1) 2 (TInterface "GLib" "DebugKey")
+    Word32 ->                               -- nkeys : TBasicType TUInt
+    IO Word32
+
+
+parseDebugString ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- string
+    -> [DebugKey]                           -- keys
+    -> m Word32                             -- result
+parseDebugString string keys = liftIO $ do
+    let nkeys = fromIntegral $ length keys
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    let keys' = map unsafeManagedPtrGetPtr keys
+    keys'' <- packBlockArray 16 keys'
+    result <- g_parse_debug_string maybeString keys'' nkeys
+    mapM_ touchManagedPtr keys
+    freeMem maybeString
+    freeMem keys''
+    return result
+
+
+-- function g_option_error_quark
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_error_quark" g_option_error_quark :: 
+    IO Word32
+
+
+optionErrorQuark ::
+    (MonadIO m) =>
+    m Word32                                -- result
+optionErrorQuark  = liftIO $ do
+    result <- g_option_error_quark
+    return result
+
+
+-- function g_on_error_stack_trace
+-- Args : [Arg {argCName = "prg_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_on_error_stack_trace" g_on_error_stack_trace :: 
+    CString ->                              -- prg_name : TBasicType TUTF8
+    IO ()
+
+
+onErrorStackTrace ::
+    (MonadIO m) =>
+    T.Text                                  -- prgName
+    -> m ()                                 -- result
+onErrorStackTrace prgName = liftIO $ do
+    prgName' <- textToCString prgName
+    g_on_error_stack_trace prgName'
+    freeMem prgName'
+    return ()
+
+
+-- function g_on_error_query
+-- Args : [Arg {argCName = "prg_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_on_error_query" g_on_error_query :: 
+    CString ->                              -- prg_name : TBasicType TUTF8
+    IO ()
+
+
+onErrorQuery ::
+    (MonadIO m) =>
+    T.Text                                  -- prgName
+    -> m ()                                 -- result
+onErrorQuery prgName = liftIO $ do
+    prgName' <- textToCString prgName
+    g_on_error_query prgName'
+    freeMem prgName'
+    return ()
+
+
+-- function g_nullify_pointer
+-- Args : [Arg {argCName = "nullify_location", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_nullify_pointer" g_nullify_pointer :: 
+    Ptr () ->                               -- nullify_location : TBasicType TPtr
+    IO ()
+
+
+nullifyPointer ::
+    (MonadIO m) =>
+    Ptr ()                                  -- nullifyLocation
+    -> m ()                                 -- result
+nullifyPointer nullifyLocation = liftIO $ do
+    g_nullify_pointer nullifyLocation
+    return ()
+
+
+-- function g_mkstemp_full
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mkstemp_full" g_mkstemp_full :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    Int32 ->                                -- flags : TBasicType TInt
+    Int32 ->                                -- mode : TBasicType TInt
+    IO Int32
+
+
+mkstempFull ::
+    (MonadIO m) =>
+    [Char]                                  -- tmpl
+    -> Int32                                -- flags
+    -> Int32                                -- mode
+    -> m Int32                              -- result
+mkstempFull tmpl flags mode = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkstemp_full tmpl' flags mode
+    freeMem tmpl'
+    return result
+
+
+-- function g_mkstemp
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mkstemp" g_mkstemp :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    IO Int32
+
+
+mkstemp ::
+    (MonadIO m) =>
+    [Char]                                  -- tmpl
+    -> m Int32                              -- result
+mkstemp tmpl = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkstemp tmpl'
+    freeMem tmpl'
+    return result
+
+
+-- function g_mkdtemp_full
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mkdtemp_full" g_mkdtemp_full :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    Int32 ->                                -- mode : TBasicType TInt
+    IO CString
+
+
+mkdtempFull ::
+    (MonadIO m) =>
+    [Char]                                  -- tmpl
+    -> Int32                                -- mode
+    -> m T.Text                             -- result
+mkdtempFull tmpl mode = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkdtemp_full tmpl' mode
+    checkUnexpectedReturnNULL "g_mkdtemp_full" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem tmpl'
+    return result'
+
+
+-- function g_mkdtemp
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mkdtemp" g_mkdtemp :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    IO CString
+
+
+mkdtemp ::
+    (MonadIO m) =>
+    [Char]                                  -- tmpl
+    -> m T.Text                             -- result
+mkdtemp tmpl = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkdtemp tmpl'
+    checkUnexpectedReturnNULL "g_mkdtemp" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem tmpl'
+    return result'
+
+
+-- function g_mkdir_with_parents
+-- Args : [Arg {argCName = "pathname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mkdir_with_parents" g_mkdir_with_parents :: 
+    CString ->                              -- pathname : TBasicType TUTF8
+    Int32 ->                                -- mode : TBasicType TInt
+    IO Int32
+
+
+mkdirWithParents ::
+    (MonadIO m) =>
+    T.Text                                  -- pathname
+    -> Int32                                -- mode
+    -> m Int32                              -- result
+mkdirWithParents pathname mode = liftIO $ do
+    pathname' <- textToCString pathname
+    result <- g_mkdir_with_parents pathname' mode
+    freeMem pathname'
+    return result
+
+
+-- function g_mem_set_vtable
+-- Args : [Arg {argCName = "vtable", argType = TInterface "GLib" "MemVTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mem_set_vtable" g_mem_set_vtable :: 
+    Ptr MemVTable ->                        -- vtable : TInterface "GLib" "MemVTable"
+    IO ()
+
+{-# DEPRECATED memSetVtable ["(Since version 2.46)","Use other memory profiling tools instead"]#-}
+memSetVtable ::
+    (MonadIO m) =>
+    MemVTable                               -- vtable
+    -> m ()                                 -- result
+memSetVtable vtable = liftIO $ do
+    let vtable' = unsafeManagedPtrGetPtr vtable
+    g_mem_set_vtable vtable'
+    touchManagedPtr vtable
+    return ()
+
+
+-- function g_mem_profile
+-- Args : []
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mem_profile" g_mem_profile :: 
+    IO ()
+
+{-# DEPRECATED memProfile ["(Since version 2.46)","Use other memory profiling tools instead"]#-}
+memProfile ::
+    (MonadIO m) =>
+    m ()                                    -- result
+memProfile  = liftIO $ do
+    g_mem_profile
+    return ()
+
+
+-- function g_mem_is_system_malloc
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mem_is_system_malloc" g_mem_is_system_malloc :: 
+    IO CInt
+
+{-# DEPRECATED memIsSystemMalloc ["(Since version 2.46)","GLib always uses the system malloc, so this function always","returns %TRUE."]#-}
+memIsSystemMalloc ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+memIsSystemMalloc  = liftIO $ do
+    result <- g_mem_is_system_malloc
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_markup_escape_text
+-- Args : [Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_markup_escape_text" g_markup_escape_text :: 
+    CString ->                              -- text : TBasicType TUTF8
+    Int64 ->                                -- length : TBasicType TInt64
+    IO CString
+
+
+markupEscapeText ::
+    (MonadIO m) =>
+    T.Text                                  -- text
+    -> Int64                                -- length_
+    -> m T.Text                             -- result
+markupEscapeText text length_ = liftIO $ do
+    text' <- textToCString text
+    result <- g_markup_escape_text text' length_
+    checkUnexpectedReturnNULL "g_markup_escape_text" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem text'
+    return result'
+
+
+-- function g_markup_error_quark
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_markup_error_quark" g_markup_error_quark :: 
+    IO Word32
+
+
+markupErrorQuark ::
+    (MonadIO m) =>
+    m Word32                                -- result
+markupErrorQuark  = liftIO $ do
+    result <- g_markup_error_quark
+    return result
+
+
+-- function g_main_depth
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_depth" g_main_depth :: 
+    IO Int32
+
+
+mainDepth ::
+    (MonadIO m) =>
+    m Int32                                 -- result
+mainDepth  = liftIO $ do
+    result <- g_main_depth
+    return result
+
+
+-- function g_main_current_source
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "Source")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_current_source" g_main_current_source :: 
+    IO (Ptr Source)
+
+
+mainCurrentSource ::
+    (MonadIO m) =>
+    m Source                                -- result
+mainCurrentSource  = liftIO $ do
+    result <- g_main_current_source
+    checkUnexpectedReturnNULL "g_main_current_source" result
+    result' <- (newBoxed Source) result
+    return result'
+
+
+-- function g_log_set_handler_full
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_levels", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_func", argType = TInterface "GLib" "LogFunc", 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 : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_log_set_handler_full" g_log_set_handler_full :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CUInt ->                                -- log_levels : TInterface "GLib" "LogLevelFlags"
+    FunPtr LogFuncC ->                      -- log_func : TInterface "GLib" "LogFunc"
+    Ptr () ->                               -- user_data : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- destroy : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+logSetHandler ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- logDomain
+    -> [LogLevelFlags]                      -- logLevels
+    -> LogFunc                              -- logFunc
+    -> m Word32                             -- result
+logSetHandler logDomain logLevels logFunc = liftIO $ do
+    maybeLogDomain <- case logDomain of
+        Nothing -> return nullPtr
+        Just jLogDomain -> do
+            jLogDomain' <- textToCString jLogDomain
+            return jLogDomain'
+    let logLevels' = gflagsToWord logLevels
+    logFunc' <- mkLogFunc (logFuncWrapper Nothing logFunc)
+    let userData = castFunPtrToPtr logFunc'
+    let destroy = safeFreeFunPtrPtr
+    result <- g_log_set_handler_full maybeLogDomain logLevels' logFunc' userData destroy
+    freeMem maybeLogDomain
+    return result
+
+
+-- function g_log_set_fatal_mask
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fatal_mask", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "LogLevelFlags")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_log_set_fatal_mask" g_log_set_fatal_mask :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CUInt ->                                -- fatal_mask : TInterface "GLib" "LogLevelFlags"
+    IO CUInt
+
+
+logSetFatalMask ::
+    (MonadIO m) =>
+    T.Text                                  -- logDomain
+    -> [LogLevelFlags]                      -- fatalMask
+    -> m [LogLevelFlags]                    -- result
+logSetFatalMask logDomain fatalMask = liftIO $ do
+    logDomain' <- textToCString logDomain
+    let fatalMask' = gflagsToWord fatalMask
+    result <- g_log_set_fatal_mask logDomain' fatalMask'
+    let result' = wordToGFlags result
+    freeMem logDomain'
+    return result'
+
+
+-- function g_log_set_always_fatal
+-- Args : [Arg {argCName = "fatal_mask", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "LogLevelFlags")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_log_set_always_fatal" g_log_set_always_fatal :: 
+    CUInt ->                                -- fatal_mask : TInterface "GLib" "LogLevelFlags"
+    IO CUInt
+
+
+logSetAlwaysFatal ::
+    (MonadIO m) =>
+    [LogLevelFlags]                         -- fatalMask
+    -> m [LogLevelFlags]                    -- result
+logSetAlwaysFatal fatalMask = liftIO $ do
+    let fatalMask' = gflagsToWord fatalMask
+    result <- g_log_set_always_fatal fatalMask'
+    let result' = wordToGFlags result
+    return result'
+
+
+-- function g_log_remove_handler
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_log_remove_handler" g_log_remove_handler :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    Word32 ->                               -- handler_id : TBasicType TUInt
+    IO ()
+
+
+logRemoveHandler ::
+    (MonadIO m) =>
+    T.Text                                  -- logDomain
+    -> Word32                               -- handlerId
+    -> m ()                                 -- result
+logRemoveHandler logDomain handlerId = liftIO $ do
+    logDomain' <- textToCString logDomain
+    g_log_remove_handler logDomain' handlerId
+    freeMem logDomain'
+    return ()
+
+
+-- function g_log_default_handler
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_level", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unused_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_log_default_handler" g_log_default_handler :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CUInt ->                                -- log_level : TInterface "GLib" "LogLevelFlags"
+    CString ->                              -- message : TBasicType TUTF8
+    Ptr () ->                               -- unused_data : TBasicType TPtr
+    IO ()
+
+
+logDefaultHandler ::
+    (MonadIO m) =>
+    T.Text                                  -- logDomain
+    -> [LogLevelFlags]                      -- logLevel
+    -> T.Text                               -- message
+    -> Ptr ()                               -- unusedData
+    -> m ()                                 -- result
+logDefaultHandler logDomain logLevel message unusedData = liftIO $ do
+    logDomain' <- textToCString logDomain
+    let logLevel' = gflagsToWord logLevel
+    message' <- textToCString message
+    g_log_default_handler logDomain' logLevel' message' unusedData
+    freeMem logDomain'
+    freeMem message'
+    return ()
+
+
+-- function g_locale_to_utf8
+-- Args : [Arg {argCName = "opsysstring", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_locale_to_utf8" g_locale_to_utf8 :: 
+    CString ->                              -- opsysstring : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+localeToUtf8 ::
+    (MonadIO m) =>
+    T.Text                                  -- opsysstring
+    -> Int64                                -- len
+    -> Word64                               -- bytesRead
+    -> Word64                               -- bytesWritten
+    -> m T.Text                             -- result
+localeToUtf8 opsysstring len bytesRead bytesWritten = liftIO $ do
+    opsysstring' <- textToCString opsysstring
+    onException (do
+        result <- propagateGError $ g_locale_to_utf8 opsysstring' len bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_locale_to_utf8" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem opsysstring'
+        return result'
+     ) (do
+        freeMem opsysstring'
+     )
+
+
+-- function g_locale_from_utf8
+-- Args : [Arg {argCName = "utf8string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_locale_from_utf8" g_locale_from_utf8 :: 
+    CString ->                              -- utf8string : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+localeFromUtf8 ::
+    (MonadIO m) =>
+    T.Text                                  -- utf8string
+    -> Int64                                -- len
+    -> Word64                               -- bytesRead
+    -> Word64                               -- bytesWritten
+    -> m T.Text                             -- result
+localeFromUtf8 utf8string len bytesRead bytesWritten = liftIO $ do
+    utf8string' <- textToCString utf8string
+    onException (do
+        result <- propagateGError $ g_locale_from_utf8 utf8string' len bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_locale_from_utf8" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem utf8string'
+        return result'
+     ) (do
+        freeMem utf8string'
+     )
+
+
+-- function g_listenv
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_listenv" g_listenv :: 
+    IO (Ptr CString)
+
+
+listenv ::
+    (MonadIO m) =>
+    m [T.Text]                              -- result
+listenv  = liftIO $ do
+    result <- g_listenv
+    checkUnexpectedReturnNULL "g_listenv" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    return result'
+
+
+-- function g_io_create_watch
+-- Args : [Arg {argCName = "channel", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "Source")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_create_watch" g_io_create_watch :: 
+    Ptr IOChannel ->                        -- channel : TInterface "GLib" "IOChannel"
+    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
+    IO (Ptr Source)
+
+
+ioCreateWatch ::
+    (MonadIO m) =>
+    IOChannel                               -- channel
+    -> [IOCondition]                        -- condition
+    -> m Source                             -- result
+ioCreateWatch channel condition = liftIO $ do
+    let channel' = unsafeManagedPtrGetPtr channel
+    let condition' = gflagsToWord condition
+    result <- g_io_create_watch channel' condition'
+    checkUnexpectedReturnNULL "g_io_create_watch" result
+    result' <- (wrapBoxed Source) result
+    touchManagedPtr channel
+    return result'
+
+
+-- function g_io_add_watch_full
+-- Args : [Arg {argCName = "channel", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "IOFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, 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 = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_add_watch_full" g_io_add_watch_full :: 
+    Ptr IOChannel ->                        -- channel : TInterface "GLib" "IOChannel"
+    Int32 ->                                -- priority : TBasicType TInt
+    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
+    FunPtr IOFuncC ->                       -- func : TInterface "GLib" "IOFunc"
+    Ptr () ->                               -- user_data : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+ioAddWatch ::
+    (MonadIO m) =>
+    IOChannel                               -- channel
+    -> Int32                                -- priority
+    -> [IOCondition]                        -- condition
+    -> IOFunc                               -- func
+    -> m Word32                             -- result
+ioAddWatch channel priority condition func = liftIO $ do
+    let channel' = unsafeManagedPtrGetPtr channel
+    let condition' = gflagsToWord condition
+    func' <- mkIOFunc (iOFuncWrapper Nothing func)
+    let userData = castFunPtrToPtr func'
+    let notify = safeFreeFunPtrPtr
+    result <- g_io_add_watch_full channel' priority condition' func' userData notify
+    touchManagedPtr channel
+    return result
+
+
+-- function g_intern_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_intern_string" g_intern_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+internString ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- string
+    -> m T.Text                             -- result
+internString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_intern_string maybeString
+    checkUnexpectedReturnNULL "g_intern_string" result
+    result' <- cstringToText result
+    freeMem maybeString
+    return result'
+
+
+-- function g_intern_static_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_intern_static_string" g_intern_static_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+internStaticString ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- string
+    -> m T.Text                             -- result
+internStaticString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_intern_static_string maybeString
+    checkUnexpectedReturnNULL "g_intern_static_string" result
+    result' <- cstringToText result
+    freeMem maybeString
+    return result'
+
+
+-- function g_int_hash
+-- Args : [Arg {argCName = "v", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_int_hash" g_int_hash :: 
+    Ptr () ->                               -- v : TBasicType TPtr
+    IO Word32
+
+
+intHash ::
+    (MonadIO m) =>
+    Ptr ()                                  -- v
+    -> m Word32                             -- result
+intHash v = liftIO $ do
+    result <- g_int_hash v
+    return result
+
+
+-- function g_int_equal
+-- 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 : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_int_equal" g_int_equal :: 
+    Ptr () ->                               -- v1 : TBasicType TPtr
+    Ptr () ->                               -- v2 : TBasicType TPtr
+    IO CInt
+
+
+intEqual ::
+    (MonadIO m) =>
+    Ptr ()                                  -- v1
+    -> Ptr ()                               -- v2
+    -> m Bool                               -- result
+intEqual v1 v2 = liftIO $ do
+    result <- g_int_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_int64_hash
+-- Args : [Arg {argCName = "v", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_int64_hash" g_int64_hash :: 
+    Ptr () ->                               -- v : TBasicType TPtr
+    IO Word32
+
+
+int64Hash ::
+    (MonadIO m) =>
+    Ptr ()                                  -- v
+    -> m Word32                             -- result
+int64Hash v = liftIO $ do
+    result <- g_int64_hash v
+    return result
+
+
+-- function g_int64_equal
+-- 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 : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_int64_equal" g_int64_equal :: 
+    Ptr () ->                               -- v1 : TBasicType TPtr
+    Ptr () ->                               -- v2 : TBasicType TPtr
+    IO CInt
+
+
+int64Equal ::
+    (MonadIO m) =>
+    Ptr ()                                  -- v1
+    -> Ptr ()                               -- v2
+    -> m Bool                               -- result
+int64Equal v1 v2 = liftIO $ do
+    result <- g_int64_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_idle_source_new
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "Source")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_idle_source_new" g_idle_source_new :: 
+    IO (Ptr Source)
+
+
+idleSourceNew ::
+    (MonadIO m) =>
+    m Source                                -- result
+idleSourceNew  = liftIO $ do
+    result <- g_idle_source_new
+    checkUnexpectedReturnNULL "g_idle_source_new" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_idle_remove_by_data
+-- Args : [Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_idle_remove_by_data" g_idle_remove_by_data :: 
+    Ptr () ->                               -- data : TBasicType TPtr
+    IO CInt
+
+
+idleRemoveByData ::
+    (MonadIO m) =>
+    Ptr ()                                  -- data_
+    -> m Bool                               -- result
+idleRemoveByData data_ = liftIO $ do
+    result <- g_idle_remove_by_data data_
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_idle_add_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_idle_add_full" g_idle_add_full :: 
+    Int32 ->                                -- priority : TBasicType TInt
+    FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+idleAdd ::
+    (MonadIO m) =>
+    Int32                                   -- priority
+    -> SourceFunc                           -- function
+    -> m Word32                             -- result
+idleAdd priority function = liftIO $ do
+    function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_idle_add_full priority function' data_ notify
+    return result
+
+
+-- function g_iconv
+-- Args : [Arg {argCName = "converter", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "inbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "inbytes_left", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "outbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "outbytes_left", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_iconv" g_iconv :: 
+    Ptr IConv ->                            -- converter : TInterface "GLib" "IConv"
+    CString ->                              -- inbuf : TBasicType TUTF8
+    Word64 ->                               -- inbytes_left : TBasicType TUInt64
+    CString ->                              -- outbuf : TBasicType TUTF8
+    Word64 ->                               -- outbytes_left : TBasicType TUInt64
+    IO Word64
+
+
+iconv ::
+    (MonadIO m) =>
+    IConv                                   -- converter
+    -> T.Text                               -- inbuf
+    -> Word64                               -- inbytesLeft
+    -> T.Text                               -- outbuf
+    -> Word64                               -- outbytesLeft
+    -> m Word64                             -- result
+iconv converter inbuf inbytesLeft outbuf outbytesLeft = liftIO $ do
+    let converter' = unsafeManagedPtrGetPtr converter
+    inbuf' <- textToCString inbuf
+    outbuf' <- textToCString outbuf
+    result <- g_iconv converter' inbuf' inbytesLeft outbuf' outbytesLeft
+    touchManagedPtr converter
+    freeMem inbuf'
+    freeMem outbuf'
+    return result
+
+
+-- function g_hostname_to_unicode
+-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hostname_to_unicode" g_hostname_to_unicode :: 
+    CString ->                              -- hostname : TBasicType TUTF8
+    IO CString
+
+
+hostnameToUnicode ::
+    (MonadIO m) =>
+    T.Text                                  -- hostname
+    -> m T.Text                             -- result
+hostnameToUnicode hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_to_unicode hostname'
+    checkUnexpectedReturnNULL "g_hostname_to_unicode" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem hostname'
+    return result'
+
+
+-- function g_hostname_to_ascii
+-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hostname_to_ascii" g_hostname_to_ascii :: 
+    CString ->                              -- hostname : TBasicType TUTF8
+    IO CString
+
+
+hostnameToAscii ::
+    (MonadIO m) =>
+    T.Text                                  -- hostname
+    -> m T.Text                             -- result
+hostnameToAscii hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_to_ascii hostname'
+    checkUnexpectedReturnNULL "g_hostname_to_ascii" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem hostname'
+    return result'
+
+
+-- function g_hostname_is_non_ascii
+-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hostname_is_non_ascii" g_hostname_is_non_ascii :: 
+    CString ->                              -- hostname : TBasicType TUTF8
+    IO CInt
+
+
+hostnameIsNonAscii ::
+    (MonadIO m) =>
+    T.Text                                  -- hostname
+    -> m Bool                               -- result
+hostnameIsNonAscii hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_is_non_ascii hostname'
+    let result' = (/= 0) result
+    freeMem hostname'
+    return result'
+
+
+-- function g_hostname_is_ip_address
+-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hostname_is_ip_address" g_hostname_is_ip_address :: 
+    CString ->                              -- hostname : TBasicType TUTF8
+    IO CInt
+
+
+hostnameIsIpAddress ::
+    (MonadIO m) =>
+    T.Text                                  -- hostname
+    -> m Bool                               -- result
+hostnameIsIpAddress hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_is_ip_address hostname'
+    let result' = (/= 0) result
+    freeMem hostname'
+    return result'
+
+
+-- function g_hostname_is_ascii_encoded
+-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hostname_is_ascii_encoded" g_hostname_is_ascii_encoded :: 
+    CString ->                              -- hostname : TBasicType TUTF8
+    IO CInt
+
+
+hostnameIsAsciiEncoded ::
+    (MonadIO m) =>
+    T.Text                                  -- hostname
+    -> m Bool                               -- result
+hostnameIsAsciiEncoded hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_is_ascii_encoded hostname'
+    let result' = (/= 0) result
+    freeMem hostname'
+    return result'
+
+
+-- function g_getenv
+-- Args : [Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_getenv" g_getenv :: 
+    CString ->                              -- variable : TBasicType TUTF8
+    IO CString
+
+
+getenv ::
+    (MonadIO m) =>
+    T.Text                                  -- variable
+    -> m T.Text                             -- result
+getenv variable = liftIO $ do
+    variable' <- textToCString variable
+    result <- g_getenv variable'
+    checkUnexpectedReturnNULL "g_getenv" result
+    result' <- cstringToText result
+    freeMem variable'
+    return result'
+
+
+-- function g_get_user_special_dir
+-- Args : [Arg {argCName = "directory", argType = TInterface "GLib" "UserDirectory", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_special_dir" g_get_user_special_dir :: 
+    CUInt ->                                -- directory : TInterface "GLib" "UserDirectory"
+    IO CString
+
+
+getUserSpecialDir ::
+    (MonadIO m) =>
+    UserDirectory                           -- directory
+    -> m T.Text                             -- result
+getUserSpecialDir directory = liftIO $ do
+    let directory' = (fromIntegral . fromEnum) directory
+    result <- g_get_user_special_dir directory'
+    checkUnexpectedReturnNULL "g_get_user_special_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_user_runtime_dir
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_runtime_dir" g_get_user_runtime_dir :: 
+    IO CString
+
+
+getUserRuntimeDir ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getUserRuntimeDir  = liftIO $ do
+    result <- g_get_user_runtime_dir
+    checkUnexpectedReturnNULL "g_get_user_runtime_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_user_name
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_name" g_get_user_name :: 
+    IO CString
+
+
+getUserName ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getUserName  = liftIO $ do
+    result <- g_get_user_name
+    checkUnexpectedReturnNULL "g_get_user_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_user_data_dir
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_data_dir" g_get_user_data_dir :: 
+    IO CString
+
+
+getUserDataDir ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getUserDataDir  = liftIO $ do
+    result <- g_get_user_data_dir
+    checkUnexpectedReturnNULL "g_get_user_data_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_user_config_dir
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_config_dir" g_get_user_config_dir :: 
+    IO CString
+
+
+getUserConfigDir ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getUserConfigDir  = liftIO $ do
+    result <- g_get_user_config_dir
+    checkUnexpectedReturnNULL "g_get_user_config_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_user_cache_dir
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_cache_dir" g_get_user_cache_dir :: 
+    IO CString
+
+
+getUserCacheDir ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getUserCacheDir  = liftIO $ do
+    result <- g_get_user_cache_dir
+    checkUnexpectedReturnNULL "g_get_user_cache_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_tmp_dir
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_tmp_dir" g_get_tmp_dir :: 
+    IO CString
+
+
+getTmpDir ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getTmpDir  = liftIO $ do
+    result <- g_get_tmp_dir
+    checkUnexpectedReturnNULL "g_get_tmp_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_system_data_dirs
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_system_data_dirs" g_get_system_data_dirs :: 
+    IO (Ptr CString)
+
+
+getSystemDataDirs ::
+    (MonadIO m) =>
+    m [T.Text]                              -- result
+getSystemDataDirs  = liftIO $ do
+    result <- g_get_system_data_dirs
+    checkUnexpectedReturnNULL "g_get_system_data_dirs" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    return result'
+
+
+-- function g_get_system_config_dirs
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_system_config_dirs" g_get_system_config_dirs :: 
+    IO (Ptr CString)
+
+
+getSystemConfigDirs ::
+    (MonadIO m) =>
+    m [T.Text]                              -- result
+getSystemConfigDirs  = liftIO $ do
+    result <- g_get_system_config_dirs
+    checkUnexpectedReturnNULL "g_get_system_config_dirs" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    return result'
+
+
+-- function g_get_real_time
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_real_time" g_get_real_time :: 
+    IO Int64
+
+
+getRealTime ::
+    (MonadIO m) =>
+    m Int64                                 -- result
+getRealTime  = liftIO $ do
+    result <- g_get_real_time
+    return result
+
+
+-- function g_get_real_name
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_real_name" g_get_real_name :: 
+    IO CString
+
+
+getRealName ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getRealName  = liftIO $ do
+    result <- g_get_real_name
+    checkUnexpectedReturnNULL "g_get_real_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_prgname
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_prgname" g_get_prgname :: 
+    IO CString
+
+
+getPrgname ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getPrgname  = liftIO $ do
+    result <- g_get_prgname
+    checkUnexpectedReturnNULL "g_get_prgname" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_num_processors
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_num_processors" g_get_num_processors :: 
+    IO Word32
+
+
+getNumProcessors ::
+    (MonadIO m) =>
+    m Word32                                -- result
+getNumProcessors  = liftIO $ do
+    result <- g_get_num_processors
+    return result
+
+
+-- function g_get_monotonic_time
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_monotonic_time" g_get_monotonic_time :: 
+    IO Int64
+
+
+getMonotonicTime ::
+    (MonadIO m) =>
+    m Int64                                 -- result
+getMonotonicTime  = liftIO $ do
+    result <- g_get_monotonic_time
+    return result
+
+
+-- function g_get_locale_variants
+-- Args : [Arg {argCName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_locale_variants" g_get_locale_variants :: 
+    CString ->                              -- locale : TBasicType TUTF8
+    IO (Ptr CString)
+
+
+getLocaleVariants ::
+    (MonadIO m) =>
+    T.Text                                  -- locale
+    -> m [T.Text]                           -- result
+getLocaleVariants locale = liftIO $ do
+    locale' <- textToCString locale
+    result <- g_get_locale_variants locale'
+    checkUnexpectedReturnNULL "g_get_locale_variants" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem locale'
+    return result'
+
+
+-- function g_get_language_names
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_language_names" g_get_language_names :: 
+    IO (Ptr CString)
+
+
+getLanguageNames ::
+    (MonadIO m) =>
+    m [T.Text]                              -- result
+getLanguageNames  = liftIO $ do
+    result <- g_get_language_names
+    checkUnexpectedReturnNULL "g_get_language_names" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    return result'
+
+
+-- function g_get_host_name
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_host_name" g_get_host_name :: 
+    IO CString
+
+
+getHostName ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getHostName  = liftIO $ do
+    result <- g_get_host_name
+    checkUnexpectedReturnNULL "g_get_host_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_home_dir
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_home_dir" g_get_home_dir :: 
+    IO CString
+
+
+getHomeDir ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getHomeDir  = liftIO $ do
+    result <- g_get_home_dir
+    checkUnexpectedReturnNULL "g_get_home_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_filename_charsets
+-- Args : [Arg {argCName = "charsets", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_filename_charsets" g_get_filename_charsets :: 
+    CString ->                              -- charsets : TBasicType TUTF8
+    IO CInt
+
+
+getFilenameCharsets ::
+    (MonadIO m) =>
+    T.Text                                  -- charsets
+    -> m Bool                               -- result
+getFilenameCharsets charsets = liftIO $ do
+    charsets' <- textToCString charsets
+    result <- g_get_filename_charsets charsets'
+    let result' = (/= 0) result
+    freeMem charsets'
+    return result'
+
+
+-- function g_get_environ
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_environ" g_get_environ :: 
+    IO (Ptr CString)
+
+
+getEnviron ::
+    (MonadIO m) =>
+    m [T.Text]                              -- result
+getEnviron  = liftIO $ do
+    result <- g_get_environ
+    checkUnexpectedReturnNULL "g_get_environ" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    return result'
+
+
+-- function g_get_current_time
+-- Args : [Arg {argCName = "result", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_current_time" g_get_current_time :: 
+    Ptr TimeVal ->                          -- result : TInterface "GLib" "TimeVal"
+    IO ()
+
+
+getCurrentTime ::
+    (MonadIO m) =>
+    TimeVal                                 -- result_
+    -> m ()                                 -- result
+getCurrentTime result_ = liftIO $ do
+    let result_' = unsafeManagedPtrGetPtr result_
+    g_get_current_time result_'
+    touchManagedPtr result_
+    return ()
+
+
+-- function g_get_current_dir
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_current_dir" g_get_current_dir :: 
+    IO CString
+
+
+getCurrentDir ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getCurrentDir  = liftIO $ do
+    result <- g_get_current_dir
+    checkUnexpectedReturnNULL "g_get_current_dir" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_get_codeset
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_codeset" g_get_codeset :: 
+    IO CString
+
+
+getCodeset ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getCodeset  = liftIO $ do
+    result <- g_get_codeset
+    checkUnexpectedReturnNULL "g_get_codeset" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_get_charset
+-- Args : [Arg {argCName = "charset", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_charset" g_get_charset :: 
+    Ptr CString ->                          -- charset : TBasicType TUTF8
+    IO CInt
+
+
+getCharset ::
+    (MonadIO m) =>
+    m (Bool,T.Text)                         -- result
+getCharset  = liftIO $ do
+    charset <- allocMem :: IO (Ptr CString)
+    result <- g_get_charset charset
+    let result' = (/= 0) result
+    charset' <- peek charset
+    charset'' <- cstringToText charset'
+    freeMem charset
+    return (result', charset'')
+
+
+-- function g_get_application_name
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_application_name" g_get_application_name :: 
+    IO CString
+
+
+getApplicationName ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getApplicationName  = liftIO $ do
+    result <- g_get_application_name
+    checkUnexpectedReturnNULL "g_get_application_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_free
+-- Args : [Arg {argCName = "mem", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_free" g_free :: 
+    Ptr () ->                               -- mem : TBasicType TPtr
+    IO ()
+
+
+free ::
+    (MonadIO m) =>
+    Ptr ()                                  -- mem
+    -> m ()                                 -- result
+free mem = liftIO $ do
+    g_free mem
+    return ()
+
+
+-- function g_format_size_full
+-- Args : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "FormatSizeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_format_size_full" g_format_size_full :: 
+    Word64 ->                               -- size : TBasicType TUInt64
+    CUInt ->                                -- flags : TInterface "GLib" "FormatSizeFlags"
+    IO CString
+
+
+formatSizeFull ::
+    (MonadIO m) =>
+    Word64                                  -- size
+    -> [FormatSizeFlags]                    -- flags
+    -> m T.Text                             -- result
+formatSizeFull size flags = liftIO $ do
+    let flags' = gflagsToWord flags
+    result <- g_format_size_full size flags'
+    checkUnexpectedReturnNULL "g_format_size_full" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_format_size_for_display
+-- Args : [Arg {argCName = "size", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_format_size_for_display" g_format_size_for_display :: 
+    Int64 ->                                -- size : TBasicType TInt64
+    IO CString
+
+{-# DEPRECATED formatSizeForDisplay ["(Since version 2.30)","This function is broken due to its use of SI","    suffixes to denote IEC units. Use g_format_size() instead."]#-}
+formatSizeForDisplay ::
+    (MonadIO m) =>
+    Int64                                   -- size
+    -> m T.Text                             -- result
+formatSizeForDisplay size = liftIO $ do
+    result <- g_format_size_for_display size
+    checkUnexpectedReturnNULL "g_format_size_for_display" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_format_size
+-- Args : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_format_size" g_format_size :: 
+    Word64 ->                               -- size : TBasicType TUInt64
+    IO CString
+
+
+formatSize ::
+    (MonadIO m) =>
+    Word64                                  -- size
+    -> m T.Text                             -- result
+formatSize size = liftIO $ do
+    result <- g_format_size size
+    checkUnexpectedReturnNULL "g_format_size" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_find_program_in_path
+-- Args : [Arg {argCName = "program", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_find_program_in_path" g_find_program_in_path :: 
+    CString ->                              -- program : TBasicType TUTF8
+    IO CString
+
+
+findProgramInPath ::
+    (MonadIO m) =>
+    T.Text                                  -- program
+    -> m T.Text                             -- result
+findProgramInPath program = liftIO $ do
+    program' <- textToCString program
+    result <- g_find_program_in_path program'
+    checkUnexpectedReturnNULL "g_find_program_in_path" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem program'
+    return result'
+
+
+-- function g_filename_to_utf8
+-- Args : [Arg {argCName = "opsysstring", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_filename_to_utf8" g_filename_to_utf8 :: 
+    CString ->                              -- opsysstring : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+filenameToUtf8 ::
+    (MonadIO m) =>
+    T.Text                                  -- opsysstring
+    -> Int64                                -- len
+    -> Word64                               -- bytesRead
+    -> Word64                               -- bytesWritten
+    -> m T.Text                             -- result
+filenameToUtf8 opsysstring len bytesRead bytesWritten = liftIO $ do
+    opsysstring' <- textToCString opsysstring
+    onException (do
+        result <- propagateGError $ g_filename_to_utf8 opsysstring' len bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_filename_to_utf8" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem opsysstring'
+        return result'
+     ) (do
+        freeMem opsysstring'
+     )
+
+
+-- function g_filename_to_uri
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_filename_to_uri" g_filename_to_uri :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    CString ->                              -- hostname : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+filenameToUri ::
+    (MonadIO m) =>
+    T.Text                                  -- filename
+    -> Maybe (T.Text)                       -- hostname
+    -> m T.Text                             -- result
+filenameToUri filename hostname = liftIO $ do
+    filename' <- textToCString filename
+    maybeHostname <- case hostname of
+        Nothing -> return nullPtr
+        Just jHostname -> do
+            jHostname' <- textToCString jHostname
+            return jHostname'
+    onException (do
+        result <- propagateGError $ g_filename_to_uri filename' maybeHostname
+        checkUnexpectedReturnNULL "g_filename_to_uri" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem filename'
+        freeMem maybeHostname
+        return result'
+     ) (do
+        freeMem filename'
+        freeMem maybeHostname
+     )
+
+
+-- function g_filename_from_utf8
+-- Args : [Arg {argCName = "utf8string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : Just (TCArray False (-1) 3 (TBasicType TUInt8))
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_filename_from_utf8" g_filename_from_utf8 :: 
+    CString ->                              -- utf8string : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    Ptr Word64 ->                           -- bytes_read : TBasicType TUInt64
+    Ptr Word64 ->                           -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr Word8)
+
+
+filenameFromUtf8 ::
+    (MonadIO m) =>
+    T.Text                                  -- utf8string
+    -> Int64                                -- len
+    -> m (ByteString,Word64)                -- result
+filenameFromUtf8 utf8string len = liftIO $ do
+    utf8string' <- textToCString utf8string
+    bytesRead <- allocMem :: IO (Ptr Word64)
+    bytesWritten <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_filename_from_utf8 utf8string' len bytesRead bytesWritten
+        bytesWritten' <- peek bytesWritten
+        checkUnexpectedReturnNULL "g_filename_from_utf8" result
+        result' <- (unpackByteStringWithLength bytesWritten') result
+        freeMem result
+        bytesRead' <- peek bytesRead
+        freeMem utf8string'
+        freeMem bytesRead
+        freeMem bytesWritten
+        return (result', bytesRead')
+     ) (do
+        freeMem utf8string'
+        freeMem bytesRead
+        freeMem bytesWritten
+     )
+
+
+-- function g_filename_from_uri
+-- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : Just (TBasicType TFileName)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_filename_from_uri" g_filename_from_uri :: 
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr CString ->                          -- hostname : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+filenameFromUri ::
+    (MonadIO m) =>
+    T.Text                                  -- uri
+    -> m ([Char],T.Text)                    -- result
+filenameFromUri uri = liftIO $ do
+    uri' <- textToCString uri
+    hostname <- allocMem :: IO (Ptr CString)
+    onException (do
+        result <- propagateGError $ g_filename_from_uri uri' hostname
+        checkUnexpectedReturnNULL "g_filename_from_uri" result
+        result' <- cstringToString result
+        freeMem result
+        hostname' <- peek hostname
+        hostname'' <- cstringToText hostname'
+        freeMem hostname'
+        freeMem uri'
+        freeMem hostname
+        return (result', hostname'')
+     ) (do
+        freeMem uri'
+        freeMem hostname
+     )
+
+
+-- function g_filename_display_name
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_filename_display_name" g_filename_display_name :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    IO CString
+
+
+filenameDisplayName ::
+    (MonadIO m) =>
+    T.Text                                  -- filename
+    -> m T.Text                             -- result
+filenameDisplayName filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_filename_display_name filename'
+    checkUnexpectedReturnNULL "g_filename_display_name" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem filename'
+    return result'
+
+
+-- function g_filename_display_basename
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_filename_display_basename" g_filename_display_basename :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    IO CString
+
+
+filenameDisplayBasename ::
+    (MonadIO m) =>
+    T.Text                                  -- filename
+    -> m T.Text                             -- result
+filenameDisplayBasename filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_filename_display_basename filename'
+    checkUnexpectedReturnNULL "g_filename_display_basename" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem filename'
+    return result'
+
+
+-- function g_file_test
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test", argType = TInterface "GLib" "FileTest", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_file_test" g_file_test :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    CUInt ->                                -- test : TInterface "GLib" "FileTest"
+    IO CInt
+
+
+fileTest ::
+    (MonadIO m) =>
+    T.Text                                  -- filename
+    -> [FileTest]                           -- test
+    -> m Bool                               -- result
+fileTest filename test = liftIO $ do
+    filename' <- textToCString filename
+    let test' = gflagsToWord test
+    result <- g_file_test filename' test'
+    let result' = (/= 0) result
+    freeMem filename'
+    return result'
+
+
+-- function g_file_set_contents
+-- Args : [Arg {argCName = "filename", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "contents", 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_file_set_contents" g_file_set_contents :: 
+    CString ->                              -- filename : TBasicType TFileName
+    Ptr Word8 ->                            -- contents : TCArray False (-1) 2 (TBasicType TUInt8)
+    Int64 ->                                -- length : TBasicType TInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+fileSetContents ::
+    (MonadIO m) =>
+    [Char]                                  -- filename
+    -> ByteString                           -- contents
+    -> m ()                                 -- result
+fileSetContents filename contents = liftIO $ do
+    let length_ = fromIntegral $ B.length contents
+    filename' <- stringToCString filename
+    contents' <- packByteString contents
+    onException (do
+        _ <- propagateGError $ g_file_set_contents filename' contents' length_
+        freeMem filename'
+        freeMem contents'
+        return ()
+     ) (do
+        freeMem filename'
+        freeMem contents'
+     )
+
+
+-- function g_file_read_link
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_file_read_link" g_file_read_link :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+fileReadLink ::
+    (MonadIO m) =>
+    T.Text                                  -- filename
+    -> m T.Text                             -- result
+fileReadLink filename = liftIO $ do
+    filename' <- textToCString filename
+    onException (do
+        result <- propagateGError $ g_file_read_link filename'
+        checkUnexpectedReturnNULL "g_file_read_link" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem filename'
+        return result'
+     ) (do
+        freeMem filename'
+     )
+
+
+-- function g_file_open_tmp
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name_used", argType = TBasicType TFileName, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_file_open_tmp" g_file_open_tmp :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    Ptr CString ->                          -- name_used : TBasicType TFileName
+    Ptr (Ptr GError) ->                     -- error
+    IO Int32
+
+
+fileOpenTmp ::
+    (MonadIO m) =>
+    Maybe ([Char])                          -- tmpl
+    -> m (Int32,[Char])                     -- result
+fileOpenTmp tmpl = liftIO $ do
+    maybeTmpl <- case tmpl of
+        Nothing -> return nullPtr
+        Just jTmpl -> do
+            jTmpl' <- stringToCString jTmpl
+            return jTmpl'
+    nameUsed <- allocMem :: IO (Ptr CString)
+    onException (do
+        result <- propagateGError $ g_file_open_tmp maybeTmpl nameUsed
+        nameUsed' <- peek nameUsed
+        nameUsed'' <- cstringToString nameUsed'
+        freeMem nameUsed'
+        freeMem maybeTmpl
+        freeMem nameUsed
+        return (result, nameUsed'')
+     ) (do
+        freeMem maybeTmpl
+        freeMem nameUsed
+     )
+
+
+-- function g_file_get_contents
+-- Args : [Arg {argCName = "filename", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "contents", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},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 : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_file_get_contents" g_file_get_contents :: 
+    CString ->                              -- filename : TBasicType TFileName
+    Ptr (Ptr Word8) ->                      -- contents : TCArray False (-1) 2 (TBasicType TUInt8)
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+fileGetContents ::
+    (MonadIO m) =>
+    [Char]                                  -- filename
+    -> m (ByteString)                       -- result
+fileGetContents filename = liftIO $ do
+    filename' <- stringToCString filename
+    contents <- allocMem :: IO (Ptr (Ptr Word8))
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        _ <- propagateGError $ g_file_get_contents filename' contents length_
+        length_' <- peek length_
+        contents' <- peek contents
+        contents'' <- (unpackByteStringWithLength length_') contents'
+        freeMem contents'
+        freeMem filename'
+        freeMem contents
+        freeMem length_
+        return contents''
+     ) (do
+        freeMem filename'
+        freeMem contents
+        freeMem length_
+     )
+
+
+-- function g_file_error_quark
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_file_error_quark" g_file_error_quark :: 
+    IO Word32
+
+
+fileErrorQuark ::
+    (MonadIO m) =>
+    m Word32                                -- result
+fileErrorQuark  = liftIO $ do
+    result <- g_file_error_quark
+    return result
+
+
+-- function g_file_error_from_errno
+-- Args : [Arg {argCName = "err_no", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "FileError")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_file_error_from_errno" g_file_error_from_errno :: 
+    Int32 ->                                -- err_no : TBasicType TInt
+    IO CUInt
+
+
+fileErrorFromErrno ::
+    (MonadIO m) =>
+    Int32                                   -- errNo
+    -> m FileError                          -- result
+fileErrorFromErrno errNo = liftIO $ do
+    result <- g_file_error_from_errno errNo
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+
+-- function g_environ_unsetenv
+-- Args : [Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_environ_unsetenv" g_environ_unsetenv :: 
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CString ->                              -- variable : TBasicType TUTF8
+    IO (Ptr CString)
+
+
+environUnsetenv ::
+    (MonadIO m) =>
+    Maybe ([T.Text])                        -- envp
+    -> T.Text                               -- variable
+    -> m [T.Text]                           -- result
+environUnsetenv envp variable = liftIO $ do
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    variable' <- textToCString variable
+    result <- g_environ_unsetenv maybeEnvp variable'
+    checkUnexpectedReturnNULL "g_environ_unsetenv" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem variable'
+    return result'
+
+
+-- function g_environ_setenv
+-- Args : [Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "variable", 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 = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_environ_setenv" g_environ_setenv :: 
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CString ->                              -- variable : TBasicType TUTF8
+    CString ->                              -- value : TBasicType TUTF8
+    CInt ->                                 -- overwrite : TBasicType TBoolean
+    IO (Ptr CString)
+
+
+environSetenv ::
+    (MonadIO m) =>
+    Maybe ([T.Text])                        -- envp
+    -> T.Text                               -- variable
+    -> T.Text                               -- value
+    -> Bool                                 -- overwrite
+    -> m [T.Text]                           -- result
+environSetenv envp variable value overwrite = liftIO $ do
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    variable' <- textToCString variable
+    value' <- textToCString value
+    let overwrite' = (fromIntegral . fromEnum) overwrite
+    result <- g_environ_setenv maybeEnvp variable' value' overwrite'
+    checkUnexpectedReturnNULL "g_environ_setenv" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem variable'
+    freeMem value'
+    return result'
+
+
+-- function g_environ_getenv
+-- Args : [Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_environ_getenv" g_environ_getenv :: 
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CString ->                              -- variable : TBasicType TUTF8
+    IO CString
+
+
+environGetenv ::
+    (MonadIO m) =>
+    Maybe ([T.Text])                        -- envp
+    -> T.Text                               -- variable
+    -> m T.Text                             -- result
+environGetenv envp variable = liftIO $ do
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    variable' <- textToCString variable
+    result <- g_environ_getenv maybeEnvp variable'
+    checkUnexpectedReturnNULL "g_environ_getenv" result
+    result' <- cstringToText result
+    mapZeroTerminatedCArray freeMem maybeEnvp
+    freeMem maybeEnvp
+    freeMem variable'
+    return result'
+
+
+-- function g_dpgettext2
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dpgettext2" g_dpgettext2 :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- context : TBasicType TUTF8
+    CString ->                              -- msgid : TBasicType TUTF8
+    IO CString
+
+
+dpgettext2 ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- domain
+    -> T.Text                               -- context
+    -> T.Text                               -- msgid
+    -> m T.Text                             -- result
+dpgettext2 domain context msgid = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    context' <- textToCString context
+    msgid' <- textToCString msgid
+    result <- g_dpgettext2 maybeDomain context' msgid'
+    checkUnexpectedReturnNULL "g_dpgettext2" result
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem context'
+    freeMem msgid'
+    return result'
+
+
+-- function g_dpgettext
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgctxtid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgidoffset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dpgettext" g_dpgettext :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- msgctxtid : TBasicType TUTF8
+    Word64 ->                               -- msgidoffset : TBasicType TUInt64
+    IO CString
+
+
+dpgettext ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- domain
+    -> T.Text                               -- msgctxtid
+    -> Word64                               -- msgidoffset
+    -> m T.Text                             -- result
+dpgettext domain msgctxtid msgidoffset = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    msgctxtid' <- textToCString msgctxtid
+    result <- g_dpgettext maybeDomain msgctxtid' msgidoffset
+    checkUnexpectedReturnNULL "g_dpgettext" result
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgctxtid'
+    return result'
+
+
+-- function g_double_hash
+-- Args : [Arg {argCName = "v", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_double_hash" g_double_hash :: 
+    Ptr () ->                               -- v : TBasicType TPtr
+    IO Word32
+
+
+doubleHash ::
+    (MonadIO m) =>
+    Ptr ()                                  -- v
+    -> m Word32                             -- result
+doubleHash v = liftIO $ do
+    result <- g_double_hash v
+    return result
+
+
+-- function g_double_equal
+-- 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 : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_double_equal" g_double_equal :: 
+    Ptr () ->                               -- v1 : TBasicType TPtr
+    Ptr () ->                               -- v2 : TBasicType TPtr
+    IO CInt
+
+
+doubleEqual ::
+    (MonadIO m) =>
+    Ptr ()                                  -- v1
+    -> Ptr ()                               -- v2
+    -> m Bool                               -- result
+doubleEqual v1 v2 = liftIO $ do
+    result <- g_double_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_dngettext
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid_plural", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dngettext" g_dngettext :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- msgid : TBasicType TUTF8
+    CString ->                              -- msgid_plural : TBasicType TUTF8
+    CULong ->                               -- n : TBasicType TULong
+    IO CString
+
+
+dngettext ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- domain
+    -> T.Text                               -- msgid
+    -> T.Text                               -- msgidPlural
+    -> CULong                               -- n
+    -> m T.Text                             -- result
+dngettext domain msgid msgidPlural n = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    msgid' <- textToCString msgid
+    msgidPlural' <- textToCString msgidPlural
+    result <- g_dngettext maybeDomain msgid' msgidPlural' n
+    checkUnexpectedReturnNULL "g_dngettext" result
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgid'
+    freeMem msgidPlural'
+    return result'
+
+
+-- function g_direct_hash
+-- Args : [Arg {argCName = "v", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_direct_hash" g_direct_hash :: 
+    Ptr () ->                               -- v : TBasicType TPtr
+    IO Word32
+
+
+directHash ::
+    (MonadIO m) =>
+    Ptr ()                                  -- v
+    -> m Word32                             -- result
+directHash v = liftIO $ do
+    result <- g_direct_hash v
+    return result
+
+
+-- function g_direct_equal
+-- Args : [Arg {argCName = "v1", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_direct_equal" g_direct_equal :: 
+    Ptr () ->                               -- v1 : TBasicType TPtr
+    Ptr () ->                               -- v2 : TBasicType TPtr
+    IO CInt
+
+
+directEqual ::
+    (MonadIO m) =>
+    Ptr ()                                  -- v1
+    -> Ptr ()                               -- v2
+    -> m Bool                               -- result
+directEqual v1 v2 = liftIO $ do
+    result <- g_direct_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_dgettext
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dgettext" g_dgettext :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- msgid : TBasicType TUTF8
+    IO CString
+
+
+dgettext ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- domain
+    -> T.Text                               -- msgid
+    -> m T.Text                             -- result
+dgettext domain msgid = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    msgid' <- textToCString msgid
+    result <- g_dgettext maybeDomain msgid'
+    checkUnexpectedReturnNULL "g_dgettext" result
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgid'
+    return result'
+
+
+-- function g_dcgettext
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "category", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dcgettext" g_dcgettext :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- msgid : TBasicType TUTF8
+    Int32 ->                                -- category : TBasicType TInt
+    IO CString
+
+
+dcgettext ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- domain
+    -> T.Text                               -- msgid
+    -> Int32                                -- category
+    -> m T.Text                             -- result
+dcgettext domain msgid category = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    msgid' <- textToCString msgid
+    result <- g_dcgettext maybeDomain msgid' category
+    checkUnexpectedReturnNULL "g_dcgettext" result
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgid'
+    return result'
+
+
+-- function g_dataset_id_set_data_full
+-- Args : [Arg {argCName = "dataset_location", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dataset_id_set_data_full" g_dataset_id_set_data_full :: 
+    Ptr () ->                               -- dataset_location : TBasicType TPtr
+    Word32 ->                               -- key_id : TBasicType TUInt32
+    Ptr () ->                               -- data : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- destroy_func : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+datasetIdSetDataFull ::
+    (MonadIO m) =>
+    Ptr ()                                  -- datasetLocation
+    -> Word32                               -- keyId
+    -> Ptr ()                               -- data_
+    -> DestroyNotify                        -- destroyFunc
+    -> m ()                                 -- result
+datasetIdSetDataFull datasetLocation keyId data_ destroyFunc = liftIO $ do
+    ptrdestroyFunc <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    destroyFunc' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroyFunc) destroyFunc)
+    poke ptrdestroyFunc destroyFunc'
+    g_dataset_id_set_data_full datasetLocation keyId data_ destroyFunc'
+    return ()
+
+
+-- function g_dataset_destroy
+-- Args : [Arg {argCName = "dataset_location", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dataset_destroy" g_dataset_destroy :: 
+    Ptr () ->                               -- dataset_location : TBasicType TPtr
+    IO ()
+
+
+datasetDestroy ::
+    (MonadIO m) =>
+    Ptr ()                                  -- datasetLocation
+    -> m ()                                 -- result
+datasetDestroy datasetLocation = liftIO $ do
+    g_dataset_destroy datasetLocation
+    return ()
+
+
+-- function g_datalist_unset_flags
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_unset_flags" g_datalist_unset_flags :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    Word32 ->                               -- flags : TBasicType TUInt
+    IO ()
+
+
+datalistUnsetFlags ::
+    (MonadIO m) =>
+    Data                                    -- datalist
+    -> Word32                               -- flags
+    -> m ()                                 -- result
+datalistUnsetFlags datalist flags = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_unset_flags datalist' flags
+    touchManagedPtr datalist
+    return ()
+
+
+-- function g_datalist_set_flags
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_set_flags" g_datalist_set_flags :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    Word32 ->                               -- flags : TBasicType TUInt
+    IO ()
+
+
+datalistSetFlags ::
+    (MonadIO m) =>
+    Data                                    -- datalist
+    -> Word32                               -- flags
+    -> m ()                                 -- result
+datalistSetFlags datalist flags = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_set_flags datalist' flags
+    touchManagedPtr datalist
+    return ()
+
+
+-- function g_datalist_init
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_init" g_datalist_init :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    IO ()
+
+
+datalistInit ::
+    (MonadIO m) =>
+    Data                                    -- datalist
+    -> m ()                                 -- result
+datalistInit datalist = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_init datalist'
+    touchManagedPtr datalist
+    return ()
+
+
+-- function g_datalist_id_set_data_full
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_id_set_data_full" g_datalist_id_set_data_full :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    Word32 ->                               -- key_id : TBasicType TUInt32
+    Ptr () ->                               -- data : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- destroy_func : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+datalistIdSetDataFull ::
+    (MonadIO m) =>
+    Data                                    -- datalist
+    -> Word32                               -- keyId
+    -> Ptr ()                               -- data_
+    -> DestroyNotify                        -- destroyFunc
+    -> m ()                                 -- result
+datalistIdSetDataFull datalist keyId data_ destroyFunc = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    ptrdestroyFunc <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    destroyFunc' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroyFunc) destroyFunc)
+    poke ptrdestroyFunc destroyFunc'
+    g_datalist_id_set_data_full datalist' keyId data_ destroyFunc'
+    touchManagedPtr datalist
+    return ()
+
+
+-- function g_datalist_id_replace_data
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldval", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "old_destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_id_replace_data" g_datalist_id_replace_data :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    Word32 ->                               -- key_id : TBasicType TUInt32
+    Ptr () ->                               -- oldval : TBasicType TPtr
+    Ptr () ->                               -- newval : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- destroy : TInterface "GLib" "DestroyNotify"
+    FunPtr DestroyNotifyC ->                -- old_destroy : TInterface "GLib" "DestroyNotify"
+    IO CInt
+
+
+datalistIdReplaceData ::
+    (MonadIO m) =>
+    Data                                    -- datalist
+    -> Word32                               -- keyId
+    -> Ptr ()                               -- oldval
+    -> Ptr ()                               -- newval
+    -> Maybe (DestroyNotify)                -- destroy
+    -> Maybe (DestroyNotify)                -- oldDestroy
+    -> m Bool                               -- result
+datalistIdReplaceData datalist keyId oldval newval destroy oldDestroy = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    ptrdestroy <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    maybeDestroy <- case destroy of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jDestroy -> do
+            jDestroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroy) jDestroy)
+            poke ptrdestroy jDestroy'
+            return jDestroy'
+    ptroldDestroy <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    maybeOldDestroy <- case oldDestroy of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jOldDestroy -> do
+            jOldDestroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptroldDestroy) jOldDestroy)
+            poke ptroldDestroy jOldDestroy'
+            return jOldDestroy'
+    result <- g_datalist_id_replace_data datalist' keyId oldval newval maybeDestroy maybeOldDestroy
+    let result' = (/= 0) result
+    touchManagedPtr datalist
+    return result'
+
+
+-- function g_datalist_get_flags
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_get_flags" g_datalist_get_flags :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    IO Word32
+
+
+datalistGetFlags ::
+    (MonadIO m) =>
+    Data                                    -- datalist
+    -> m Word32                             -- result
+datalistGetFlags datalist = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    result <- g_datalist_get_flags datalist'
+    touchManagedPtr datalist
+    return result
+
+
+-- function g_datalist_clear
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_clear" g_datalist_clear :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    IO ()
+
+
+datalistClear ::
+    (MonadIO m) =>
+    Data                                    -- datalist
+    -> m ()                                 -- result
+datalistClear datalist = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_clear datalist'
+    touchManagedPtr datalist
+    return ()
+
+
+-- function g_convert_with_iconv
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "converter", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_convert_with_iconv" g_convert_with_iconv :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    Ptr IConv ->                            -- converter : TInterface "GLib" "IConv"
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+convertWithIconv ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> IConv                                -- converter
+    -> Word64                               -- bytesRead
+    -> Word64                               -- bytesWritten
+    -> m T.Text                             -- result
+convertWithIconv str len converter bytesRead bytesWritten = liftIO $ do
+    str' <- textToCString str
+    let converter' = unsafeManagedPtrGetPtr converter
+    onException (do
+        result <- propagateGError $ g_convert_with_iconv str' len converter' bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_convert_with_iconv" result
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr converter
+        freeMem str'
+        return result'
+     ) (do
+        freeMem str'
+     )
+
+
+-- function g_convert_with_fallback
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fallback", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_convert_with_fallback" g_convert_with_fallback :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    CString ->                              -- to_codeset : TBasicType TUTF8
+    CString ->                              -- from_codeset : TBasicType TUTF8
+    CString ->                              -- fallback : TBasicType TUTF8
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+convertWithFallback ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> T.Text                               -- toCodeset
+    -> T.Text                               -- fromCodeset
+    -> T.Text                               -- fallback
+    -> Word64                               -- bytesRead
+    -> Word64                               -- bytesWritten
+    -> m T.Text                             -- result
+convertWithFallback str len toCodeset fromCodeset fallback bytesRead bytesWritten = liftIO $ do
+    str' <- textToCString str
+    toCodeset' <- textToCString toCodeset
+    fromCodeset' <- textToCString fromCodeset
+    fallback' <- textToCString fallback
+    onException (do
+        result <- propagateGError $ g_convert_with_fallback str' len toCodeset' fromCodeset' fallback' bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_convert_with_fallback" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem str'
+        freeMem toCodeset'
+        freeMem fromCodeset'
+        freeMem fallback'
+        return result'
+     ) (do
+        freeMem str'
+        freeMem toCodeset'
+        freeMem fromCodeset'
+        freeMem fallback'
+     )
+
+
+-- function g_convert_error_quark
+-- Args : []
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_convert_error_quark" g_convert_error_quark :: 
+    IO Word32
+
+
+convertErrorQuark ::
+    (MonadIO m) =>
+    m Word32                                -- result
+convertErrorQuark  = liftIO $ do
+    result <- g_convert_error_quark
+    return result
+
+
+-- function g_convert
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_convert" g_convert :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    CString ->                              -- to_codeset : TBasicType TUTF8
+    CString ->                              -- from_codeset : TBasicType TUTF8
+    Ptr Word64 ->                           -- bytes_read : TBasicType TUInt64
+    Ptr Word64 ->                           -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+convert ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> T.Text                               -- toCodeset
+    -> T.Text                               -- fromCodeset
+    -> m (T.Text,Word64,Word64)             -- result
+convert str len toCodeset fromCodeset = liftIO $ do
+    str' <- textToCString str
+    toCodeset' <- textToCString toCodeset
+    fromCodeset' <- textToCString fromCodeset
+    bytesRead <- allocMem :: IO (Ptr Word64)
+    bytesWritten <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_convert str' len toCodeset' fromCodeset' bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_convert" result
+        result' <- cstringToText result
+        freeMem result
+        bytesRead' <- peek bytesRead
+        bytesWritten' <- peek bytesWritten
+        freeMem str'
+        freeMem toCodeset'
+        freeMem fromCodeset'
+        freeMem bytesRead
+        freeMem bytesWritten
+        return (result', bytesRead', bytesWritten')
+     ) (do
+        freeMem str'
+        freeMem toCodeset'
+        freeMem fromCodeset'
+        freeMem bytesRead
+        freeMem bytesWritten
+     )
+
+
+-- function g_compute_hmac_for_string
+-- Args : [Arg {argCName = "digest_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "key_len", argType = TBasicType TUInt64, 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 "g_compute_hmac_for_string" g_compute_hmac_for_string :: 
+    CUInt ->                                -- digest_type : TInterface "GLib" "ChecksumType"
+    Ptr Word8 ->                            -- key : TCArray False (-1) 2 (TBasicType TUInt8)
+    Word64 ->                               -- key_len : TBasicType TUInt64
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- length : TBasicType TInt64
+    IO CString
+
+
+computeHmacForString ::
+    (MonadIO m) =>
+    ChecksumType                            -- digestType
+    -> ByteString                           -- key
+    -> T.Text                               -- str
+    -> Int64                                -- length_
+    -> m T.Text                             -- result
+computeHmacForString digestType key str length_ = liftIO $ do
+    let keyLen = fromIntegral $ B.length key
+    let digestType' = (fromIntegral . fromEnum) digestType
+    key' <- packByteString key
+    str' <- textToCString str
+    result <- g_compute_hmac_for_string digestType' key' keyLen str' length_
+    checkUnexpectedReturnNULL "g_compute_hmac_for_string" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem key'
+    freeMem str'
+    return result'
+
+
+-- function g_compute_hmac_for_data
+-- Args : [Arg {argCName = "digest_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = 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 = "key_len", argType = TBasicType TUInt64, 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 "g_compute_hmac_for_data" g_compute_hmac_for_data :: 
+    CUInt ->                                -- digest_type : TInterface "GLib" "ChecksumType"
+    Ptr Word8 ->                            -- key : TCArray False (-1) 2 (TBasicType TUInt8)
+    Word64 ->                               -- key_len : TBasicType TUInt64
+    Word8 ->                                -- data : TBasicType TUInt8
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO CString
+
+
+computeHmacForData ::
+    (MonadIO m) =>
+    ChecksumType                            -- digestType
+    -> ByteString                           -- key
+    -> Word8                                -- data_
+    -> Word64                               -- length_
+    -> m T.Text                             -- result
+computeHmacForData digestType key data_ length_ = liftIO $ do
+    let keyLen = fromIntegral $ B.length key
+    let digestType' = (fromIntegral . fromEnum) digestType
+    key' <- packByteString key
+    result <- g_compute_hmac_for_data digestType' key' keyLen data_ length_
+    checkUnexpectedReturnNULL "g_compute_hmac_for_data" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem key'
+    return result'
+
+
+-- function g_compute_checksum_for_string
+-- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_compute_checksum_for_string" g_compute_checksum_for_string :: 
+    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- length : TBasicType TInt64
+    IO CString
+
+
+computeChecksumForString ::
+    (MonadIO m) =>
+    ChecksumType                            -- checksumType
+    -> T.Text                               -- str
+    -> Int64                                -- length_
+    -> m T.Text                             -- result
+computeChecksumForString checksumType str length_ = liftIO $ do
+    let checksumType' = (fromIntegral . fromEnum) checksumType
+    str' <- textToCString str
+    result <- g_compute_checksum_for_string checksumType' str' length_
+    checkUnexpectedReturnNULL "g_compute_checksum_for_string" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_compute_checksum_for_data
+-- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", 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 : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_compute_checksum_for_data" g_compute_checksum_for_data :: 
+    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
+    Ptr Word8 ->                            -- data : TCArray False (-1) 2 (TBasicType TUInt8)
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO CString
+
+
+computeChecksumForData ::
+    (MonadIO m) =>
+    ChecksumType                            -- checksumType
+    -> ByteString                           -- data_
+    -> m T.Text                             -- result
+computeChecksumForData checksumType data_ = liftIO $ do
+    let length_ = fromIntegral $ B.length data_
+    let checksumType' = (fromIntegral . fromEnum) checksumType
+    data_' <- packByteString data_
+    result <- g_compute_checksum_for_data checksumType' data_' length_
+    checkUnexpectedReturnNULL "g_compute_checksum_for_data" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem data_'
+    return result'
+
+
+-- function g_compute_checksum_for_bytes
+-- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_compute_checksum_for_bytes" g_compute_checksum_for_bytes :: 
+    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
+    Ptr Bytes ->                            -- data : TInterface "GLib" "Bytes"
+    IO CString
+
+
+computeChecksumForBytes ::
+    (MonadIO m) =>
+    ChecksumType                            -- checksumType
+    -> Bytes                                -- data_
+    -> m T.Text                             -- result
+computeChecksumForBytes checksumType data_ = liftIO $ do
+    let checksumType' = (fromIntegral . fromEnum) checksumType
+    let data_' = unsafeManagedPtrGetPtr data_
+    result <- g_compute_checksum_for_bytes checksumType' data_'
+    checkUnexpectedReturnNULL "g_compute_checksum_for_bytes" result
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr data_
+    return result'
+
+
+-- function g_close
+-- Args : [Arg {argCName = "fd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_close" g_close :: 
+    Int32 ->                                -- fd : TBasicType TInt
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+close ::
+    (MonadIO m) =>
+    Int32                                   -- fd
+    -> m ()                                 -- result
+close fd = liftIO $ do
+    onException (do
+        _ <- propagateGError $ g_close fd
+        return ()
+     ) (do
+        return ()
+     )
+
+
+-- function g_clear_error
+-- Args : []
+-- Lengths : []
+-- returnType : Nothing
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_clear_error" g_clear_error :: 
+    Ptr (Ptr GError) ->                     -- error
+    IO ()
+
+
+clearError ::
+    (MonadIO m) =>
+    m ()                                    -- result
+clearError  = liftIO $ do
+    onException (do
+        propagateGError $ g_clear_error
+        return ()
+     ) (do
+        return ()
+     )
+
+
+-- function g_child_watch_source_new
+-- Args : [Arg {argCName = "pid", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TInterface "GLib" "Source")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_child_watch_source_new" g_child_watch_source_new :: 
+    Int32 ->                                -- pid : TBasicType TInt
+    IO (Ptr Source)
+
+
+childWatchSourceNew ::
+    (MonadIO m) =>
+    Int32                                   -- pid
+    -> m Source                             -- result
+childWatchSourceNew pid = liftIO $ do
+    result <- g_child_watch_source_new pid
+    checkUnexpectedReturnNULL "g_child_watch_source_new" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_child_watch_add_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pid", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "ChildWatchFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_child_watch_add_full" g_child_watch_add_full :: 
+    Int32 ->                                -- priority : TBasicType TInt
+    Int32 ->                                -- pid : TBasicType TInt
+    FunPtr ChildWatchFuncC ->               -- function : TInterface "GLib" "ChildWatchFunc"
+    Ptr () ->                               -- data : TBasicType TPtr
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+childWatchAdd ::
+    (MonadIO m) =>
+    Int32                                   -- priority
+    -> Int32                                -- pid
+    -> ChildWatchFunc                       -- function
+    -> m Word32                             -- result
+childWatchAdd priority pid function = liftIO $ do
+    function' <- mkChildWatchFunc (childWatchFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_child_watch_add_full priority pid function' data_ notify
+    return result
+
+
+-- function glib_check_version
+-- Args : [Arg {argCName = "required_major", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "required_minor", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "required_micro", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "glib_check_version" glib_check_version :: 
+    Word32 ->                               -- required_major : TBasicType TUInt
+    Word32 ->                               -- required_minor : TBasicType TUInt
+    Word32 ->                               -- required_micro : TBasicType TUInt
+    IO CString
+
+
+checkVersion ::
+    (MonadIO m) =>
+    Word32                                  -- requiredMajor
+    -> Word32                               -- requiredMinor
+    -> Word32                               -- requiredMicro
+    -> m T.Text                             -- result
+checkVersion requiredMajor requiredMinor requiredMicro = liftIO $ do
+    result <- glib_check_version requiredMajor requiredMinor requiredMicro
+    checkUnexpectedReturnNULL "glib_check_version" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_chdir
+-- Args : [Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_chdir" g_chdir :: 
+    CString ->                              -- path : TBasicType TUTF8
+    IO Int32
+
+
+chdir ::
+    (MonadIO m) =>
+    T.Text                                  -- path
+    -> m Int32                              -- result
+chdir path = liftIO $ do
+    path' <- textToCString path
+    result <- g_chdir path'
+    freeMem path'
+    return result
+
+
+-- function g_build_pathv
+-- Args : [Arg {argCName = "separator", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "args", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_build_pathv" g_build_pathv :: 
+    CString ->                              -- separator : TBasicType TUTF8
+    Ptr CString ->                          -- args : TCArray True (-1) (-1) (TBasicType TUTF8)
+    IO CString
+
+
+buildPathv ::
+    (MonadIO m) =>
+    T.Text                                  -- separator
+    -> [T.Text]                             -- args
+    -> m T.Text                             -- result
+buildPathv separator args = liftIO $ do
+    separator' <- textToCString separator
+    args' <- packZeroTerminatedUTF8CArray args
+    result <- g_build_pathv separator' args'
+    checkUnexpectedReturnNULL "g_build_pathv" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem separator'
+    mapZeroTerminatedCArray freeMem args'
+    freeMem args'
+    return result'
+
+
+-- function g_build_filenamev
+-- Args : [Arg {argCName = "args", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_build_filenamev" g_build_filenamev :: 
+    Ptr CString ->                          -- args : TCArray True (-1) (-1) (TBasicType TUTF8)
+    IO CString
+
+
+buildFilenamev ::
+    (MonadIO m) =>
+    [T.Text]                                -- args
+    -> m T.Text                             -- result
+buildFilenamev args = liftIO $ do
+    args' <- packZeroTerminatedUTF8CArray args
+    result <- g_build_filenamev args'
+    checkUnexpectedReturnNULL "g_build_filenamev" result
+    result' <- cstringToText result
+    freeMem result
+    mapZeroTerminatedCArray freeMem args'
+    freeMem args'
+    return result'
+
+
+-- function g_bit_unlock
+-- Args : [Arg {argCName = "address", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_unlock" g_bit_unlock :: 
+    Int32 ->                                -- address : TBasicType TInt
+    Int32 ->                                -- lock_bit : TBasicType TInt
+    IO ()
+
+
+bitUnlock ::
+    (MonadIO m) =>
+    Int32                                   -- address
+    -> Int32                                -- lockBit
+    -> m ()                                 -- result
+bitUnlock address lockBit = liftIO $ do
+    g_bit_unlock address lockBit
+    return ()
+
+
+-- function g_bit_trylock
+-- Args : [Arg {argCName = "address", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_trylock" g_bit_trylock :: 
+    Int32 ->                                -- address : TBasicType TInt
+    Int32 ->                                -- lock_bit : TBasicType TInt
+    IO CInt
+
+
+bitTrylock ::
+    (MonadIO m) =>
+    Int32                                   -- address
+    -> Int32                                -- lockBit
+    -> m Bool                               -- result
+bitTrylock address lockBit = liftIO $ do
+    result <- g_bit_trylock address lockBit
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_bit_storage
+-- Args : [Arg {argCName = "number", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_storage" g_bit_storage :: 
+    CULong ->                               -- number : TBasicType TULong
+    IO Word32
+
+
+bitStorage ::
+    (MonadIO m) =>
+    CULong                                  -- number
+    -> m Word32                             -- result
+bitStorage number = liftIO $ do
+    result <- g_bit_storage number
+    return result
+
+
+-- function g_bit_nth_msf
+-- Args : [Arg {argCName = "mask", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nth_bit", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_nth_msf" g_bit_nth_msf :: 
+    CULong ->                               -- mask : TBasicType TULong
+    Int32 ->                                -- nth_bit : TBasicType TInt
+    IO Int32
+
+
+bitNthMsf ::
+    (MonadIO m) =>
+    CULong                                  -- mask
+    -> Int32                                -- nthBit
+    -> m Int32                              -- result
+bitNthMsf mask nthBit = liftIO $ do
+    result <- g_bit_nth_msf mask nthBit
+    return result
+
+
+-- function g_bit_nth_lsf
+-- Args : [Arg {argCName = "mask", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nth_bit", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_nth_lsf" g_bit_nth_lsf :: 
+    CULong ->                               -- mask : TBasicType TULong
+    Int32 ->                                -- nth_bit : TBasicType TInt
+    IO Int32
+
+
+bitNthLsf ::
+    (MonadIO m) =>
+    CULong                                  -- mask
+    -> Int32                                -- nthBit
+    -> m Int32                              -- result
+bitNthLsf mask nthBit = liftIO $ do
+    result <- g_bit_nth_lsf mask nthBit
+    return result
+
+
+-- function g_bit_lock
+-- Args : [Arg {argCName = "address", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_lock" g_bit_lock :: 
+    Int32 ->                                -- address : TBasicType TInt
+    Int32 ->                                -- lock_bit : TBasicType TInt
+    IO ()
+
+
+bitLock ::
+    (MonadIO m) =>
+    Int32                                   -- address
+    -> Int32                                -- lockBit
+    -> m ()                                 -- result
+bitLock address lockBit = liftIO $ do
+    g_bit_lock address lockBit
+    return ()
+
+
+-- function g_basename
+-- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_basename" g_basename :: 
+    CString ->                              -- file_name : TBasicType TUTF8
+    IO CString
+
+{-# DEPRECATED basename ["(Since version 2.2)","Use g_path_get_basename() instead, but notice","    that g_path_get_basename() allocates new memory for the","    returned string, unlike this function which returns a pointer","    into the argument."]#-}
+basename ::
+    (MonadIO m) =>
+    T.Text                                  -- fileName
+    -> m T.Text                             -- result
+basename fileName = liftIO $ do
+    fileName' <- textToCString fileName
+    result <- g_basename fileName'
+    checkUnexpectedReturnNULL "g_basename" result
+    result' <- cstringToText result
+    freeMem fileName'
+    return result'
+
+
+-- function g_base64_encode
+-- 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 = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, 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 : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_base64_encode" g_base64_encode :: 
+    Ptr Word8 ->                            -- data : TCArray False (-1) 1 (TBasicType TUInt8)
+    Word64 ->                               -- len : TBasicType TUInt64
+    IO CString
+
+
+base64Encode ::
+    (MonadIO m) =>
+    ByteString                              -- data_
+    -> m T.Text                             -- result
+base64Encode data_ = liftIO $ do
+    let len = fromIntegral $ B.length data_
+    data_' <- packByteString data_
+    result <- g_base64_encode data_' len
+    checkUnexpectedReturnNULL "g_base64_encode" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem data_'
+    return result'
+
+
+-- function g_base64_decode_inplace
+-- Args : [Arg {argCName = "text", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : Just (TBasicType TUInt8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_base64_decode_inplace" g_base64_decode_inplace :: 
+    Ptr (Ptr Word8) ->                      -- text : TCArray False (-1) 1 (TBasicType TUInt8)
+    Ptr Word64 ->                           -- out_len : TBasicType TUInt64
+    IO Word8
+
+
+base64DecodeInplace ::
+    (MonadIO m) =>
+    ByteString                              -- text
+    -> m (Word8,ByteString)                 -- result
+base64DecodeInplace text = liftIO $ do
+    let outLen = fromIntegral $ B.length text
+    text' <- packByteString text
+    text'' <- allocMem :: IO (Ptr (Ptr Word8))
+    poke text'' text'
+    outLen' <- allocMem :: IO (Ptr Word64)
+    poke outLen' outLen
+    result <- g_base64_decode_inplace text'' outLen'
+    outLen'' <- peek outLen'
+    text''' <- peek text''
+    text'''' <- (unpackByteStringWithLength outLen'') text'''
+    freeMem text'''
+    freeMem text''
+    freeMem outLen'
+    return (result, text'''')
+
+
+-- function g_base64_decode
+-- Args : [Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : Just (TCArray False (-1) 1 (TBasicType TUInt8))
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_base64_decode" g_base64_decode :: 
+    CString ->                              -- text : TBasicType TUTF8
+    Ptr Word64 ->                           -- out_len : TBasicType TUInt64
+    IO (Ptr Word8)
+
+
+base64Decode ::
+    (MonadIO m) =>
+    T.Text                                  -- text
+    -> m ByteString                         -- result
+base64Decode text = liftIO $ do
+    text' <- textToCString text
+    outLen <- allocMem :: IO (Ptr Word64)
+    result <- g_base64_decode text' outLen
+    outLen' <- peek outLen
+    checkUnexpectedReturnNULL "g_base64_decode" result
+    result' <- (unpackByteStringWithLength outLen') result
+    freeMem result
+    freeMem text'
+    freeMem outLen
+    return result'
+
+
+-- function g_atomic_pointer_xor
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_xor" g_atomic_pointer_xor :: 
+    Ptr () ->                               -- atomic : TBasicType TPtr
+    Word64 ->                               -- val : TBasicType TUInt64
+    IO Word64
+
+
+atomicPointerXor ::
+    (MonadIO m) =>
+    Ptr ()                                  -- atomic
+    -> Word64                               -- val
+    -> m Word64                             -- result
+atomicPointerXor atomic val = liftIO $ do
+    result <- g_atomic_pointer_xor atomic val
+    return result
+
+
+-- function g_atomic_pointer_set
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_set" g_atomic_pointer_set :: 
+    Ptr () ->                               -- atomic : TBasicType TPtr
+    Ptr () ->                               -- newval : TBasicType TPtr
+    IO ()
+
+
+atomicPointerSet ::
+    (MonadIO m) =>
+    Ptr ()                                  -- atomic
+    -> Ptr ()                               -- newval
+    -> m ()                                 -- result
+atomicPointerSet atomic newval = liftIO $ do
+    g_atomic_pointer_set atomic newval
+    return ()
+
+
+-- function g_atomic_pointer_or
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_or" g_atomic_pointer_or :: 
+    Ptr () ->                               -- atomic : TBasicType TPtr
+    Word64 ->                               -- val : TBasicType TUInt64
+    IO Word64
+
+
+atomicPointerOr ::
+    (MonadIO m) =>
+    Ptr ()                                  -- atomic
+    -> Word64                               -- val
+    -> m Word64                             -- result
+atomicPointerOr atomic val = liftIO $ do
+    result <- g_atomic_pointer_or atomic val
+    return result
+
+
+-- function g_atomic_pointer_compare_and_exchange
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldval", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_compare_and_exchange" g_atomic_pointer_compare_and_exchange :: 
+    Ptr () ->                               -- atomic : TBasicType TPtr
+    Ptr () ->                               -- oldval : TBasicType TPtr
+    Ptr () ->                               -- newval : TBasicType TPtr
+    IO CInt
+
+
+atomicPointerCompareAndExchange ::
+    (MonadIO m) =>
+    Ptr ()                                  -- atomic
+    -> Ptr ()                               -- oldval
+    -> Ptr ()                               -- newval
+    -> m Bool                               -- result
+atomicPointerCompareAndExchange atomic oldval newval = liftIO $ do
+    result <- g_atomic_pointer_compare_and_exchange atomic oldval newval
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_atomic_pointer_and
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_and" g_atomic_pointer_and :: 
+    Ptr () ->                               -- atomic : TBasicType TPtr
+    Word64 ->                               -- val : TBasicType TUInt64
+    IO Word64
+
+
+atomicPointerAnd ::
+    (MonadIO m) =>
+    Ptr ()                                  -- atomic
+    -> Word64                               -- val
+    -> m Word64                             -- result
+atomicPointerAnd atomic val = liftIO $ do
+    result <- g_atomic_pointer_and atomic val
+    return result
+
+
+-- function g_atomic_pointer_add
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_add" g_atomic_pointer_add :: 
+    Ptr () ->                               -- atomic : TBasicType TPtr
+    Int64 ->                                -- val : TBasicType TInt64
+    IO Int64
+
+
+atomicPointerAdd ::
+    (MonadIO m) =>
+    Ptr ()                                  -- atomic
+    -> Int64                                -- val
+    -> m Int64                              -- result
+atomicPointerAdd atomic val = liftIO $ do
+    result <- g_atomic_pointer_add atomic val
+    return result
+
+
+-- function g_atomic_int_xor
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_xor" g_atomic_int_xor :: 
+    Word32 ->                               -- atomic : TBasicType TUInt
+    Word32 ->                               -- val : TBasicType TUInt
+    IO Word32
+
+
+atomicIntXor ::
+    (MonadIO m) =>
+    Word32                                  -- atomic
+    -> Word32                               -- val
+    -> m Word32                             -- result
+atomicIntXor atomic val = liftIO $ do
+    result <- g_atomic_int_xor atomic val
+    return result
+
+
+-- function g_atomic_int_set
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_set" g_atomic_int_set :: 
+    Int32 ->                                -- atomic : TBasicType TInt
+    Int32 ->                                -- newval : TBasicType TInt
+    IO ()
+
+
+atomicIntSet ::
+    (MonadIO m) =>
+    Int32                                   -- atomic
+    -> Int32                                -- newval
+    -> m ()                                 -- result
+atomicIntSet atomic newval = liftIO $ do
+    g_atomic_int_set atomic newval
+    return ()
+
+
+-- function g_atomic_int_or
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_or" g_atomic_int_or :: 
+    Word32 ->                               -- atomic : TBasicType TUInt
+    Word32 ->                               -- val : TBasicType TUInt
+    IO Word32
+
+
+atomicIntOr ::
+    (MonadIO m) =>
+    Word32                                  -- atomic
+    -> Word32                               -- val
+    -> m Word32                             -- result
+atomicIntOr atomic val = liftIO $ do
+    result <- g_atomic_int_or atomic val
+    return result
+
+
+-- function g_atomic_int_inc
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_inc" g_atomic_int_inc :: 
+    Int32 ->                                -- atomic : TBasicType TInt
+    IO ()
+
+
+atomicIntInc ::
+    (MonadIO m) =>
+    Int32                                   -- atomic
+    -> m ()                                 -- result
+atomicIntInc atomic = liftIO $ do
+    g_atomic_int_inc atomic
+    return ()
+
+
+-- function g_atomic_int_get
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_get" g_atomic_int_get :: 
+    Int32 ->                                -- atomic : TBasicType TInt
+    IO Int32
+
+
+atomicIntGet ::
+    (MonadIO m) =>
+    Int32                                   -- atomic
+    -> m Int32                              -- result
+atomicIntGet atomic = liftIO $ do
+    result <- g_atomic_int_get atomic
+    return result
+
+
+-- function g_atomic_int_exchange_and_add
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_exchange_and_add" g_atomic_int_exchange_and_add :: 
+    Int32 ->                                -- atomic : TBasicType TInt
+    Int32 ->                                -- val : TBasicType TInt
+    IO Int32
+
+{-# DEPRECATED atomicIntExchangeAndAdd ["(Since version 2.30)","Use g_atomic_int_add() instead."]#-}
+atomicIntExchangeAndAdd ::
+    (MonadIO m) =>
+    Int32                                   -- atomic
+    -> Int32                                -- val
+    -> m Int32                              -- result
+atomicIntExchangeAndAdd atomic val = liftIO $ do
+    result <- g_atomic_int_exchange_and_add atomic val
+    return result
+
+
+-- function g_atomic_int_dec_and_test
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_dec_and_test" g_atomic_int_dec_and_test :: 
+    Int32 ->                                -- atomic : TBasicType TInt
+    IO CInt
+
+
+atomicIntDecAndTest ::
+    (MonadIO m) =>
+    Int32                                   -- atomic
+    -> m Bool                               -- result
+atomicIntDecAndTest atomic = liftIO $ do
+    result <- g_atomic_int_dec_and_test atomic
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_atomic_int_compare_and_exchange
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldval", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TBoolean)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_compare_and_exchange" g_atomic_int_compare_and_exchange :: 
+    Int32 ->                                -- atomic : TBasicType TInt
+    Int32 ->                                -- oldval : TBasicType TInt
+    Int32 ->                                -- newval : TBasicType TInt
+    IO CInt
+
+
+atomicIntCompareAndExchange ::
+    (MonadIO m) =>
+    Int32                                   -- atomic
+    -> Int32                                -- oldval
+    -> Int32                                -- newval
+    -> m Bool                               -- result
+atomicIntCompareAndExchange atomic oldval newval = liftIO $ do
+    result <- g_atomic_int_compare_and_exchange atomic oldval newval
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_atomic_int_and
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_and" g_atomic_int_and :: 
+    Word32 ->                               -- atomic : TBasicType TUInt
+    Word32 ->                               -- val : TBasicType TUInt
+    IO Word32
+
+
+atomicIntAnd ::
+    (MonadIO m) =>
+    Word32                                  -- atomic
+    -> Word32                               -- val
+    -> m Word32                             -- result
+atomicIntAnd atomic val = liftIO $ do
+    result <- g_atomic_int_and atomic val
+    return result
+
+
+-- function g_atomic_int_add
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_add" g_atomic_int_add :: 
+    Int32 ->                                -- atomic : TBasicType TInt
+    Int32 ->                                -- val : TBasicType TInt
+    IO Int32
+
+
+atomicIntAdd ::
+    (MonadIO m) =>
+    Int32                                   -- atomic
+    -> Int32                                -- val
+    -> m Int32                              -- result
+atomicIntAdd atomic val = liftIO $ do
+    result <- g_atomic_int_add atomic val
+    return result
+
+
+-- function g_atexit
+-- Args : [Arg {argCName = "func", argType = TInterface "GLib" "VoidFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atexit" g_atexit :: 
+    FunPtr VoidFuncC ->                     -- func : TInterface "GLib" "VoidFunc"
+    IO ()
+
+{-# DEPRECATED atexit ["(Since version 2.32)","It is best to avoid g_atexit()."]#-}
+atexit ::
+    (MonadIO m) =>
+    VoidFunc                                -- func
+    -> m ()                                 -- result
+atexit func = liftIO $ do
+    ptrfunc <- callocMem :: IO (Ptr (FunPtr VoidFuncC))
+    func' <- mkVoidFunc (voidFuncWrapper (Just ptrfunc) func)
+    poke ptrfunc func'
+    g_atexit func'
+    return ()
+
+
+-- function g_assertion_message_expr
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_assertion_message_expr" g_assertion_message_expr :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt
+    CString ->                              -- func : TBasicType TUTF8
+    CString ->                              -- expr : TBasicType TUTF8
+    IO ()
+
+
+assertionMessageExpr ::
+    (MonadIO m) =>
+    T.Text                                  -- domain
+    -> T.Text                               -- file
+    -> Int32                                -- line
+    -> T.Text                               -- func
+    -> T.Text                               -- expr
+    -> m ()                                 -- result
+assertionMessageExpr domain file line func expr = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    expr' <- textToCString expr
+    g_assertion_message_expr domain' file' line func' expr'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem expr'
+    return ()
+
+
+-- function g_assertion_message_error
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error_domain", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error_code", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_assertion_message_error" g_assertion_message_error :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt
+    CString ->                              -- func : TBasicType TUTF8
+    CString ->                              -- expr : TBasicType TUTF8
+    Ptr GError ->                           -- error : TError
+    Word32 ->                               -- error_domain : TBasicType TUInt32
+    Int32 ->                                -- error_code : TBasicType TInt
+    IO ()
+
+
+assertionMessageError ::
+    (MonadIO m) =>
+    T.Text                                  -- domain
+    -> T.Text                               -- file
+    -> Int32                                -- line
+    -> T.Text                               -- func
+    -> T.Text                               -- expr
+    -> GError                               -- error_
+    -> Word32                               -- errorDomain
+    -> Int32                                -- errorCode
+    -> m ()                                 -- result
+assertionMessageError domain file line func expr error_ errorDomain errorCode = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    expr' <- textToCString expr
+    let error_' = unsafeManagedPtrGetPtr error_
+    g_assertion_message_error domain' file' line func' expr' error_' errorDomain errorCode
+    touchManagedPtr error_
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem expr'
+    return ()
+
+
+-- function g_assertion_message_cmpstr
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "arg1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cmp", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "arg2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_assertion_message_cmpstr" g_assertion_message_cmpstr :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt
+    CString ->                              -- func : TBasicType TUTF8
+    CString ->                              -- expr : TBasicType TUTF8
+    CString ->                              -- arg1 : TBasicType TUTF8
+    CString ->                              -- cmp : TBasicType TUTF8
+    CString ->                              -- arg2 : TBasicType TUTF8
+    IO ()
+
+
+assertionMessageCmpstr ::
+    (MonadIO m) =>
+    T.Text                                  -- domain
+    -> T.Text                               -- file
+    -> Int32                                -- line
+    -> T.Text                               -- func
+    -> T.Text                               -- expr
+    -> T.Text                               -- arg1
+    -> T.Text                               -- cmp
+    -> T.Text                               -- arg2
+    -> m ()                                 -- result
+assertionMessageCmpstr domain file line func expr arg1 cmp arg2 = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    expr' <- textToCString expr
+    arg1' <- textToCString arg1
+    cmp' <- textToCString cmp
+    arg2' <- textToCString arg2
+    g_assertion_message_cmpstr domain' file' line func' expr' arg1' cmp' arg2'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem expr'
+    freeMem arg1'
+    freeMem cmp'
+    freeMem arg2'
+    return ()
+
+
+-- function g_assertion_message
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_assertion_message" g_assertion_message :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt
+    CString ->                              -- func : TBasicType TUTF8
+    CString ->                              -- message : TBasicType TUTF8
+    IO ()
+
+
+assertionMessage ::
+    (MonadIO m) =>
+    T.Text                                  -- domain
+    -> T.Text                               -- file
+    -> Int32                                -- line
+    -> T.Text                               -- func
+    -> T.Text                               -- message
+    -> m ()                                 -- result
+assertionMessage domain file line func message = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    message' <- textToCString message
+    g_assertion_message domain' file' line func' message'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem message'
+    return ()
+
+
+-- function g_assert_warning
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pretty_function", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expression", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Nothing
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_assert_warning" g_assert_warning :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt
+    CString ->                              -- pretty_function : TBasicType TUTF8
+    CString ->                              -- expression : TBasicType TUTF8
+    IO ()
+
+
+assertWarning ::
+    (MonadIO m) =>
+    T.Text                                  -- logDomain
+    -> T.Text                               -- file
+    -> Int32                                -- line
+    -> T.Text                               -- prettyFunction
+    -> T.Text                               -- expression
+    -> m ()                                 -- result
+assertWarning logDomain file line prettyFunction expression = liftIO $ do
+    logDomain' <- textToCString logDomain
+    file' <- textToCString file
+    prettyFunction' <- textToCString prettyFunction
+    expression' <- textToCString expression
+    g_assert_warning logDomain' file' line prettyFunction' expression'
+    freeMem logDomain'
+    freeMem file'
+    freeMem prettyFunction'
+    freeMem expression'
+    return ()
+
+
+-- function g_ascii_xdigit_value
+-- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_xdigit_value" g_ascii_xdigit_value :: 
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO Int32
+
+
+asciiXdigitValue ::
+    (MonadIO m) =>
+    Int8                                    -- c
+    -> m Int32                              -- result
+asciiXdigitValue c = liftIO $ do
+    result <- g_ascii_xdigit_value c
+    return result
+
+
+-- function g_ascii_toupper
+-- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_toupper" g_ascii_toupper :: 
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO Int8
+
+
+asciiToupper ::
+    (MonadIO m) =>
+    Int8                                    -- c
+    -> m Int8                               -- result
+asciiToupper c = liftIO $ do
+    result <- g_ascii_toupper c
+    return result
+
+
+-- function g_ascii_tolower
+-- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_tolower" g_ascii_tolower :: 
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO Int8
+
+
+asciiTolower ::
+    (MonadIO m) =>
+    Int8                                    -- c
+    -> m Int8                               -- result
+asciiTolower c = liftIO $ do
+    result <- g_ascii_tolower c
+    return result
+
+
+-- function g_ascii_strup
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strup" g_ascii_strup :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+asciiStrup ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> m T.Text                             -- result
+asciiStrup str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_ascii_strup str' len
+    checkUnexpectedReturnNULL "g_ascii_strup" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_ascii_strtoull
+-- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "base", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strtoull" g_ascii_strtoull :: 
+    CString ->                              -- nptr : TBasicType TUTF8
+    CString ->                              -- endptr : TBasicType TUTF8
+    Word32 ->                               -- base : TBasicType TUInt
+    IO Word64
+
+
+asciiStrtoull ::
+    (MonadIO m) =>
+    T.Text                                  -- nptr
+    -> T.Text                               -- endptr
+    -> Word32                               -- base
+    -> m Word64                             -- result
+asciiStrtoull nptr endptr base = liftIO $ do
+    nptr' <- textToCString nptr
+    endptr' <- textToCString endptr
+    result <- g_ascii_strtoull nptr' endptr' base
+    freeMem nptr'
+    freeMem endptr'
+    return result
+
+
+-- function g_ascii_strtoll
+-- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "base", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt64)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strtoll" g_ascii_strtoll :: 
+    CString ->                              -- nptr : TBasicType TUTF8
+    CString ->                              -- endptr : TBasicType TUTF8
+    Word32 ->                               -- base : TBasicType TUInt
+    IO Int64
+
+
+asciiStrtoll ::
+    (MonadIO m) =>
+    T.Text                                  -- nptr
+    -> T.Text                               -- endptr
+    -> Word32                               -- base
+    -> m Int64                              -- result
+asciiStrtoll nptr endptr base = liftIO $ do
+    nptr' <- textToCString nptr
+    endptr' <- textToCString endptr
+    result <- g_ascii_strtoll nptr' endptr' base
+    freeMem nptr'
+    freeMem endptr'
+    return result
+
+
+-- function g_ascii_strtod
+-- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TDouble)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strtod" g_ascii_strtod :: 
+    CString ->                              -- nptr : TBasicType TUTF8
+    CString ->                              -- endptr : TBasicType TUTF8
+    IO CDouble
+
+
+asciiStrtod ::
+    (MonadIO m) =>
+    T.Text                                  -- nptr
+    -> T.Text                               -- endptr
+    -> m Double                             -- result
+asciiStrtod nptr endptr = liftIO $ do
+    nptr' <- textToCString nptr
+    endptr' <- textToCString endptr
+    result <- g_ascii_strtod nptr' endptr'
+    let result' = realToFrac result
+    freeMem nptr'
+    freeMem endptr'
+    return result'
+
+
+-- function g_ascii_strncasecmp
+-- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strncasecmp" g_ascii_strncasecmp :: 
+    CString ->                              -- s1 : TBasicType TUTF8
+    CString ->                              -- s2 : TBasicType TUTF8
+    Word64 ->                               -- n : TBasicType TUInt64
+    IO Int32
+
+
+asciiStrncasecmp ::
+    (MonadIO m) =>
+    T.Text                                  -- s1
+    -> T.Text                               -- s2
+    -> Word64                               -- n
+    -> m Int32                              -- result
+asciiStrncasecmp s1 s2 n = liftIO $ do
+    s1' <- textToCString s1
+    s2' <- textToCString s2
+    result <- g_ascii_strncasecmp s1' s2' n
+    freeMem s1'
+    freeMem s2'
+    return result
+
+
+-- function g_ascii_strdown
+-- 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strdown" g_ascii_strdown :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+asciiStrdown ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> Int64                                -- len
+    -> m T.Text                             -- result
+asciiStrdown str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_ascii_strdown str' len
+    checkUnexpectedReturnNULL "g_ascii_strdown" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_ascii_strcasecmp
+-- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strcasecmp" g_ascii_strcasecmp :: 
+    CString ->                              -- s1 : TBasicType TUTF8
+    CString ->                              -- s2 : TBasicType TUTF8
+    IO Int32
+
+
+asciiStrcasecmp ::
+    (MonadIO m) =>
+    T.Text                                  -- s1
+    -> T.Text                               -- s2
+    -> m Int32                              -- result
+asciiStrcasecmp s1 s2 = liftIO $ do
+    s1' <- textToCString s1
+    s2' <- textToCString s2
+    result <- g_ascii_strcasecmp s1' s2'
+    freeMem s1'
+    freeMem s2'
+    return result
+
+
+-- function g_ascii_formatd
+-- Args : [Arg {argCName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf_len", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_formatd" g_ascii_formatd :: 
+    CString ->                              -- buffer : TBasicType TUTF8
+    Int32 ->                                -- buf_len : TBasicType TInt
+    CString ->                              -- format : TBasicType TUTF8
+    CDouble ->                              -- d : TBasicType TDouble
+    IO CString
+
+
+asciiFormatd ::
+    (MonadIO m) =>
+    T.Text                                  -- buffer
+    -> Int32                                -- bufLen
+    -> T.Text                               -- format
+    -> Double                               -- d
+    -> m T.Text                             -- result
+asciiFormatd buffer bufLen format d = liftIO $ do
+    buffer' <- textToCString buffer
+    format' <- textToCString format
+    let d' = realToFrac d
+    result <- g_ascii_formatd buffer' bufLen format' d'
+    checkUnexpectedReturnNULL "g_ascii_formatd" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem buffer'
+    freeMem format'
+    return result'
+
+
+-- function g_ascii_dtostr
+-- Args : [Arg {argCName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf_len", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_dtostr" g_ascii_dtostr :: 
+    CString ->                              -- buffer : TBasicType TUTF8
+    Int32 ->                                -- buf_len : TBasicType TInt
+    CDouble ->                              -- d : TBasicType TDouble
+    IO CString
+
+
+asciiDtostr ::
+    (MonadIO m) =>
+    T.Text                                  -- buffer
+    -> Int32                                -- bufLen
+    -> Double                               -- d
+    -> m T.Text                             -- result
+asciiDtostr buffer bufLen d = liftIO $ do
+    buffer' <- textToCString buffer
+    let d' = realToFrac d
+    result <- g_ascii_dtostr buffer' bufLen d'
+    checkUnexpectedReturnNULL "g_ascii_dtostr" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem buffer'
+    return result'
+
+
+-- function g_ascii_digit_value
+-- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_digit_value" g_ascii_digit_value :: 
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO Int32
+
+
+asciiDigitValue ::
+    (MonadIO m) =>
+    Int8                                    -- c
+    -> m Int32                              -- result
+asciiDigitValue c = liftIO $ do
+    result <- g_ascii_digit_value c
+    return result
+
+
+-- function g_access
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : Just (TBasicType TInt)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_access" g_access :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    Int32 ->                                -- mode : TBasicType TInt
     IO Int32
 
 
diff --git a/GI/GLib/Structs.hs b/GI/GLib/Structs.hs
--- a/GI/GLib/Structs.hs
+++ b/GI/GLib/Structs.hs
@@ -140,9 +140,9 @@
 import GI.GLib.Structs.VariantDict
 import GI.GLib.Structs.VariantType
 
-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/GLib/Structs/AsyncQueue.hs b/GI/GLib/Structs/AsyncQueue.hs
--- a/GI/GLib/Structs/AsyncQueue.hs
+++ b/GI/GLib/Structs/AsyncQueue.hs
@@ -88,9 +88,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -102,11 +102,15 @@
 noAsyncQueue :: Maybe AsyncQueue
 noAsyncQueue = Nothing
 
+
+type instance AttributeList AsyncQueue = AsyncQueueAttributeList
+type AsyncQueueAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method AsyncQueue::length
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", 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
 
@@ -133,7 +137,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", 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
 
@@ -160,7 +164,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", 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
 
@@ -185,15 +189,15 @@
 
 -- method AsyncQueue::push
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_async_queue_push" g_async_queue_push :: 
     Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO ()
 
 
@@ -214,15 +218,15 @@
 
 -- method AsyncQueue::push_front
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", 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 "g_async_queue_push_front" g_async_queue_push_front :: 
     Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
-    Ptr () ->                               -- item : TBasicType TVoid
+    Ptr () ->                               -- item : TBasicType TPtr
     IO ()
 
 
@@ -243,15 +247,15 @@
 
 -- method AsyncQueue::push_front_unlocked
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", 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 "g_async_queue_push_front_unlocked" g_async_queue_push_front_unlocked :: 
     Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
-    Ptr () ->                               -- item : TBasicType TVoid
+    Ptr () ->                               -- item : TBasicType TPtr
     IO ()
 
 
@@ -272,15 +276,15 @@
 
 -- method AsyncQueue::push_unlocked
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_async_queue_push_unlocked" g_async_queue_push_unlocked :: 
     Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO ()
 
 
@@ -303,7 +307,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", 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
 
@@ -328,15 +332,15 @@
 
 -- method AsyncQueue::remove
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", 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 "g_async_queue_remove" g_async_queue_remove :: 
     Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
-    Ptr () ->                               -- item : TBasicType TVoid
+    Ptr () ->                               -- item : TBasicType TPtr
     IO CInt
 
 
@@ -358,15 +362,15 @@
 
 -- method AsyncQueue::remove_unlocked
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", 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 "g_async_queue_remove_unlocked" g_async_queue_remove_unlocked :: 
     Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
-    Ptr () ->                               -- item : TBasicType TVoid
+    Ptr () ->                               -- item : TBasicType TPtr
     IO CInt
 
 
@@ -390,7 +394,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", 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
 
@@ -417,7 +421,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", 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
 
@@ -444,7 +448,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", 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/GLib/Structs/AsyncQueue.hs-boot b/GI/GLib/Structs/AsyncQueue.hs-boot
--- a/GI/GLib/Structs/AsyncQueue.hs-boot
+++ b/GI/GLib/Structs/AsyncQueue.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.AsyncQueue 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/GLib/Structs/BookmarkFile.hs b/GI/GLib/Structs/BookmarkFile.hs
--- a/GI/GLib/Structs/BookmarkFile.hs
+++ b/GI/GLib/Structs/BookmarkFile.hs
@@ -216,9 +216,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
@@ -230,11 +230,15 @@
 noBookmarkFile :: Maybe BookmarkFile
 noBookmarkFile = Nothing
 
+
+type instance AttributeList BookmarkFile = BookmarkFileAttributeList
+type BookmarkFileAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method BookmarkFile::add_application
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exec", 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
 
@@ -281,7 +285,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "group", 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
 
@@ -316,7 +320,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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
 
@@ -343,7 +347,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TInt64
+-- returnType : Just (TBasicType TLong)
 -- throws : True
 -- Skip return : False
 
@@ -351,14 +355,14 @@
     Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
     CString ->                              -- uri : TBasicType TUTF8
     Ptr (Ptr GError) ->                     -- error
-    IO Int64
+    IO CLong
 
 
 bookmarkFileGetAdded ::
     (MonadIO m) =>
     BookmarkFile                            -- _obj
     -> T.Text                               -- uri
-    -> m Int64                              -- result
+    -> m CLong                              -- result
 bookmarkFileGetAdded _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -372,14 +376,14 @@
      )
 
 data BookmarkFileGetAddedMethodInfo
-instance (signature ~ (T.Text -> m Int64), MonadIO m) => MethodInfo BookmarkFileGetAddedMethodInfo BookmarkFile signature where
+instance (signature ~ (T.Text -> m CLong), MonadIO m) => MethodInfo BookmarkFileGetAddedMethodInfo BookmarkFile signature where
     overloadedMethod _ = bookmarkFileGetAdded
 
 -- method BookmarkFile::get_app_info
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exec", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "count", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "stamp", argType = TBasicType TInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exec", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "count", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "stamp", argType = TBasicType TLong, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -388,8 +392,8 @@
     CString ->                              -- uri : TBasicType TUTF8
     CString ->                              -- name : TBasicType TUTF8
     Ptr CString ->                          -- exec : TBasicType TUTF8
-    Ptr Word32 ->                           -- count : TBasicType TUInt32
-    Ptr Int64 ->                            -- stamp : TBasicType TInt64
+    Ptr Word32 ->                           -- count : TBasicType TUInt
+    Ptr CLong ->                            -- stamp : TBasicType TLong
     Ptr (Ptr GError) ->                     -- error
     IO CInt
 
@@ -399,14 +403,14 @@
     BookmarkFile                            -- _obj
     -> T.Text                               -- uri
     -> T.Text                               -- name
-    -> m (T.Text,Word32,Int64)              -- result
+    -> m (T.Text,Word32,CLong)              -- result
 bookmarkFileGetAppInfo _obj uri name = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
     name' <- textToCString name
     exec <- allocMem :: IO (Ptr CString)
     count <- allocMem :: IO (Ptr Word32)
-    stamp <- allocMem :: IO (Ptr Int64)
+    stamp <- allocMem :: IO (Ptr CLong)
     onException (do
         _ <- propagateGError $ g_bookmark_file_get_app_info _obj' uri' name' exec count stamp
         exec' <- peek exec
@@ -430,14 +434,14 @@
      )
 
 data BookmarkFileGetAppInfoMethodInfo
-instance (signature ~ (T.Text -> T.Text -> m (T.Text,Word32,Int64)), MonadIO m) => MethodInfo BookmarkFileGetAppInfoMethodInfo BookmarkFile signature where
+instance (signature ~ (T.Text -> T.Text -> m (T.Text,Word32,CLong)), MonadIO m) => MethodInfo BookmarkFileGetAppInfoMethodInfo BookmarkFile signature where
     overloadedMethod _ = bookmarkFileGetAppInfo
 
 -- method BookmarkFile::get_applications
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "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 : TCArray False (-1) 2 (TBasicType TUTF8)
+-- returnType : Just (TCArray False (-1) 2 (TBasicType TUTF8))
 -- throws : True
 -- Skip return : False
 
@@ -482,7 +486,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
 
@@ -521,7 +525,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "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 : TCArray False (-1) 2 (TBasicType TUTF8)
+-- returnType : Just (TCArray False (-1) 2 (TBasicType TUTF8))
 -- throws : True
 -- Skip return : False
 
@@ -566,7 +570,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "href", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "mime_type", 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 : True
 -- Skip return : False
 
@@ -616,7 +620,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -652,7 +656,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
 
@@ -691,7 +695,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TInt64
+-- returnType : Just (TBasicType TLong)
 -- throws : True
 -- Skip return : False
 
@@ -699,14 +703,14 @@
     Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
     CString ->                              -- uri : TBasicType TUTF8
     Ptr (Ptr GError) ->                     -- error
-    IO Int64
+    IO CLong
 
 
 bookmarkFileGetModified ::
     (MonadIO m) =>
     BookmarkFile                            -- _obj
     -> T.Text                               -- uri
-    -> m Int64                              -- result
+    -> m CLong                              -- result
 bookmarkFileGetModified _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -720,14 +724,14 @@
      )
 
 data BookmarkFileGetModifiedMethodInfo
-instance (signature ~ (T.Text -> m Int64), MonadIO m) => MethodInfo BookmarkFileGetModifiedMethodInfo BookmarkFile signature where
+instance (signature ~ (T.Text -> m CLong), MonadIO m) => MethodInfo BookmarkFileGetModifiedMethodInfo BookmarkFile signature where
     overloadedMethod _ = bookmarkFileGetModified
 
 -- method BookmarkFile::get_size
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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
 
@@ -754,7 +758,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", 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 : True
 -- Skip return : False
 
@@ -797,7 +801,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, 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 : TCArray False (-1) 1 (TBasicType TUTF8)
+-- returnType : Just (TCArray False (-1) 1 (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -832,7 +836,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TInt64
+-- returnType : Just (TBasicType TLong)
 -- throws : True
 -- Skip return : False
 
@@ -840,14 +844,14 @@
     Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
     CString ->                              -- uri : TBasicType TUTF8
     Ptr (Ptr GError) ->                     -- error
-    IO Int64
+    IO CLong
 
 
 bookmarkFileGetVisited ::
     (MonadIO m) =>
     BookmarkFile                            -- _obj
     -> T.Text                               -- uri
-    -> m Int64                              -- result
+    -> m CLong                              -- result
 bookmarkFileGetVisited _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -861,14 +865,14 @@
      )
 
 data BookmarkFileGetVisitedMethodInfo
-instance (signature ~ (T.Text -> m Int64), MonadIO m) => MethodInfo BookmarkFileGetVisitedMethodInfo BookmarkFile signature where
+instance (signature ~ (T.Text -> m CLong), MonadIO m) => MethodInfo BookmarkFileGetVisitedMethodInfo BookmarkFile signature where
     overloadedMethod _ = bookmarkFileGetVisited
 
 -- method BookmarkFile::has_application
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "name", 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
 
@@ -909,7 +913,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "group", 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
 
@@ -950,7 +954,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -982,7 +986,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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},Arg {argCName = "length", argType = TBasicType TUInt64, 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
 
@@ -1020,7 +1024,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "full_path", argType = 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
 
@@ -1065,7 +1069,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -1101,7 +1105,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "old_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_uri", argType = 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
 
@@ -1146,7 +1150,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "name", 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
 
@@ -1187,7 +1191,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "group", 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
 
@@ -1228,7 +1232,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -1262,16 +1266,16 @@
 
 -- method BookmarkFile::set_added
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "added", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "added", argType = TBasicType TLong, 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 "g_bookmark_file_set_added" g_bookmark_file_set_added :: 
     Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
     CString ->                              -- uri : TBasicType TUTF8
-    Int64 ->                                -- added : TBasicType TInt64
+    CLong ->                                -- added : TBasicType TLong
     IO ()
 
 
@@ -1279,7 +1283,7 @@
     (MonadIO m) =>
     BookmarkFile                            -- _obj
     -> T.Text                               -- uri
-    -> Int64                                -- added
+    -> CLong                                -- added
     -> m ()                                 -- result
 bookmarkFileSetAdded _obj uri added = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
@@ -1290,14 +1294,14 @@
     return ()
 
 data BookmarkFileSetAddedMethodInfo
-instance (signature ~ (T.Text -> Int64 -> m ()), MonadIO m) => MethodInfo BookmarkFileSetAddedMethodInfo BookmarkFile signature where
+instance (signature ~ (T.Text -> CLong -> m ()), MonadIO m) => MethodInfo BookmarkFileSetAddedMethodInfo BookmarkFile signature where
     overloadedMethod _ = bookmarkFileSetAdded
 
 -- method BookmarkFile::set_app_info
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stamp", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stamp", argType = TBasicType TLong, 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
 
@@ -1306,8 +1310,8 @@
     CString ->                              -- uri : TBasicType TUTF8
     CString ->                              -- name : TBasicType TUTF8
     CString ->                              -- exec : TBasicType TUTF8
-    Int32 ->                                -- count : TBasicType TInt32
-    Int64 ->                                -- stamp : TBasicType TInt64
+    Int32 ->                                -- count : TBasicType TInt
+    CLong ->                                -- stamp : TBasicType TLong
     Ptr (Ptr GError) ->                     -- error
     IO CInt
 
@@ -1319,7 +1323,7 @@
     -> T.Text                               -- name
     -> T.Text                               -- exec
     -> Int32                                -- count
-    -> Int64                                -- stamp
+    -> CLong                                -- stamp
     -> m ()                                 -- result
 bookmarkFileSetAppInfo _obj uri name exec count stamp = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
@@ -1340,14 +1344,14 @@
      )
 
 data BookmarkFileSetAppInfoMethodInfo
-instance (signature ~ (T.Text -> T.Text -> T.Text -> Int32 -> Int64 -> m ()), MonadIO m) => MethodInfo BookmarkFileSetAppInfoMethodInfo BookmarkFile signature where
+instance (signature ~ (T.Text -> T.Text -> T.Text -> Int32 -> CLong -> m ()), MonadIO m) => MethodInfo BookmarkFileSetAppInfoMethodInfo BookmarkFile signature where
     overloadedMethod _ = bookmarkFileSetAppInfo
 
 -- method BookmarkFile::set_description
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1386,7 +1390,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "groups", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, 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 : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1427,7 +1431,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "href", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1470,7 +1474,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "is_private", 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
 
@@ -1504,7 +1508,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "mime_type", 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
 
@@ -1537,16 +1541,16 @@
 
 -- method BookmarkFile::set_modified
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "modified", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "modified", argType = TBasicType TLong, 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 "g_bookmark_file_set_modified" g_bookmark_file_set_modified :: 
     Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
     CString ->                              -- uri : TBasicType TUTF8
-    Int64 ->                                -- modified : TBasicType TInt64
+    CLong ->                                -- modified : TBasicType TLong
     IO ()
 
 
@@ -1554,7 +1558,7 @@
     (MonadIO m) =>
     BookmarkFile                            -- _obj
     -> T.Text                               -- uri
-    -> Int64                                -- modified
+    -> CLong                                -- modified
     -> m ()                                 -- result
 bookmarkFileSetModified _obj uri modified = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
@@ -1565,14 +1569,14 @@
     return ()
 
 data BookmarkFileSetModifiedMethodInfo
-instance (signature ~ (T.Text -> Int64 -> m ()), MonadIO m) => MethodInfo BookmarkFileSetModifiedMethodInfo BookmarkFile signature where
+instance (signature ~ (T.Text -> CLong -> m ()), MonadIO m) => MethodInfo BookmarkFileSetModifiedMethodInfo BookmarkFile signature where
     overloadedMethod _ = bookmarkFileSetModified
 
 -- method BookmarkFile::set_title
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "title", 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
 
@@ -1609,16 +1613,16 @@
 
 -- method BookmarkFile::set_visited
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "visited", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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 = "visited", argType = TBasicType TLong, 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 "g_bookmark_file_set_visited" g_bookmark_file_set_visited :: 
     Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
     CString ->                              -- uri : TBasicType TUTF8
-    Int64 ->                                -- visited : TBasicType TInt64
+    CLong ->                                -- visited : TBasicType TLong
     IO ()
 
 
@@ -1626,7 +1630,7 @@
     (MonadIO m) =>
     BookmarkFile                            -- _obj
     -> T.Text                               -- uri
-    -> Int64                                -- visited
+    -> CLong                                -- visited
     -> m ()                                 -- result
 bookmarkFileSetVisited _obj uri visited = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
@@ -1637,14 +1641,14 @@
     return ()
 
 data BookmarkFileSetVisitedMethodInfo
-instance (signature ~ (T.Text -> Int64 -> m ()), MonadIO m) => MethodInfo BookmarkFileSetVisitedMethodInfo BookmarkFile signature where
+instance (signature ~ (T.Text -> CLong -> m ()), MonadIO m) => MethodInfo BookmarkFileSetVisitedMethodInfo BookmarkFile signature where
     overloadedMethod _ = bookmarkFileSetVisited
 
 -- method BookmarkFile::to_data
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, 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 : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
 
@@ -1683,7 +1687,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -1719,7 +1723,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt32)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/BookmarkFile.hs-boot b/GI/GLib/Structs/BookmarkFile.hs-boot
--- a/GI/GLib/Structs/BookmarkFile.hs-boot
+++ b/GI/GLib/Structs/BookmarkFile.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.BookmarkFile 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/GLib/Structs/ByteArray.hs b/GI/GLib/Structs/ByteArray.hs
--- a/GI/GLib/Structs/ByteArray.hs
+++ b/GI/GLib/Structs/ByteArray.hs
@@ -42,20 +42,24 @@
 
  -- * Properties
 -- ** Data
+    byteArrayData                           ,
     byteArrayReadData                       ,
+    byteArrayWriteData                      ,
 
 
 -- ** Len
+    byteArrayLen                            ,
     byteArrayReadLen                        ,
+    byteArrayWriteLen                       ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -74,24 +78,75 @@
 newZeroByteArray :: MonadIO m => m ByteArray
 newZeroByteArray = liftIO $ callocBoxedBytes 16 >>= wrapBoxed ByteArray
 
+instance tag ~ 'AttrSet => Constructible ByteArray tag where
+    new _ attrs = do
+        o <- newZeroByteArray
+        GI.Attributes.set o attrs
+        return o
+
+
 noByteArray :: Maybe ByteArray
 noByteArray = Nothing
 
-byteArrayReadData :: ByteArray -> IO Word8
-byteArrayReadData s = withManagedPtr s $ \ptr -> do
+byteArrayReadData :: MonadIO m => ByteArray -> m Word8
+byteArrayReadData s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Word8
     return val
 
-byteArrayReadLen :: ByteArray -> IO Word32
-byteArrayReadLen s = withManagedPtr s $ \ptr -> do
+byteArrayWriteData :: MonadIO m => ByteArray -> Word8 -> m ()
+byteArrayWriteData s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Word8)
+
+data ByteArrayDataFieldInfo
+instance AttrInfo ByteArrayDataFieldInfo where
+    type AttrAllowedOps ByteArrayDataFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ByteArrayDataFieldInfo = (~) Word8
+    type AttrBaseTypeConstraint ByteArrayDataFieldInfo = (~) ByteArray
+    type AttrGetType ByteArrayDataFieldInfo = Word8
+    type AttrLabel ByteArrayDataFieldInfo = "data"
+    attrGet _ = byteArrayReadData
+    attrSet _ = byteArrayWriteData
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+byteArrayData :: AttrLabelProxy "data"
+byteArrayData = AttrLabelProxy
+
+
+byteArrayReadLen :: MonadIO m => ByteArray -> m Word32
+byteArrayReadLen s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word32
     return val
 
+byteArrayWriteLen :: MonadIO m => ByteArray -> Word32 -> m ()
+byteArrayWriteLen s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Word32)
+
+data ByteArrayLenFieldInfo
+instance AttrInfo ByteArrayLenFieldInfo where
+    type AttrAllowedOps ByteArrayLenFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ByteArrayLenFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ByteArrayLenFieldInfo = (~) ByteArray
+    type AttrGetType ByteArrayLenFieldInfo = Word32
+    type AttrLabel ByteArrayLenFieldInfo = "len"
+    attrGet _ = byteArrayReadLen
+    attrSet _ = byteArrayWriteLen
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+byteArrayLen :: AttrLabelProxy "len"
+byteArrayLen = AttrLabelProxy
+
+
+
+type instance AttributeList ByteArray = ByteArrayAttributeList
+type ByteArrayAttributeList = ('[ '("data", ByteArrayDataFieldInfo), '("len", ByteArrayLenFieldInfo)] :: [(Symbol, *)])
+
 -- method ByteArray::free
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "free_segment", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt8
+-- returnType : Just (TBasicType TUInt8)
 -- throws : False
 -- Skip return : False
 
@@ -117,7 +172,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Bytes"
+-- returnType : Just (TInterface "GLib" "Bytes")
 -- throws : False
 -- Skip return : False
 
@@ -141,7 +196,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TByteArray
+-- returnType : Just TByteArray
 -- throws : False
 -- Skip return : False
 
@@ -163,7 +218,7 @@
 -- method type : MemberFunction
 -- 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 = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, 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 : TByteArray
+-- returnType : Just TByteArray
 -- throws : False
 -- Skip return : False
 
@@ -190,7 +245,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "array", argType = TByteArray, 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/GLib/Structs/ByteArray.hs-boot b/GI/GLib/Structs/ByteArray.hs-boot
--- a/GI/GLib/Structs/ByteArray.hs-boot
+++ b/GI/GLib/Structs/ByteArray.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.ByteArray 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/GLib/Structs/Bytes.hs b/GI/GLib/Structs/Bytes.hs
--- a/GI/GLib/Structs/Bytes.hs
+++ b/GI/GLib/Structs/Bytes.hs
@@ -102,9 +102,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
@@ -122,11 +122,15 @@
 noBytes :: Maybe Bytes
 noBytes = Nothing
 
+
+type instance AttributeList Bytes = BytesAttributeList
+type BytesAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Bytes::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TInterface "GLib" "Bytes"
+-- returnType : Just (TInterface "GLib" "Bytes")
 -- throws : False
 -- Skip return : False
 
@@ -159,7 +163,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TInterface "GLib" "Bytes"
+-- returnType : Just (TInterface "GLib" "Bytes")
 -- throws : False
 -- Skip return : False
 
@@ -191,7 +195,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes2", argType = TInterface "GLib" "Bytes", 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
 
@@ -222,7 +226,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes2", argType = TInterface "GLib" "Bytes", 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
 
@@ -254,7 +258,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TCArray False (-1) 1 (TBasicType TUInt8)
+-- returnType : Just (TCArray False (-1) 1 (TBasicType TUInt8))
 -- throws : False
 -- Skip return : False
 
@@ -287,7 +291,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", 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
 
@@ -314,7 +318,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", 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
 
@@ -341,7 +345,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", 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 "GLib" "Bytes"
+-- returnType : Just (TInterface "GLib" "Bytes")
 -- throws : False
 -- Skip return : False
 
@@ -374,7 +378,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", 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
 
@@ -403,7 +407,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", 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 +434,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TByteArray
+-- returnType : Just TByteArray
 -- throws : False
 -- Skip return : False
 
@@ -460,29 +464,29 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, 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 "g_bytes_unref_to_data" g_bytes_unref_to_data :: 
     Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
     Word64 ->                               -- size : TBasicType TUInt64
-    IO ()
+    IO (Ptr ())
 
 
 bytesUnrefToData ::
     (MonadIO m) =>
     Bytes                                   -- _obj
     -> Word64                               -- size
-    -> m ()                                 -- result
+    -> m (Ptr ())                           -- result
 bytesUnrefToData _obj size = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_bytes_unref_to_data _obj' size
+    result <- g_bytes_unref_to_data _obj' size
     touchManagedPtr _obj
-    return ()
+    return result
 
 data BytesUnrefToDataMethodInfo
-instance (signature ~ (Word64 -> m ()), MonadIO m) => MethodInfo BytesUnrefToDataMethodInfo Bytes signature where
+instance (signature ~ (Word64 -> m (Ptr ())), MonadIO m) => MethodInfo BytesUnrefToDataMethodInfo Bytes signature where
     overloadedMethod _ = bytesUnrefToData
 
 type family ResolveBytesMethod (t :: Symbol) (o :: *) :: * where
diff --git a/GI/GLib/Structs/Bytes.hs-boot b/GI/GLib/Structs/Bytes.hs-boot
--- a/GI/GLib/Structs/Bytes.hs-boot
+++ b/GI/GLib/Structs/Bytes.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Bytes 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/GLib/Structs/Checksum.hs b/GI/GLib/Structs/Checksum.hs
--- a/GI/GLib/Structs/Checksum.hs
+++ b/GI/GLib/Structs/Checksum.hs
@@ -56,9 +56,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -76,11 +76,15 @@
 noChecksum :: Maybe Checksum
 noChecksum = Nothing
 
+
+type instance AttributeList Checksum = ChecksumAttributeList
+type ChecksumAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Checksum::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Checksum"
+-- returnType : Just (TInterface "GLib" "Checksum")
 -- throws : False
 -- Skip return : False
 
@@ -104,7 +108,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Checksum"
+-- returnType : Just (TInterface "GLib" "Checksum")
 -- throws : False
 -- Skip return : False
 
@@ -133,7 +137,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Checksum", 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
 
@@ -160,7 +164,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Checksum", 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
 
@@ -189,7 +193,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Checksum", 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
 
@@ -216,7 +220,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Checksum", 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -249,7 +253,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", 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
 
diff --git a/GI/GLib/Structs/Checksum.hs-boot b/GI/GLib/Structs/Checksum.hs-boot
--- a/GI/GLib/Structs/Checksum.hs-boot
+++ b/GI/GLib/Structs/Checksum.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Checksum 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/GLib/Structs/Cond.hs b/GI/GLib/Structs/Cond.hs
--- a/GI/GLib/Structs/Cond.hs
+++ b/GI/GLib/Structs/Cond.hs
@@ -116,9 +116,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
@@ -131,14 +131,25 @@
 newZeroCond :: MonadIO m => m Cond
 newZeroCond = liftIO $ callocBytes 16 >>= wrapPtr Cond
 
+instance tag ~ 'AttrSet => Constructible Cond tag where
+    new _ attrs = do
+        o <- newZeroCond
+        GI.Attributes.set o attrs
+        return o
+
+
 noCond :: Maybe Cond
 noCond = Nothing
 
+
+type instance AttributeList Cond = CondAttributeList
+type CondAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Cond::broadcast
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -165,7 +176,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", 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
 
@@ -192,7 +203,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -219,7 +230,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", 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
 
@@ -246,7 +257,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mutex", argType = TInterface "GLib" "Mutex", 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
 
@@ -277,7 +288,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mutex", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_time", 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
 
diff --git a/GI/GLib/Structs/Cond.hs-boot b/GI/GLib/Structs/Cond.hs-boot
--- a/GI/GLib/Structs/Cond.hs-boot
+++ b/GI/GLib/Structs/Cond.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Cond 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/GLib/Structs/Data.hs b/GI/GLib/Structs/Data.hs
--- a/GI/GLib/Structs/Data.hs
+++ b/GI/GLib/Structs/Data.hs
@@ -20,9 +20,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
@@ -33,6 +33,10 @@
 newtype Data = Data (ForeignPtr Data)
 noData :: Maybe Data
 noData = Nothing
+
+
+type instance AttributeList Data = DataAttributeList
+type DataAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveDataMethod (t :: Symbol) (o :: *) :: * where
     ResolveDataMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/Data.hs-boot b/GI/GLib/Structs/Data.hs-boot
--- a/GI/GLib/Structs/Data.hs-boot
+++ b/GI/GLib/Structs/Data.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Data 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/GLib/Structs/Date.hs b/GI/GLib/Structs/Date.hs
--- a/GI/GLib/Structs/Date.hs
+++ b/GI/GLib/Structs/Date.hs
@@ -258,36 +258,48 @@
 
  -- * Properties
 -- ** Day
+    dateDay                                 ,
     dateReadDay                             ,
+    dateWriteDay                            ,
 
 
 -- ** Dmy
+    dateDmy                                 ,
     dateReadDmy                             ,
+    dateWriteDmy                            ,
 
 
 -- ** Julian
+    dateJulian                              ,
     dateReadJulian                          ,
+    dateWriteJulian                         ,
 
 
 -- ** JulianDays
+    dateJulianDays                          ,
     dateReadJulianDays                      ,
+    dateWriteJulianDays                     ,
 
 
 -- ** Month
+    dateMonth                               ,
     dateReadMonth                           ,
+    dateWriteMonth                          ,
 
 
 -- ** 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
@@ -306,44 +318,175 @@
 newZeroDate :: MonadIO m => m Date
 newZeroDate = liftIO $ callocBoxedBytes 24 >>= 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
 
-dateReadJulianDays :: Date -> IO Word32
-dateReadJulianDays s = withManagedPtr s $ \ptr -> do
+dateReadJulianDays :: MonadIO m => Date -> m Word32
+dateReadJulianDays s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Word32
     return val
 
-dateReadJulian :: Date -> IO Word32
-dateReadJulian s = withManagedPtr s $ \ptr -> do
+dateWriteJulianDays :: MonadIO m => Date -> Word32 -> m ()
+dateWriteJulianDays s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Word32)
+
+data DateJulianDaysFieldInfo
+instance AttrInfo DateJulianDaysFieldInfo where
+    type AttrAllowedOps DateJulianDaysFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateJulianDaysFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint DateJulianDaysFieldInfo = (~) Date
+    type AttrGetType DateJulianDaysFieldInfo = Word32
+    type AttrLabel DateJulianDaysFieldInfo = "julian_days"
+    attrGet _ = dateReadJulianDays
+    attrSet _ = dateWriteJulianDays
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateJulianDays :: AttrLabelProxy "julianDays"
+dateJulianDays = AttrLabelProxy
+
+
+dateReadJulian :: MonadIO m => Date -> m Word32
+dateReadJulian s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO Word32
     return val
 
-dateReadDmy :: Date -> IO Word32
-dateReadDmy s = withManagedPtr s $ \ptr -> do
+dateWriteJulian :: MonadIO m => Date -> Word32 -> m ()
+dateWriteJulian s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 4) (val :: Word32)
+
+data DateJulianFieldInfo
+instance AttrInfo DateJulianFieldInfo where
+    type AttrAllowedOps DateJulianFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateJulianFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint DateJulianFieldInfo = (~) Date
+    type AttrGetType DateJulianFieldInfo = Word32
+    type AttrLabel DateJulianFieldInfo = "julian"
+    attrGet _ = dateReadJulian
+    attrSet _ = dateWriteJulian
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateJulian :: AttrLabelProxy "julian"
+dateJulian = AttrLabelProxy
+
+
+dateReadDmy :: MonadIO m => Date -> m Word32
+dateReadDmy s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word32
     return val
 
-dateReadDay :: Date -> IO Word32
-dateReadDay s = withManagedPtr s $ \ptr -> do
+dateWriteDmy :: MonadIO m => Date -> Word32 -> m ()
+dateWriteDmy s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Word32)
+
+data DateDmyFieldInfo
+instance AttrInfo DateDmyFieldInfo where
+    type AttrAllowedOps DateDmyFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateDmyFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint DateDmyFieldInfo = (~) Date
+    type AttrGetType DateDmyFieldInfo = Word32
+    type AttrLabel DateDmyFieldInfo = "dmy"
+    attrGet _ = dateReadDmy
+    attrSet _ = dateWriteDmy
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateDmy :: AttrLabelProxy "dmy"
+dateDmy = AttrLabelProxy
+
+
+dateReadDay :: MonadIO m => Date -> m Word32
+dateReadDay s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 12) :: IO Word32
     return val
 
-dateReadMonth :: Date -> IO Word32
-dateReadMonth s = withManagedPtr s $ \ptr -> do
+dateWriteDay :: MonadIO m => Date -> Word32 -> m ()
+dateWriteDay s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 12) (val :: Word32)
+
+data DateDayFieldInfo
+instance AttrInfo DateDayFieldInfo where
+    type AttrAllowedOps DateDayFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateDayFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint DateDayFieldInfo = (~) Date
+    type AttrGetType DateDayFieldInfo = Word32
+    type AttrLabel DateDayFieldInfo = "day"
+    attrGet _ = dateReadDay
+    attrSet _ = dateWriteDay
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateDay :: AttrLabelProxy "day"
+dateDay = AttrLabelProxy
+
+
+dateReadMonth :: MonadIO m => Date -> m Word32
+dateReadMonth s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO Word32
     return val
 
-dateReadYear :: Date -> IO Word32
-dateReadYear s = withManagedPtr s $ \ptr -> do
+dateWriteMonth :: MonadIO m => Date -> Word32 -> m ()
+dateWriteMonth s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Word32)
+
+data DateMonthFieldInfo
+instance AttrInfo DateMonthFieldInfo where
+    type AttrAllowedOps DateMonthFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateMonthFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint DateMonthFieldInfo = (~) Date
+    type AttrGetType DateMonthFieldInfo = Word32
+    type AttrLabel DateMonthFieldInfo = "month"
+    attrGet _ = dateReadMonth
+    attrSet _ = dateWriteMonth
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateMonth :: AttrLabelProxy "month"
+dateMonth = AttrLabelProxy
+
+
+dateReadYear :: MonadIO m => Date -> m Word32
+dateReadYear s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 20) :: IO Word32
     return val
 
+dateWriteYear :: MonadIO m => Date -> Word32 -> m ()
+dateWriteYear s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 20) (val :: Word32)
+
+data DateYearFieldInfo
+instance AttrInfo DateYearFieldInfo where
+    type AttrAllowedOps DateYearFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DateYearFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint DateYearFieldInfo = (~) Date
+    type AttrGetType DateYearFieldInfo = Word32
+    type AttrLabel DateYearFieldInfo = "year"
+    attrGet _ = dateReadYear
+    attrSet _ = dateWriteYear
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+dateYear :: AttrLabelProxy "year"
+dateYear = AttrLabelProxy
+
+
+
+type instance AttributeList Date = DateAttributeList
+type DateAttributeList = ('[ '("julianDays", DateJulianDaysFieldInfo), '("julian", DateJulianFieldInfo), '("dmy", DateDmyFieldInfo), '("day", DateDayFieldInfo), '("month", DateMonthFieldInfo), '("year", DateYearFieldInfo)] :: [(Symbol, *)])
+
 -- method Date::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "Date"
+-- returnType : Just (TInterface "GLib" "Date")
 -- throws : False
 -- Skip return : False
 
@@ -364,7 +507,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Date"
+-- returnType : Just (TInterface "GLib" "Date")
 -- throws : False
 -- Skip return : False
 
@@ -392,7 +535,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "julian_day", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Date"
+-- returnType : Just (TInterface "GLib" "Date")
 -- throws : False
 -- Skip return : False
 
@@ -413,15 +556,15 @@
 
 -- method Date::add_days
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_days", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_days", 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 "g_date_add_days" g_date_add_days :: 
     Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
-    Word32 ->                               -- n_days : TBasicType TUInt32
+    Word32 ->                               -- n_days : TBasicType TUInt
     IO ()
 
 
@@ -442,15 +585,15 @@
 
 -- method Date::add_months
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_months", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_months", 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 "g_date_add_months" g_date_add_months :: 
     Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
-    Word32 ->                               -- n_months : TBasicType TUInt32
+    Word32 ->                               -- n_months : TBasicType TUInt
     IO ()
 
 
@@ -471,15 +614,15 @@
 
 -- method Date::add_years
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_years", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_years", 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 "g_date_add_years" g_date_add_years :: 
     Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
-    Word32 ->                               -- n_years : TBasicType TUInt32
+    Word32 ->                               -- n_years : TBasicType TUInt
     IO ()
 
 
@@ -502,7 +645,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min_date", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_date", argType = TInterface "GLib" "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
 
@@ -535,15 +678,15 @@
 
 -- method Date::clear
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_dates", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_dates", 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 "g_date_clear" g_date_clear :: 
     Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
-    Word32 ->                               -- n_dates : TBasicType TUInt32
+    Word32 ->                               -- n_dates : TBasicType TUInt
     IO ()
 
 
@@ -566,7 +709,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rhs", argType = TInterface "GLib" "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
 
@@ -597,7 +740,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "date2", argType = TInterface "GLib" "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
 
@@ -628,7 +771,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "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
 
@@ -655,7 +798,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt8
+-- returnType : Just (TBasicType TUInt8)
 -- throws : False
 -- Skip return : False
 
@@ -682,7 +825,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", 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
 
@@ -709,7 +852,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", 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
 
@@ -736,7 +879,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt32)
 -- throws : False
 -- Skip return : False
 
@@ -763,7 +906,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", 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
 
@@ -790,7 +933,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateMonth"
+-- returnType : Just (TInterface "GLib" "DateMonth")
 -- throws : False
 -- Skip return : False
 
@@ -818,7 +961,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", 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
 
@@ -845,7 +988,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateWeekday"
+-- returnType : Just (TInterface "GLib" "DateWeekday")
 -- throws : False
 -- Skip return : False
 
@@ -873,7 +1016,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", 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
 
@@ -900,7 +1043,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "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
 
@@ -928,7 +1071,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "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
 
@@ -956,7 +1099,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "date2", argType = TInterface "GLib" "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
 
@@ -987,7 +1130,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TUInt8, 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
 
@@ -1016,7 +1159,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TUInt16, 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
 
@@ -1050,7 +1193,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "julian_date", argType = TBasicType TUInt32, 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
 
@@ -1079,7 +1222,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", 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
 
@@ -1109,7 +1252,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", 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
 
@@ -1140,7 +1283,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TInt32, 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
 
@@ -1153,11 +1296,11 @@
 dateSetTime ::
     (MonadIO m) =>
     Date                                    -- _obj
-    -> Int32                                -- time
+    -> Int32                                -- time_
     -> m ()                                 -- result
-dateSetTime _obj time = liftIO $ do
+dateSetTime _obj time_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_date_set_time _obj' time
+    g_date_set_time _obj' time_
     touchManagedPtr _obj
     return ()
 
@@ -1167,22 +1310,22 @@
 
 -- method Date::set_time_t
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timet", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timet", argType = TBasicType TLong, 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 "g_date_set_time_t" g_date_set_time_t :: 
     Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
-    Int64 ->                                -- timet : TBasicType TInt64
+    CLong ->                                -- timet : TBasicType TLong
     IO ()
 
 
 dateSetTimeT ::
     (MonadIO m) =>
     Date                                    -- _obj
-    -> Int64                                -- timet
+    -> CLong                                -- timet
     -> m ()                                 -- result
 dateSetTimeT _obj timet = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
@@ -1191,14 +1334,14 @@
     return ()
 
 data DateSetTimeTMethodInfo
-instance (signature ~ (Int64 -> m ()), MonadIO m) => MethodInfo DateSetTimeTMethodInfo Date signature where
+instance (signature ~ (CLong -> m ()), MonadIO m) => MethodInfo DateSetTimeTMethodInfo Date signature where
     overloadedMethod _ = dateSetTimeT
 
 -- method Date::set_time_val
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeval", argType = TInterface "GLib" "TimeVal", 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
 
@@ -1229,7 +1372,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TUInt16, 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
 
@@ -1256,15 +1399,15 @@
 
 -- method Date::subtract_days
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_days", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_days", 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 "g_date_subtract_days" g_date_subtract_days :: 
     Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
-    Word32 ->                               -- n_days : TBasicType TUInt32
+    Word32 ->                               -- n_days : TBasicType TUInt
     IO ()
 
 
@@ -1285,15 +1428,15 @@
 
 -- method Date::subtract_months
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_months", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_months", 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 "g_date_subtract_months" g_date_subtract_months :: 
     Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
-    Word32 ->                               -- n_months : TBasicType TUInt32
+    Word32 ->                               -- n_months : TBasicType TUInt
     IO ()
 
 
@@ -1314,15 +1457,15 @@
 
 -- method Date::subtract_years
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_years", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_years", 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 "g_date_subtract_years" g_date_subtract_years :: 
     Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
-    Word32 ->                               -- n_years : TBasicType TUInt32
+    Word32 ->                               -- n_years : TBasicType TUInt
     IO ()
 
 
@@ -1343,15 +1486,15 @@
 
 -- method Date::to_struct_tm
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tm", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tm", 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 "g_date_to_struct_tm" g_date_to_struct_tm :: 
     Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
-    Ptr () ->                               -- tm : TBasicType TVoid
+    Ptr () ->                               -- tm : TBasicType TPtr
     IO ()
 
 
@@ -1374,7 +1517,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "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
 
@@ -1402,7 +1545,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt8
+-- returnType : Just (TBasicType TUInt8)
 -- throws : False
 -- Skip return : False
 
@@ -1426,7 +1569,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt8
+-- returnType : Just (TBasicType TUInt8)
 -- throws : False
 -- Skip return : False
 
@@ -1447,7 +1590,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt8
+-- returnType : Just (TBasicType TUInt8)
 -- throws : False
 -- Skip return : False
 
@@ -1468,7 +1611,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "year", argType = TBasicType TUInt16, 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
 
@@ -1490,7 +1633,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "s", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "slen", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "date", argType = TInterface "GLib" "Date", 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
 
@@ -1523,7 +1666,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "day", argType = TBasicType TUInt8, 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
 
@@ -1545,7 +1688,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TUInt16, 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
 
@@ -1572,7 +1715,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "julian_date", argType = TBasicType TUInt32, 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
 
@@ -1594,7 +1737,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", 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
 
@@ -1617,7 +1760,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "weekday", argType = TInterface "GLib" "DateWeekday", 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
 
@@ -1640,7 +1783,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "year", argType = TBasicType TUInt16, 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/GLib/Structs/Date.hs-boot b/GI/GLib/Structs/Date.hs-boot
--- a/GI/GLib/Structs/Date.hs-boot
+++ b/GI/GLib/Structs/Date.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.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/GLib/Structs/DateTime.hs b/GI/GLib/Structs/DateTime.hs
--- a/GI/GLib/Structs/DateTime.hs
+++ b/GI/GLib/Structs/DateTime.hs
@@ -244,9 +244,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
@@ -264,21 +264,25 @@
 noDateTime :: Maybe DateTime
 noDateTime = Nothing
 
+
+type instance AttributeList DateTime = DateTimeAttributeList
+type DateTimeAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method DateTime::new
 -- method type : Constructor
--- Args : [Arg {argCName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},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 = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},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 = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_new" g_date_time_new :: 
     Ptr TimeZone ->                         -- tz : TInterface "GLib" "TimeZone"
-    Int32 ->                                -- year : TBasicType TInt32
-    Int32 ->                                -- month : TBasicType TInt32
-    Int32 ->                                -- day : TBasicType TInt32
-    Int32 ->                                -- hour : TBasicType TInt32
-    Int32 ->                                -- minute : TBasicType TInt32
+    Int32 ->                                -- year : TBasicType TInt
+    Int32 ->                                -- month : TBasicType TInt
+    Int32 ->                                -- day : TBasicType TInt
+    Int32 ->                                -- hour : TBasicType TInt
+    Int32 ->                                -- minute : TBasicType TInt
     CDouble ->                              -- seconds : TBasicType TDouble
     IO (Ptr DateTime)
 
@@ -306,7 +310,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -331,7 +335,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -356,7 +360,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "t", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -379,7 +383,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "t", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -400,18 +404,18 @@
 
 -- method DateTime::new_local
 -- 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 = "seconds", argType = TBasicType TDouble, 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 = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_new_local" g_date_time_new_local :: 
-    Int32 ->                                -- year : TBasicType TInt32
-    Int32 ->                                -- month : TBasicType TInt32
-    Int32 ->                                -- day : TBasicType TInt32
-    Int32 ->                                -- hour : TBasicType TInt32
-    Int32 ->                                -- minute : TBasicType TInt32
+    Int32 ->                                -- year : TBasicType TInt
+    Int32 ->                                -- month : TBasicType TInt
+    Int32 ->                                -- day : TBasicType TInt
+    Int32 ->                                -- hour : TBasicType TInt
+    Int32 ->                                -- minute : TBasicType TInt
     CDouble ->                              -- seconds : TBasicType TDouble
     IO (Ptr DateTime)
 
@@ -436,7 +440,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -461,7 +465,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -482,7 +486,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -501,18 +505,18 @@
 
 -- method DateTime::new_utc
 -- 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 = "seconds", argType = TBasicType TDouble, 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 = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_new_utc" g_date_time_new_utc :: 
-    Int32 ->                                -- year : TBasicType TInt32
-    Int32 ->                                -- month : TBasicType TInt32
-    Int32 ->                                -- day : TBasicType TInt32
-    Int32 ->                                -- hour : TBasicType TInt32
-    Int32 ->                                -- minute : TBasicType TInt32
+    Int32 ->                                -- year : TBasicType TInt
+    Int32 ->                                -- month : TBasicType TInt
+    Int32 ->                                -- day : TBasicType TInt
+    Int32 ->                                -- hour : TBasicType TInt
+    Int32 ->                                -- minute : TBasicType TInt
     CDouble ->                              -- seconds : TBasicType TDouble
     IO (Ptr DateTime)
 
@@ -537,7 +541,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timespan", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -566,15 +570,15 @@
 
 -- method DateTime::add_days
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "days", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "days", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_add_days" g_date_time_add_days :: 
     Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
-    Int32 ->                                -- days : TBasicType TInt32
+    Int32 ->                                -- days : TBasicType TInt
     IO (Ptr DateTime)
 
 
@@ -597,19 +601,19 @@
 
 -- method DateTime::add_full
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "years", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "months", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "days", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hours", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "years", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "months", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "days", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hours", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_add_full" g_date_time_add_full :: 
     Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
-    Int32 ->                                -- years : TBasicType TInt32
-    Int32 ->                                -- months : TBasicType TInt32
-    Int32 ->                                -- days : TBasicType TInt32
-    Int32 ->                                -- hours : TBasicType TInt32
-    Int32 ->                                -- minutes : TBasicType TInt32
+    Int32 ->                                -- years : TBasicType TInt
+    Int32 ->                                -- months : TBasicType TInt
+    Int32 ->                                -- days : TBasicType TInt
+    Int32 ->                                -- hours : TBasicType TInt
+    Int32 ->                                -- minutes : TBasicType TInt
     CDouble ->                              -- seconds : TBasicType TDouble
     IO (Ptr DateTime)
 
@@ -639,15 +643,15 @@
 
 -- method DateTime::add_hours
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hours", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hours", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_add_hours" g_date_time_add_hours :: 
     Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
-    Int32 ->                                -- hours : TBasicType TInt32
+    Int32 ->                                -- hours : TBasicType TInt
     IO (Ptr DateTime)
 
 
@@ -670,15 +674,15 @@
 
 -- method DateTime::add_minutes
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_add_minutes" g_date_time_add_minutes :: 
     Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
-    Int32 ->                                -- minutes : TBasicType TInt32
+    Int32 ->                                -- minutes : TBasicType TInt
     IO (Ptr DateTime)
 
 
@@ -701,15 +705,15 @@
 
 -- method DateTime::add_months
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "months", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "months", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_add_months" g_date_time_add_months :: 
     Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
-    Int32 ->                                -- months : TBasicType TInt32
+    Int32 ->                                -- months : TBasicType TInt
     IO (Ptr DateTime)
 
 
@@ -734,7 +738,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -764,15 +768,15 @@
 
 -- method DateTime::add_weeks
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "weeks", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "weeks", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_add_weeks" g_date_time_add_weeks :: 
     Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
-    Int32 ->                                -- weeks : TBasicType TInt32
+    Int32 ->                                -- weeks : TBasicType TInt
     IO (Ptr DateTime)
 
 
@@ -795,15 +799,15 @@
 
 -- method DateTime::add_years
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "years", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "years", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_add_years" g_date_time_add_years :: 
     Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
-    Int32 ->                                -- years : TBasicType TInt32
+    Int32 ->                                -- years : TBasicType TInt
     IO (Ptr DateTime)
 
 
@@ -828,7 +832,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "begin", argType = TInterface "GLib" "DateTime", 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
 
@@ -859,7 +863,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", 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
 
@@ -893,7 +897,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -920,7 +924,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -947,7 +951,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -974,7 +978,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1001,7 +1005,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1028,7 +1032,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1055,7 +1059,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1082,7 +1086,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1109,7 +1113,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TDouble
+-- returnType : Just (TBasicType TDouble)
 -- throws : False
 -- Skip return : False
 
@@ -1137,7 +1141,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1166,7 +1170,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1193,7 +1197,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1220,7 +1224,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1247,7 +1251,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1272,17 +1276,17 @@
 
 -- method DateTime::get_ymd
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "month", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "day", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "month", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "day", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_get_ymd" g_date_time_get_ymd :: 
     Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
-    Ptr Int32 ->                            -- year : TBasicType TInt32
-    Ptr Int32 ->                            -- month : TBasicType TInt32
-    Ptr Int32 ->                            -- day : TBasicType TInt32
+    Ptr Int32 ->                            -- year : TBasicType TInt
+    Ptr Int32 ->                            -- month : TBasicType TInt
+    Ptr Int32 ->                            -- day : TBasicType TInt
     IO ()
 
 
@@ -1313,7 +1317,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1341,7 +1345,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -1370,7 +1374,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -1399,7 +1403,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tv", argType = TInterface "GLib" "TimeVal", 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
 
@@ -1431,7 +1435,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -1464,7 +1468,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1491,7 +1495,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "DateTime"
+-- returnType : Just (TInterface "GLib" "DateTime")
 -- throws : False
 -- Skip return : False
 
@@ -1520,7 +1524,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", 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
 
@@ -1545,15 +1549,15 @@
 
 -- method DateTime::compare
 -- method type : MemberFunction
--- Args : [Arg {argCName = "dt1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dt2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "dt1", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dt2", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_date_time_compare" g_date_time_compare :: 
-    Ptr () ->                               -- dt1 : TBasicType TVoid
-    Ptr () ->                               -- dt2 : TBasicType TVoid
+    Ptr () ->                               -- dt1 : TBasicType TPtr
+    Ptr () ->                               -- dt2 : TBasicType TPtr
     IO Int32
 
 
@@ -1568,15 +1572,15 @@
 
 -- method DateTime::equal
 -- method type : MemberFunction
--- Args : [Arg {argCName = "dt1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dt2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "dt1", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dt2", 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 "g_date_time_equal" g_date_time_equal :: 
-    Ptr () ->                               -- dt1 : TBasicType TVoid
-    Ptr () ->                               -- dt2 : TBasicType TVoid
+    Ptr () ->                               -- dt1 : TBasicType TPtr
+    Ptr () ->                               -- dt2 : TBasicType TPtr
     IO CInt
 
 
@@ -1592,14 +1596,14 @@
 
 -- method DateTime::hash
 -- method type : MemberFunction
--- Args : [Arg {argCName = "datetime", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "datetime", 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 "g_date_time_hash" g_date_time_hash :: 
-    Ptr () ->                               -- datetime : TBasicType TVoid
+    Ptr () ->                               -- datetime : TBasicType TPtr
     IO Word32
 
 
diff --git a/GI/GLib/Structs/DateTime.hs-boot b/GI/GLib/Structs/DateTime.hs-boot
--- a/GI/GLib/Structs/DateTime.hs-boot
+++ b/GI/GLib/Structs/DateTime.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.DateTime 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/GLib/Structs/DebugKey.hs b/GI/GLib/Structs/DebugKey.hs
--- a/GI/GLib/Structs/DebugKey.hs
+++ b/GI/GLib/Structs/DebugKey.hs
@@ -20,20 +20,25 @@
 
  -- * Properties
 -- ** Key
+    debugKeyClearKey                        ,
+    debugKeyKey                             ,
     debugKeyReadKey                         ,
+    debugKeyWriteKey                        ,
 
 
 -- ** Value
     debugKeyReadValue                       ,
+    debugKeyValue                           ,
+    debugKeyWriteValue                      ,
 
 
 
 
     ) 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
@@ -46,19 +51,76 @@
 newZeroDebugKey :: MonadIO m => m DebugKey
 newZeroDebugKey = liftIO $ callocBytes 16 >>= wrapPtr DebugKey
 
+instance tag ~ 'AttrSet => Constructible DebugKey tag where
+    new _ attrs = do
+        o <- newZeroDebugKey
+        GI.Attributes.set o attrs
+        return o
+
+
 noDebugKey :: Maybe DebugKey
 noDebugKey = Nothing
 
-debugKeyReadKey :: DebugKey -> IO T.Text
-debugKeyReadKey s = withManagedPtr s $ \ptr -> do
+debugKeyReadKey :: MonadIO m => DebugKey -> m (Maybe T.Text)
+debugKeyReadKey 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
 
-debugKeyReadValue :: DebugKey -> IO Word32
-debugKeyReadValue s = withManagedPtr s $ \ptr -> do
+debugKeyWriteKey :: MonadIO m => DebugKey -> CString -> m ()
+debugKeyWriteKey s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+debugKeyClearKey :: MonadIO m => DebugKey -> m ()
+debugKeyClearKey s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data DebugKeyKeyFieldInfo
+instance AttrInfo DebugKeyKeyFieldInfo where
+    type AttrAllowedOps DebugKeyKeyFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint DebugKeyKeyFieldInfo = (~) CString
+    type AttrBaseTypeConstraint DebugKeyKeyFieldInfo = (~) DebugKey
+    type AttrGetType DebugKeyKeyFieldInfo = Maybe T.Text
+    type AttrLabel DebugKeyKeyFieldInfo = "key"
+    attrGet _ = debugKeyReadKey
+    attrSet _ = debugKeyWriteKey
+    attrConstruct = undefined
+    attrClear _ = debugKeyClearKey
+
+debugKeyKey :: AttrLabelProxy "key"
+debugKeyKey = AttrLabelProxy
+
+
+debugKeyReadValue :: MonadIO m => DebugKey -> m Word32
+debugKeyReadValue s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word32
     return val
+
+debugKeyWriteValue :: MonadIO m => DebugKey -> Word32 -> m ()
+debugKeyWriteValue s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Word32)
+
+data DebugKeyValueFieldInfo
+instance AttrInfo DebugKeyValueFieldInfo where
+    type AttrAllowedOps DebugKeyValueFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DebugKeyValueFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint DebugKeyValueFieldInfo = (~) DebugKey
+    type AttrGetType DebugKeyValueFieldInfo = Word32
+    type AttrLabel DebugKeyValueFieldInfo = "value"
+    attrGet _ = debugKeyReadValue
+    attrSet _ = debugKeyWriteValue
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+debugKeyValue :: AttrLabelProxy "value"
+debugKeyValue = AttrLabelProxy
+
+
+
+type instance AttributeList DebugKey = DebugKeyAttributeList
+type DebugKeyAttributeList = ('[ '("key", DebugKeyKeyFieldInfo), '("value", DebugKeyValueFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveDebugKeyMethod (t :: Symbol) (o :: *) :: * where
     ResolveDebugKeyMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/DebugKey.hs-boot b/GI/GLib/Structs/DebugKey.hs-boot
--- a/GI/GLib/Structs/DebugKey.hs-boot
+++ b/GI/GLib/Structs/DebugKey.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.DebugKey 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/GLib/Structs/Dir.hs b/GI/GLib/Structs/Dir.hs
--- a/GI/GLib/Structs/Dir.hs
+++ b/GI/GLib/Structs/Dir.hs
@@ -40,9 +40,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -54,11 +54,15 @@
 noDir :: Maybe Dir
 noDir = Nothing
 
+
+type instance AttributeList Dir = DirAttributeList
+type DirAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Dir::close
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Dir", 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
 
@@ -85,7 +89,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Dir", 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
 
@@ -114,7 +118,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Dir", 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
 
@@ -141,7 +145,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TFileName
+-- returnType : Just (TBasicType TFileName)
 -- throws : True
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/Dir.hs-boot b/GI/GLib/Structs/Dir.hs-boot
--- a/GI/GLib/Structs/Dir.hs-boot
+++ b/GI/GLib/Structs/Dir.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Dir 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/GLib/Structs/HashTableIter.hs b/GI/GLib/Structs/HashTableIter.hs
--- a/GI/GLib/Structs/HashTableIter.hs
+++ b/GI/GLib/Structs/HashTableIter.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
@@ -65,20 +65,31 @@
 newZeroHashTableIter :: MonadIO m => m HashTableIter
 newZeroHashTableIter = liftIO $ callocBytes 40 >>= wrapPtr HashTableIter
 
+instance tag ~ 'AttrSet => Constructible HashTableIter tag where
+    new _ attrs = do
+        o <- newZeroHashTableIter
+        GI.Attributes.set o attrs
+        return o
+
+
 noHashTableIter :: Maybe HashTableIter
 noHashTableIter = Nothing
 
+
+type instance AttributeList HashTableIter = HashTableIterAttributeList
+type HashTableIterAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method HashTableIter::init
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hash_table", 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 "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hash_table", 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 "g_hash_table_iter_init" g_hash_table_iter_init :: 
     Ptr HashTableIter ->                    -- _obj : TInterface "GLib" "HashTableIter"
-    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TPtr) (TBasicType TPtr)
     IO ()
 
 
@@ -104,49 +115,41 @@
 
 -- method HashTableIter::next
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TPtr, 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
 
 foreign import ccall "g_hash_table_iter_next" g_hash_table_iter_next :: 
     Ptr HashTableIter ->                    -- _obj : TInterface "GLib" "HashTableIter"
-    Ptr () ->                               -- key : TBasicType TVoid
-    Ptr () ->                               -- value : TBasicType TVoid
+    Ptr () ->                               -- key : TBasicType TPtr
+    Ptr () ->                               -- value : TBasicType TPtr
     IO CInt
 
 
 hashTableIterNext ::
     (MonadIO m) =>
     HashTableIter                           -- _obj
-    -> Maybe (Ptr ())                       -- key
-    -> Maybe (Ptr ())                       -- value
+    -> Ptr ()                               -- key
+    -> Ptr ()                               -- value
     -> m Bool                               -- result
 hashTableIterNext _obj key value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    maybeKey <- case key of
-        Nothing -> return nullPtr
-        Just jKey -> do
-            return jKey
-    maybeValue <- case value of
-        Nothing -> return nullPtr
-        Just jValue -> do
-            return jValue
-    result <- g_hash_table_iter_next _obj' maybeKey maybeValue
+    result <- g_hash_table_iter_next _obj' key value
     let result' = (/= 0) result
     touchManagedPtr _obj
     return result'
 
 data HashTableIterNextMethodInfo
-instance (signature ~ (Maybe (Ptr ()) -> Maybe (Ptr ()) -> m Bool), MonadIO m) => MethodInfo HashTableIterNextMethodInfo HashTableIter signature where
+instance (signature ~ (Ptr () -> Ptr () -> m Bool), MonadIO m) => MethodInfo HashTableIterNextMethodInfo HashTableIter signature where
     overloadedMethod _ = hashTableIterNext
 
 -- method HashTableIter::remove
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", 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
 
@@ -171,15 +174,15 @@
 
 -- method HashTableIter::replace
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", 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 "g_hash_table_iter_replace" g_hash_table_iter_replace :: 
     Ptr HashTableIter ->                    -- _obj : TInterface "GLib" "HashTableIter"
-    Ptr () ->                               -- value : TBasicType TVoid
+    Ptr () ->                               -- value : TBasicType TPtr
     IO ()
 
 
@@ -202,7 +205,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", 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/GLib/Structs/HashTableIter.hs-boot b/GI/GLib/Structs/HashTableIter.hs-boot
--- a/GI/GLib/Structs/HashTableIter.hs-boot
+++ b/GI/GLib/Structs/HashTableIter.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.HashTableIter 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/GLib/Structs/Hmac.hs b/GI/GLib/Structs/Hmac.hs
--- a/GI/GLib/Structs/Hmac.hs
+++ b/GI/GLib/Structs/Hmac.hs
@@ -43,9 +43,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
@@ -57,11 +57,15 @@
 noHmac :: Maybe Hmac
 noHmac = Nothing
 
+
+type instance AttributeList Hmac = HmacAttributeList
+type HmacAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Hmac::get_digest
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "digest_len", argType = TBasicType TUInt64, 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
 
@@ -92,7 +96,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -121,7 +125,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Hmac", 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
 
@@ -148,7 +152,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Hmac", 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 TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/Hmac.hs-boot b/GI/GLib/Structs/Hmac.hs-boot
--- a/GI/GLib/Structs/Hmac.hs-boot
+++ b/GI/GLib/Structs/Hmac.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Hmac 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/GLib/Structs/Hook.hs b/GI/GLib/Structs/Hook.hs
--- a/GI/GLib/Structs/Hook.hs
+++ b/GI/GLib/Structs/Hook.hs
@@ -51,40 +51,58 @@
 
  -- * Properties
 -- ** Data
+    hookClearData                           ,
+    hookData                                ,
     hookReadData                            ,
+    hookWriteData                           ,
 
 
 -- ** Flags
+    hookFlags                               ,
     hookReadFlags                           ,
+    hookWriteFlags                          ,
 
 
 -- ** Func
+    hookClearFunc                           ,
+    hookFunc                                ,
     hookReadFunc                            ,
+    hookWriteFunc                           ,
 
 
 -- ** HookId
+    hookHookId                              ,
     hookReadHookId                          ,
+    hookWriteHookId                         ,
 
 
 -- ** Next
+    hookClearNext                           ,
+    hookNext                                ,
     hookReadNext                            ,
+    hookWriteNext                           ,
 
 
 -- ** Prev
+    hookClearPrev                           ,
+    hookPrev                                ,
     hookReadPrev                            ,
+    hookWritePrev                           ,
 
 
 -- ** RefCount
     hookReadRefCount                        ,
+    hookRefCount                            ,
+    hookWriteRefCount                       ,
 
 
 
 
     ) 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,53 +115,223 @@
 newZeroHook :: MonadIO m => m Hook
 newZeroHook = liftIO $ callocBytes 64 >>= wrapPtr Hook
 
+instance tag ~ 'AttrSet => Constructible Hook tag where
+    new _ attrs = do
+        o <- newZeroHook
+        GI.Attributes.set o attrs
+        return o
+
+
 noHook :: Maybe Hook
 noHook = Nothing
 
-hookReadData :: Hook -> IO (Ptr ())
-hookReadData s = withManagedPtr s $ \ptr -> do
+hookReadData :: MonadIO m => Hook -> m (Ptr ())
+hookReadData s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
     return val
 
-hookReadNext :: Hook -> IO Hook
-hookReadNext s = withManagedPtr s $ \ptr -> do
+hookWriteData :: MonadIO m => Hook -> Ptr () -> m ()
+hookWriteData s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ())
+
+hookClearData :: MonadIO m => Hook -> m ()
+hookClearData s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ())
+
+data HookDataFieldInfo
+instance AttrInfo HookDataFieldInfo where
+    type AttrAllowedOps HookDataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint HookDataFieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint HookDataFieldInfo = (~) Hook
+    type AttrGetType HookDataFieldInfo = Ptr ()
+    type AttrLabel HookDataFieldInfo = "data"
+    attrGet _ = hookReadData
+    attrSet _ = hookWriteData
+    attrConstruct = undefined
+    attrClear _ = hookClearData
+
+hookData :: AttrLabelProxy "data"
+hookData = AttrLabelProxy
+
+
+hookReadNext :: MonadIO m => Hook -> m (Maybe Hook)
+hookReadNext s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO (Ptr Hook)
-    val' <- (newPtr 64 Hook) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 64 Hook) val'
+        return val''
+    return result
 
-hookReadPrev :: Hook -> IO Hook
-hookReadPrev s = withManagedPtr s $ \ptr -> do
+hookWriteNext :: MonadIO m => Hook -> Ptr Hook -> m ()
+hookWriteNext s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Ptr Hook)
+
+hookClearNext :: MonadIO m => Hook -> m ()
+hookClearNext s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: Ptr Hook)
+
+data HookNextFieldInfo
+instance AttrInfo HookNextFieldInfo where
+    type AttrAllowedOps HookNextFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint HookNextFieldInfo = (~) (Ptr Hook)
+    type AttrBaseTypeConstraint HookNextFieldInfo = (~) Hook
+    type AttrGetType HookNextFieldInfo = Maybe Hook
+    type AttrLabel HookNextFieldInfo = "next"
+    attrGet _ = hookReadNext
+    attrSet _ = hookWriteNext
+    attrConstruct = undefined
+    attrClear _ = hookClearNext
+
+hookNext :: AttrLabelProxy "next"
+hookNext = AttrLabelProxy
+
+
+hookReadPrev :: MonadIO m => Hook -> m (Maybe Hook)
+hookReadPrev s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO (Ptr Hook)
-    val' <- (newPtr 64 Hook) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 64 Hook) val'
+        return val''
+    return result
 
-hookReadRefCount :: Hook -> IO Word32
-hookReadRefCount s = withManagedPtr s $ \ptr -> do
+hookWritePrev :: MonadIO m => Hook -> Ptr Hook -> m ()
+hookWritePrev s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Ptr Hook)
+
+hookClearPrev :: MonadIO m => Hook -> m ()
+hookClearPrev s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: Ptr Hook)
+
+data HookPrevFieldInfo
+instance AttrInfo HookPrevFieldInfo where
+    type AttrAllowedOps HookPrevFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint HookPrevFieldInfo = (~) (Ptr Hook)
+    type AttrBaseTypeConstraint HookPrevFieldInfo = (~) Hook
+    type AttrGetType HookPrevFieldInfo = Maybe Hook
+    type AttrLabel HookPrevFieldInfo = "prev"
+    attrGet _ = hookReadPrev
+    attrSet _ = hookWritePrev
+    attrConstruct = undefined
+    attrClear _ = hookClearPrev
+
+hookPrev :: AttrLabelProxy "prev"
+hookPrev = AttrLabelProxy
+
+
+hookReadRefCount :: MonadIO m => Hook -> m Word32
+hookReadRefCount s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO Word32
     return val
 
-hookReadHookId :: Hook -> IO Word64
-hookReadHookId s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO Word64
+hookWriteRefCount :: MonadIO m => Hook -> Word32 -> m ()
+hookWriteRefCount s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: Word32)
+
+data HookRefCountFieldInfo
+instance AttrInfo HookRefCountFieldInfo where
+    type AttrAllowedOps HookRefCountFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint HookRefCountFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint HookRefCountFieldInfo = (~) Hook
+    type AttrGetType HookRefCountFieldInfo = Word32
+    type AttrLabel HookRefCountFieldInfo = "ref_count"
+    attrGet _ = hookReadRefCount
+    attrSet _ = hookWriteRefCount
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+hookRefCount :: AttrLabelProxy "refCount"
+hookRefCount = AttrLabelProxy
+
+
+hookReadHookId :: MonadIO m => Hook -> m CULong
+hookReadHookId s = liftIO $ withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO CULong
     return val
 
-hookReadFlags :: Hook -> IO Word32
-hookReadFlags s = withManagedPtr s $ \ptr -> do
+hookWriteHookId :: MonadIO m => Hook -> CULong -> m ()
+hookWriteHookId s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: CULong)
+
+data HookHookIdFieldInfo
+instance AttrInfo HookHookIdFieldInfo where
+    type AttrAllowedOps HookHookIdFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint HookHookIdFieldInfo = (~) CULong
+    type AttrBaseTypeConstraint HookHookIdFieldInfo = (~) Hook
+    type AttrGetType HookHookIdFieldInfo = CULong
+    type AttrLabel HookHookIdFieldInfo = "hook_id"
+    attrGet _ = hookReadHookId
+    attrSet _ = hookWriteHookId
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+hookHookId :: AttrLabelProxy "hookId"
+hookHookId = AttrLabelProxy
+
+
+hookReadFlags :: MonadIO m => Hook -> m Word32
+hookReadFlags s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 40) :: IO Word32
     return val
 
-hookReadFunc :: Hook -> IO (Ptr ())
-hookReadFunc s = withManagedPtr s $ \ptr -> do
+hookWriteFlags :: MonadIO m => Hook -> Word32 -> m ()
+hookWriteFlags s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 40) (val :: Word32)
+
+data HookFlagsFieldInfo
+instance AttrInfo HookFlagsFieldInfo where
+    type AttrAllowedOps HookFlagsFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint HookFlagsFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint HookFlagsFieldInfo = (~) Hook
+    type AttrGetType HookFlagsFieldInfo = Word32
+    type AttrLabel HookFlagsFieldInfo = "flags"
+    attrGet _ = hookReadFlags
+    attrSet _ = hookWriteFlags
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+hookFlags :: AttrLabelProxy "flags"
+hookFlags = AttrLabelProxy
+
+
+hookReadFunc :: MonadIO m => Hook -> m (Ptr ())
+hookReadFunc s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 48) :: IO (Ptr ())
     return val
 
--- XXX Skipped getter for "Hook:destroy" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+hookWriteFunc :: MonadIO m => Hook -> Ptr () -> m ()
+hookWriteFunc s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (val :: Ptr ())
 
+hookClearFunc :: MonadIO m => Hook -> m ()
+hookClearFunc s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (nullPtr :: Ptr ())
+
+data HookFuncFieldInfo
+instance AttrInfo HookFuncFieldInfo where
+    type AttrAllowedOps HookFuncFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint HookFuncFieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint HookFuncFieldInfo = (~) Hook
+    type AttrGetType HookFuncFieldInfo = Ptr ()
+    type AttrLabel HookFuncFieldInfo = "func"
+    attrGet _ = hookReadFunc
+    attrSet _ = hookWriteFunc
+    attrConstruct = undefined
+    attrClear _ = hookClearFunc
+
+hookFunc :: AttrLabelProxy "func"
+hookFunc = AttrLabelProxy
+
+
+-- XXX Skipped attribute for "Hook:destroy" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+type instance AttributeList Hook = HookAttributeList
+type HookAttributeList = ('[ '("data", HookDataFieldInfo), '("next", HookNextFieldInfo), '("prev", HookPrevFieldInfo), '("refCount", HookRefCountFieldInfo), '("hookId", HookHookIdFieldInfo), '("flags", HookFlagsFieldInfo), '("func", HookFuncFieldInfo)] :: [(Symbol, *)])
+
 -- method Hook::compare_ids
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sibling", argType = TInterface "GLib" "Hook", 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
 
@@ -172,22 +360,22 @@
 
 -- method Hook::destroy
 -- method type : MemberFunction
--- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook_id", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook_id", argType = TBasicType TULong, 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 "g_hook_destroy" g_hook_destroy :: 
     Ptr HookList ->                         -- hook_list : TInterface "GLib" "HookList"
-    Word64 ->                               -- hook_id : TBasicType TUInt64
+    CULong ->                               -- hook_id : TBasicType TULong
     IO CInt
 
 
 hookDestroy ::
     (MonadIO m) =>
     HookList                                -- hookList
-    -> Word64                               -- hookId
+    -> CULong                               -- hookId
     -> m Bool                               -- result
 hookDestroy hookList hookId = liftIO $ do
     let hookList' = unsafeManagedPtrGetPtr hookList
@@ -200,7 +388,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook", argType = TInterface "GLib" "Hook", 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
 
@@ -227,7 +415,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook", argType = TInterface "GLib" "Hook", 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 +442,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sibling", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook", argType = TInterface "GLib" "Hook", 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
 
@@ -285,7 +473,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook", argType = TInterface "GLib" "Hook", 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
 
@@ -312,7 +500,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook", argType = TInterface "GLib" "Hook", 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/GLib/Structs/Hook.hs-boot b/GI/GLib/Structs/Hook.hs-boot
--- a/GI/GLib/Structs/Hook.hs-boot
+++ b/GI/GLib/Structs/Hook.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Hook 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/GLib/Structs/HookList.hs b/GI/GLib/Structs/HookList.hs
--- a/GI/GLib/Structs/HookList.hs
+++ b/GI/GLib/Structs/HookList.hs
@@ -42,32 +42,44 @@
 
  -- * Properties
 -- ** Dummy3
+    hookListClearDummy3                     ,
+    hookListDummy3                          ,
     hookListReadDummy3                      ,
+    hookListWriteDummy3                     ,
 
 
 -- ** HookSize
+    hookListHookSize                        ,
     hookListReadHookSize                    ,
+    hookListWriteHookSize                   ,
 
 
 -- ** Hooks
+    hookListClearHooks                      ,
+    hookListHooks                           ,
     hookListReadHooks                       ,
+    hookListWriteHooks                      ,
 
 
 -- ** IsSetup
+    hookListIsSetup                         ,
     hookListReadIsSetup                     ,
+    hookListWriteIsSetup                    ,
 
 
 -- ** SeqId
     hookListReadSeqId                       ,
+    hookListSeqId                           ,
+    hookListWriteSeqId                      ,
 
 
 
 
     ) 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
@@ -80,44 +92,163 @@
 newZeroHookList :: MonadIO m => m HookList
 newZeroHookList = liftIO $ callocBytes 56 >>= wrapPtr HookList
 
+instance tag ~ 'AttrSet => Constructible HookList tag where
+    new _ attrs = do
+        o <- newZeroHookList
+        GI.Attributes.set o attrs
+        return o
+
+
 noHookList :: Maybe HookList
 noHookList = Nothing
 
-hookListReadSeqId :: HookList -> IO Word64
-hookListReadSeqId s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Word64
+hookListReadSeqId :: MonadIO m => HookList -> m CULong
+hookListReadSeqId s = liftIO $ withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CULong
     return val
 
-hookListReadHookSize :: HookList -> IO Word32
-hookListReadHookSize s = withManagedPtr s $ \ptr -> do
+hookListWriteSeqId :: MonadIO m => HookList -> CULong -> m ()
+hookListWriteSeqId s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CULong)
+
+data HookListSeqIdFieldInfo
+instance AttrInfo HookListSeqIdFieldInfo where
+    type AttrAllowedOps HookListSeqIdFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint HookListSeqIdFieldInfo = (~) CULong
+    type AttrBaseTypeConstraint HookListSeqIdFieldInfo = (~) HookList
+    type AttrGetType HookListSeqIdFieldInfo = CULong
+    type AttrLabel HookListSeqIdFieldInfo = "seq_id"
+    attrGet _ = hookListReadSeqId
+    attrSet _ = hookListWriteSeqId
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+hookListSeqId :: AttrLabelProxy "seqId"
+hookListSeqId = AttrLabelProxy
+
+
+hookListReadHookSize :: MonadIO m => HookList -> m Word32
+hookListReadHookSize s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word32
     return val
 
-hookListReadIsSetup :: HookList -> IO Word32
-hookListReadIsSetup s = withManagedPtr s $ \ptr -> do
+hookListWriteHookSize :: MonadIO m => HookList -> Word32 -> m ()
+hookListWriteHookSize s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Word32)
+
+data HookListHookSizeFieldInfo
+instance AttrInfo HookListHookSizeFieldInfo where
+    type AttrAllowedOps HookListHookSizeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint HookListHookSizeFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint HookListHookSizeFieldInfo = (~) HookList
+    type AttrGetType HookListHookSizeFieldInfo = Word32
+    type AttrLabel HookListHookSizeFieldInfo = "hook_size"
+    attrGet _ = hookListReadHookSize
+    attrSet _ = hookListWriteHookSize
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+hookListHookSize :: AttrLabelProxy "hookSize"
+hookListHookSize = AttrLabelProxy
+
+
+hookListReadIsSetup :: MonadIO m => HookList -> m Word32
+hookListReadIsSetup s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 12) :: IO Word32
     return val
 
-hookListReadHooks :: HookList -> IO Hook
-hookListReadHooks s = withManagedPtr s $ \ptr -> do
+hookListWriteIsSetup :: MonadIO m => HookList -> Word32 -> m ()
+hookListWriteIsSetup s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 12) (val :: Word32)
+
+data HookListIsSetupFieldInfo
+instance AttrInfo HookListIsSetupFieldInfo where
+    type AttrAllowedOps HookListIsSetupFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint HookListIsSetupFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint HookListIsSetupFieldInfo = (~) HookList
+    type AttrGetType HookListIsSetupFieldInfo = Word32
+    type AttrLabel HookListIsSetupFieldInfo = "is_setup"
+    attrGet _ = hookListReadIsSetup
+    attrSet _ = hookListWriteIsSetup
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+hookListIsSetup :: AttrLabelProxy "isSetup"
+hookListIsSetup = AttrLabelProxy
+
+
+hookListReadHooks :: MonadIO m => HookList -> m (Maybe Hook)
+hookListReadHooks s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO (Ptr Hook)
-    val' <- (newPtr 64 Hook) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 64 Hook) val'
+        return val''
+    return result
 
-hookListReadDummy3 :: HookList -> IO (Ptr ())
-hookListReadDummy3 s = withManagedPtr s $ \ptr -> do
+hookListWriteHooks :: MonadIO m => HookList -> Ptr Hook -> m ()
+hookListWriteHooks s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Ptr Hook)
+
+hookListClearHooks :: MonadIO m => HookList -> m ()
+hookListClearHooks s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: Ptr Hook)
+
+data HookListHooksFieldInfo
+instance AttrInfo HookListHooksFieldInfo where
+    type AttrAllowedOps HookListHooksFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint HookListHooksFieldInfo = (~) (Ptr Hook)
+    type AttrBaseTypeConstraint HookListHooksFieldInfo = (~) HookList
+    type AttrGetType HookListHooksFieldInfo = Maybe Hook
+    type AttrLabel HookListHooksFieldInfo = "hooks"
+    attrGet _ = hookListReadHooks
+    attrSet _ = hookListWriteHooks
+    attrConstruct = undefined
+    attrClear _ = hookListClearHooks
+
+hookListHooks :: AttrLabelProxy "hooks"
+hookListHooks = AttrLabelProxy
+
+
+hookListReadDummy3 :: MonadIO m => HookList -> m (Ptr ())
+hookListReadDummy3 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO (Ptr ())
     return val
 
--- XXX Skipped getter for "HookList:finalize_hook" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+hookListWriteDummy3 :: MonadIO m => HookList -> Ptr () -> m ()
+hookListWriteDummy3 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: Ptr ())
 
--- XXX Skipped getter for "HookList:dummy" :: Not implemented: "Don't know how to unpack C array of type TCArray False 2 (-1) (TBasicType TVoid)"
+hookListClearDummy3 :: MonadIO m => HookList -> m ()
+hookListClearDummy3 s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: Ptr ())
 
+data HookListDummy3FieldInfo
+instance AttrInfo HookListDummy3FieldInfo where
+    type AttrAllowedOps HookListDummy3FieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint HookListDummy3FieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint HookListDummy3FieldInfo = (~) HookList
+    type AttrGetType HookListDummy3FieldInfo = Ptr ()
+    type AttrLabel HookListDummy3FieldInfo = "dummy3"
+    attrGet _ = hookListReadDummy3
+    attrSet _ = hookListWriteDummy3
+    attrConstruct = undefined
+    attrClear _ = hookListClearDummy3
+
+hookListDummy3 :: AttrLabelProxy "dummy3"
+hookListDummy3 = AttrLabelProxy
+
+
+-- XXX Skipped attribute for "HookList:finalize_hook" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "HookList:dummy" :: Not implemented: "Don't know how to unpack C array of type TCArray False 2 (-1) (TBasicType TPtr)"
+
+type instance AttributeList HookList = HookListAttributeList
+type HookListAttributeList = ('[ '("seqId", HookListSeqIdFieldInfo), '("hookSize", HookListHookSizeFieldInfo), '("isSetup", HookListIsSetupFieldInfo), '("hooks", HookListHooksFieldInfo), '("dummy3", HookListDummy3FieldInfo)] :: [(Symbol, *)])
+
 -- method HookList::clear
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HookList", 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
 
@@ -142,15 +273,15 @@
 
 -- method HookList::init
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook_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 "g_hook_list_init" g_hook_list_init :: 
     Ptr HookList ->                         -- _obj : TInterface "GLib" "HookList"
-    Word32 ->                               -- hook_size : TBasicType TUInt32
+    Word32 ->                               -- hook_size : TBasicType TUInt
     IO ()
 
 
@@ -173,7 +304,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "may_recurse", 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
 
@@ -203,7 +334,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "may_recurse", 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
 
diff --git a/GI/GLib/Structs/HookList.hs-boot b/GI/GLib/Structs/HookList.hs-boot
--- a/GI/GLib/Structs/HookList.hs-boot
+++ b/GI/GLib/Structs/HookList.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.HookList 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/GLib/Structs/IConv.hs b/GI/GLib/Structs/IConv.hs
--- a/GI/GLib/Structs/IConv.hs
+++ b/GI/GLib/Structs/IConv.hs
@@ -27,9 +27,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
@@ -41,11 +41,15 @@
 noIConv :: Maybe IConv
 noIConv = Nothing
 
+
+type instance AttributeList IConv = IConvAttributeList
+type IConvAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method IConv::close
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/IConv.hs-boot b/GI/GLib/Structs/IConv.hs-boot
--- a/GI/GLib/Structs/IConv.hs-boot
+++ b/GI/GLib/Structs/IConv.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.IConv 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/GLib/Structs/IOChannel.hs b/GI/GLib/Structs/IOChannel.hs
--- a/GI/GLib/Structs/IOChannel.hs
+++ b/GI/GLib/Structs/IOChannel.hs
@@ -190,9 +190,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
@@ -211,14 +211,25 @@
 newZeroIOChannel :: MonadIO m => m IOChannel
 newZeroIOChannel = liftIO $ callocBoxedBytes 136 >>= wrapBoxed IOChannel
 
+instance tag ~ 'AttrSet => Constructible IOChannel tag where
+    new _ attrs = do
+        o <- newZeroIOChannel
+        GI.Attributes.set o attrs
+        return o
+
+
 noIOChannel :: Maybe IOChannel
 noIOChannel = Nothing
 
+
+type instance AttributeList IOChannel = IOChannelAttributeList
+type IOChannelAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method IOChannel::new_file
 -- 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 = "mode", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOChannel"
+-- returnType : Just (TInterface "GLib" "IOChannel")
 -- throws : True
 -- Skip return : False
 
@@ -251,14 +262,14 @@
 
 -- method IOChannel::unix_new
 -- method type : Constructor
--- Args : [Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "fd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOChannel"
+-- returnType : Just (TInterface "GLib" "IOChannel")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_io_channel_unix_new" g_io_channel_unix_new :: 
-    Int32 ->                                -- fd : TBasicType TInt32
+    Int32 ->                                -- fd : TBasicType TInt
     IO (Ptr IOChannel)
 
 
@@ -276,7 +287,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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
 
@@ -303,7 +314,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -336,7 +347,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOCondition"
+-- returnType : Just (TInterface "GLib" "IOCondition")
 -- throws : False
 -- Skip return : False
 
@@ -364,7 +375,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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
 
@@ -391,7 +402,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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
 
@@ -419,7 +430,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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
 
@@ -447,7 +458,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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
 
@@ -476,7 +487,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOFlags"
+-- returnType : Just (TInterface "GLib" "IOFlags")
 -- throws : False
 -- Skip return : False
 
@@ -502,15 +513,15 @@
 
 -- method IOChannel::get_line_term
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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 "GLib" "IOChannel", 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 TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_io_channel_get_line_term" g_io_channel_get_line_term :: 
     Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     IO CString
 
 
@@ -535,7 +546,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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
 
@@ -562,7 +573,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOError"
+-- returnType : Just (TInterface "GLib" "IOError")
 -- throws : False
 -- Skip return : False
 
@@ -598,7 +609,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : [Arg {argCName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -643,7 +654,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str_return", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "terminator_pos", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -692,7 +703,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str_return", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},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 : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -736,7 +747,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "thechar", argType = TBasicType TUniChar, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -774,7 +785,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOChannel"
+-- returnType : Just (TInterface "GLib" "IOChannel")
 -- throws : False
 -- Skip return : False
 
@@ -803,7 +814,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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},Arg {argCName = "type", argType = TInterface "GLib" "SeekType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOError"
+-- returnType : Just (TInterface "GLib" "IOError")
 -- throws : False
 -- Skip return : False
 
@@ -836,7 +847,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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},Arg {argCName = "type", argType = TInterface "GLib" "SeekType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -874,7 +885,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, 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
 
@@ -903,7 +914,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffered", 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
 
@@ -933,7 +944,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "do_close", 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
 
@@ -963,7 +974,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "encoding", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -1004,7 +1015,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "IOFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -1038,16 +1049,16 @@
 
 -- method IOChannel::set_line_term
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line_term", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, 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 "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line_term", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, 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 "g_io_channel_set_line_term" g_io_channel_set_line_term :: 
     Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
     CString ->                              -- line_term : TBasicType TUTF8
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     IO ()
 
 
@@ -1077,7 +1088,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flush", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -1113,7 +1124,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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
 
@@ -1140,7 +1151,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", 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
 
@@ -1167,7 +1178,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOError"
+-- returnType : Just (TInterface "GLib" "IOError")
 -- throws : False
 -- Skip return : False
 
@@ -1203,7 +1214,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf", argType = TCArray False (-1) (-1) (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -1244,7 +1255,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "thechar", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOStatus"
+-- returnType : Just (TInterface "GLib" "IOStatus")
 -- throws : True
 -- Skip return : False
 
@@ -1278,14 +1289,14 @@
 
 -- method IOChannel::error_from_errno
 -- method type : MemberFunction
--- Args : [Arg {argCName = "en", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "en", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOChannelError"
+-- returnType : Just (TInterface "GLib" "IOChannelError")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_io_channel_error_from_errno" g_io_channel_error_from_errno :: 
-    Int32 ->                                -- en : TBasicType TInt32
+    Int32 ->                                -- en : TBasicType TInt
     IO CUInt
 
 
@@ -1302,7 +1313,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt32)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/IOChannel.hs-boot b/GI/GLib/Structs/IOChannel.hs-boot
--- a/GI/GLib/Structs/IOChannel.hs-boot
+++ b/GI/GLib/Structs/IOChannel.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.IOChannel 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/GLib/Structs/IOFuncs.hs b/GI/GLib/Structs/IOFuncs.hs
--- a/GI/GLib/Structs/IOFuncs.hs
+++ b/GI/GLib/Structs/IOFuncs.hs
@@ -20,9 +20,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
@@ -35,24 +35,27 @@
 newZeroIOFuncs :: MonadIO m => m IOFuncs
 newZeroIOFuncs = liftIO $ callocBytes 64 >>= wrapPtr IOFuncs
 
-noIOFuncs :: Maybe IOFuncs
-noIOFuncs = Nothing
+instance tag ~ 'AttrSet => Constructible IOFuncs tag where
+    new _ attrs = do
+        o <- newZeroIOFuncs
+        GI.Attributes.set o attrs
+        return o
 
--- XXX Skipped getter for "IOFuncs:io_read" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
 
--- XXX Skipped getter for "IOFuncs:io_write" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
-
--- XXX Skipped getter for "IOFuncs:io_seek" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
-
--- XXX Skipped getter for "IOFuncs:io_close" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
-
--- XXX Skipped getter for "IOFuncs:io_create_watch" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
-
--- XXX Skipped getter for "IOFuncs:io_free" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+noIOFuncs :: Maybe IOFuncs
+noIOFuncs = Nothing
 
--- XXX Skipped getter for "IOFuncs:io_set_flags" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "IOFuncs:io_read" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "IOFuncs:io_write" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "IOFuncs:io_seek" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "IOFuncs:io_close" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "IOFuncs:io_create_watch" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "IOFuncs:io_free" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "IOFuncs:io_set_flags" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "IOFuncs:io_get_flags" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
 
--- XXX Skipped getter for "IOFuncs:io_get_flags" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+type instance AttributeList IOFuncs = IOFuncsAttributeList
+type IOFuncsAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveIOFuncsMethod (t :: Symbol) (o :: *) :: * where
     ResolveIOFuncsMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/IOFuncs.hs-boot b/GI/GLib/Structs/IOFuncs.hs-boot
--- a/GI/GLib/Structs/IOFuncs.hs-boot
+++ b/GI/GLib/Structs/IOFuncs.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.IOFuncs 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/GLib/Structs/KeyFile.hs b/GI/GLib/Structs/KeyFile.hs
--- a/GI/GLib/Structs/KeyFile.hs
+++ b/GI/GLib/Structs/KeyFile.hs
@@ -245,9 +245,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
@@ -265,11 +265,15 @@
 noKeyFile :: Maybe KeyFile
 noKeyFile = Nothing
 
+
+type instance AttributeList KeyFile = KeyFileAttributeList
+type KeyFileAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method KeyFile::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "KeyFile"
+-- returnType : Just (TInterface "GLib" "KeyFile")
 -- throws : False
 -- Skip return : False
 
@@ -290,7 +294,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", 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
 
@@ -331,7 +335,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, 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 : TCArray False (-1) 3 (TBasicType TBoolean)
+-- returnType : Just (TCArray False (-1) 3 (TBasicType TBoolean))
 -- throws : True
 -- Skip return : False
 
@@ -380,7 +384,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", 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
 
@@ -428,7 +432,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TDouble
+-- returnType : Just (TBasicType TDouble)
 -- throws : True
 -- Skip return : False
 
@@ -470,7 +474,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, 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 : TCArray False (-1) 3 (TBasicType TDouble)
+-- returnType : Just (TCArray False (-1) 3 (TBasicType TDouble))
 -- throws : True
 -- Skip return : False
 
@@ -519,7 +523,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, 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 : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -554,7 +558,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt64
+-- returnType : Just (TBasicType TInt64)
 -- throws : True
 -- Skip return : False
 
@@ -595,7 +599,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : True
 -- Skip return : False
 
@@ -636,7 +640,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, 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 : TCArray False (-1) 3 (TBasicType TInt32)
+-- returnType : Just (TCArray False (-1) 3 (TBasicType TInt))
 -- throws : True
 -- Skip return : False
 
@@ -685,7 +689,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, 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 : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
 -- throws : True
 -- Skip return : False
 
@@ -730,7 +734,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "locale", 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 : True
 -- Skip return : False
 
@@ -783,7 +787,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, 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 : []
--- returnType : TCArray True (-1) 4 (TBasicType TUTF8)
+-- returnType : Just (TCArray True (-1) 4 (TBasicType TUTF8))
 -- throws : True
 -- Skip return : False
 
@@ -842,7 +846,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", 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
 
@@ -872,7 +876,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", 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
 
@@ -916,7 +920,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, 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 : []
--- returnType : TCArray True (-1) 3 (TBasicType TUTF8)
+-- returnType : Just (TCArray True (-1) 3 (TBasicType TUTF8))
 -- throws : True
 -- Skip return : False
 
@@ -966,7 +970,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt64
+-- returnType : Just (TBasicType TUInt64)
 -- throws : True
 -- Skip return : False
 
@@ -1007,7 +1011,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", 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
 
@@ -1051,7 +1055,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", 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
 
@@ -1083,7 +1087,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", 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},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "KeyFileFlags", 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
 
@@ -1124,7 +1128,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "full_path", argType = TBasicType TFileName, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "flags", argType = TInterface "GLib" "KeyFileFlags", 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
 
@@ -1170,7 +1174,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "search_dirs", argType = TCArray True (-1) (-1) (TBasicType TFileName), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "full_path", argType = TBasicType TFileName, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "flags", argType = TInterface "GLib" "KeyFileFlags", 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
 
@@ -1223,7 +1227,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "KeyFileFlags", 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
 
@@ -1262,7 +1266,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = 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
 
@@ -1311,7 +1315,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", 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
 
@@ -1347,7 +1351,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", 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
 
@@ -1388,7 +1392,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", 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}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -1424,7 +1428,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1462,7 +1466,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray False (-1) 4 (TBasicType TBoolean), 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
 
@@ -1503,7 +1507,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "comment", 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
 
@@ -1557,7 +1561,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1595,7 +1599,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray False (-1) 4 (TBasicType TDouble), 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
 
@@ -1636,7 +1640,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", 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
 
@@ -1671,9 +1675,9 @@
 
 -- method KeyFile::set_integer
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", 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
 
@@ -1681,7 +1685,7 @@
     Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
     CString ->                              -- group_name : TBasicType TUTF8
     CString ->                              -- key : TBasicType TUTF8
-    Int32 ->                                -- value : TBasicType TInt32
+    Int32 ->                                -- value : TBasicType TInt
     IO ()
 
 
@@ -1708,9 +1712,9 @@
 
 -- method KeyFile::set_integer_list
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray False (-1) 4 (TBasicType TInt32), 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray False (-1) 4 (TBasicType TInt), 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
 
@@ -1718,7 +1722,7 @@
     Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
     CString ->                              -- group_name : TBasicType TUTF8
     CString ->                              -- key : TBasicType TUTF8
-    Ptr Int32 ->                            -- list : TCArray False (-1) 4 (TBasicType TInt32)
+    Ptr Int32 ->                            -- list : TCArray False (-1) 4 (TBasicType TInt)
     Word64 ->                               -- length : TBasicType TUInt64
     IO ()
 
@@ -1751,7 +1755,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "separator", argType = TBasicType TInt8, 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
 
@@ -1780,7 +1784,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1823,7 +1827,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray True (-1) 5 (TBasicType TUTF8), 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 : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1869,7 +1873,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1908,7 +1912,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray True (-1) 4 (TBasicType TUTF8), 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 : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1950,7 +1954,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUInt64, 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
 
@@ -1987,7 +1991,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", 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
 
@@ -2026,7 +2030,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, 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 : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
 
@@ -2065,7 +2069,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", 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
 
@@ -2092,7 +2096,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt32)
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/KeyFile.hs-boot b/GI/GLib/Structs/KeyFile.hs-boot
--- a/GI/GLib/Structs/KeyFile.hs-boot
+++ b/GI/GLib/Structs/KeyFile.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.KeyFile 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/GLib/Structs/MainContext.hs b/GI/GLib/Structs/MainContext.hs
--- a/GI/GLib/Structs/MainContext.hs
+++ b/GI/GLib/Structs/MainContext.hs
@@ -143,9 +143,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -163,11 +163,15 @@
 noMainContext :: Maybe MainContext
 noMainContext = Nothing
 
+
+type instance AttributeList MainContext = MainContextAttributeList
+type MainContextAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method MainContext::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "MainContext"
+-- returnType : Just (TInterface "GLib" "MainContext")
 -- throws : False
 -- Skip return : False
 
@@ -188,7 +192,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", 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
 
@@ -214,16 +218,16 @@
 
 -- method MainContext::add_poll
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", 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 "g_main_context_add_poll" g_main_context_add_poll :: 
     Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
     Ptr PollFD ->                           -- fd : TInterface "GLib" "PollFD"
-    Int32 ->                                -- priority : TBasicType TInt32
+    Int32 ->                                -- priority : TBasicType TInt
     IO ()
 
 
@@ -247,17 +251,17 @@
 
 -- method MainContext::check
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fds", argType = TCArray False (-1) 3 (TInterface "GLib" "PollFD"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_fds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- Lengths : [Arg {argCName = "n_fds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fds", argType = TCArray False (-1) 3 (TInterface "GLib" "PollFD"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_fds", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "n_fds", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_main_context_check" g_main_context_check :: 
     Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
-    Int32 ->                                -- max_priority : TBasicType TInt32
+    Int32 ->                                -- max_priority : TBasicType TInt
     Ptr PollFD ->                           -- fds : TCArray False (-1) 3 (TInterface "GLib" "PollFD")
-    Int32 ->                                -- n_fds : TBasicType TInt32
+    Int32 ->                                -- n_fds : TBasicType TInt
     IO Int32
 
 
@@ -286,7 +290,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", 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
 
@@ -311,16 +315,16 @@
 
 -- method MainContext::find_source_by_funcs_user_data
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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 "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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 : TInterface "GLib" "Source"
+-- returnType : Just (TInterface "GLib" "Source")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_main_context_find_source_by_funcs_user_data" g_main_context_find_source_by_funcs_user_data :: 
     Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
     Ptr SourceFuncs ->                      -- funcs : TInterface "GLib" "SourceFuncs"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO (Ptr Source)
 
 
@@ -346,15 +350,15 @@
 
 -- method MainContext::find_source_by_id
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Source"
+-- returnType : Just (TInterface "GLib" "Source")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_main_context_find_source_by_id" g_main_context_find_source_by_id :: 
     Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
-    Word32 ->                               -- source_id : TBasicType TUInt32
+    Word32 ->                               -- source_id : TBasicType TUInt
     IO (Ptr Source)
 
 
@@ -377,15 +381,15 @@
 
 -- method MainContext::find_source_by_user_data
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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 "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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 : TInterface "GLib" "Source"
+-- returnType : Just (TInterface "GLib" "Source")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_main_context_find_source_by_user_data" g_main_context_find_source_by_user_data :: 
     Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO (Ptr Source)
 
 
@@ -408,17 +412,17 @@
 
 -- method MainContext::invoke_full
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_main_context_invoke_full" g_main_context_invoke_full :: 
     Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
-    Int32 ->                                -- priority : TBasicType TInt32
+    Int32 ->                                -- priority : TBasicType TInt
     FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -446,7 +450,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", 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
 
@@ -474,7 +478,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "may_block", argType = TBasicType TBoolean, 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
 
@@ -505,7 +509,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", 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
 
@@ -533,7 +537,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", 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
 
@@ -558,15 +562,15 @@
 
 -- method MainContext::prepare
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_main_context_prepare" g_main_context_prepare :: 
     Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
-    Int32 ->                                -- priority : TBasicType TInt32
+    Int32 ->                                -- priority : TBasicType TInt
     IO CInt
 
 
@@ -590,7 +594,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", 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
 
@@ -615,18 +619,18 @@
 
 -- method MainContext::query
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout_", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "fds", argType = TCArray False (-1) 4 (TInterface "GLib" "PollFD"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "n_fds", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : [Arg {argCName = "n_fds", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TBasicType TInt32
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_priority", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout_", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "fds", argType = TCArray False (-1) 4 (TInterface "GLib" "PollFD"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "n_fds", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_fds", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_main_context_query" g_main_context_query :: 
     Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
-    Int32 ->                                -- max_priority : TBasicType TInt32
-    Ptr Int32 ->                            -- timeout_ : TBasicType TInt32
+    Int32 ->                                -- max_priority : TBasicType TInt
+    Ptr Int32 ->                            -- timeout_ : TBasicType TInt
     Ptr PollFD ->                           -- fds : TCArray False (-1) 4 (TInterface "GLib" "PollFD")
-    Int32 ->                                -- n_fds : TBasicType TInt32
+    Int32 ->                                -- n_fds : TBasicType TInt
     IO Int32
 
 
@@ -639,18 +643,18 @@
 mainContextQuery _obj maxPriority fds = liftIO $ do
     let nFds = fromIntegral $ length fds
     let _obj' = unsafeManagedPtrGetPtr _obj
-    timeout <- allocMem :: IO (Ptr Int32)
+    timeout_ <- allocMem :: IO (Ptr Int32)
     let fds' = map unsafeManagedPtrGetPtr fds
     fds'' <- packBlockArray 8 fds'
-    result <- g_main_context_query _obj' maxPriority timeout fds'' nFds
-    timeout' <- peek timeout
+    result <- g_main_context_query _obj' maxPriority timeout_ fds'' nFds
+    timeout_' <- peek timeout_
     fds''' <- (unpackBoxedArrayWithLength 8 nFds) fds''
     fds'''' <- mapM (newBoxed PollFD) fds'''
     touchManagedPtr _obj
     mapM_ touchManagedPtr fds
-    freeMem timeout
+    freeMem timeout_
     freeMem fds''
-    return (result, timeout', fds'''')
+    return (result, timeout_', fds'''')
 
 data MainContextQueryMethodInfo
 instance (signature ~ (Int32 -> [PollFD] -> m (Int32,Int32,[PollFD])), MonadIO m) => MethodInfo MainContextQueryMethodInfo MainContext signature where
@@ -660,7 +664,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", 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
 
@@ -689,7 +693,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", 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
 
@@ -716,7 +720,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TInterface "GLib" "PollFD", 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
 
@@ -747,7 +751,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", 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
 
@@ -774,7 +778,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cond", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mutex", argType = TInterface "GLib" "Mutex", 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
 
@@ -810,7 +814,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", 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
 
@@ -837,7 +841,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "MainContext"
+-- returnType : Just (TInterface "GLib" "MainContext")
 -- throws : False
 -- Skip return : False
 
@@ -858,7 +862,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "MainContext"
+-- returnType : Just (TInterface "GLib" "MainContext")
 -- throws : False
 -- Skip return : False
 
@@ -879,7 +883,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "MainContext"
+-- returnType : Just (TInterface "GLib" "MainContext")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/MainContext.hs-boot b/GI/GLib/Structs/MainContext.hs-boot
--- a/GI/GLib/Structs/MainContext.hs-boot
+++ b/GI/GLib/Structs/MainContext.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.MainContext 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/GLib/Structs/MainLoop.hs b/GI/GLib/Structs/MainLoop.hs
--- a/GI/GLib/Structs/MainLoop.hs
+++ b/GI/GLib/Structs/MainLoop.hs
@@ -56,9 +56,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -76,11 +76,15 @@
 noMainLoop :: Maybe MainLoop
 noMainLoop = Nothing
 
+
+type instance AttributeList MainLoop = MainLoopAttributeList
+type MainLoopAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method MainLoop::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_running", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "MainLoop"
+-- returnType : Just (TInterface "GLib" "MainLoop")
 -- throws : False
 -- Skip return : False
 
@@ -112,7 +116,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", 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
 
@@ -141,7 +145,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", 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
 
@@ -169,7 +173,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -196,7 +200,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "MainLoop"
+-- returnType : Just (TInterface "GLib" "MainLoop")
 -- throws : False
 -- Skip return : False
 
@@ -225,7 +229,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -252,7 +256,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", 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/GLib/Structs/MainLoop.hs-boot b/GI/GLib/Structs/MainLoop.hs-boot
--- a/GI/GLib/Structs/MainLoop.hs-boot
+++ b/GI/GLib/Structs/MainLoop.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.MainLoop 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/GLib/Structs/MappedFile.hs b/GI/GLib/Structs/MappedFile.hs
--- a/GI/GLib/Structs/MappedFile.hs
+++ b/GI/GLib/Structs/MappedFile.hs
@@ -61,9 +61,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
@@ -81,11 +81,15 @@
 noMappedFile :: Maybe MappedFile
 noMappedFile = Nothing
 
+
+type instance AttributeList MappedFile = MappedFileAttributeList
+type MappedFileAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method MappedFile::new
 -- 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 = "writable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "MappedFile"
+-- returnType : Just (TInterface "GLib" "MappedFile")
 -- throws : True
 -- Skip return : False
 
@@ -116,14 +120,14 @@
 
 -- method MappedFile::new_from_fd
 -- method type : Constructor
--- Args : [Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "writable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "fd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "writable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "MappedFile"
+-- returnType : Just (TInterface "GLib" "MappedFile")
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "g_mapped_file_new_from_fd" g_mapped_file_new_from_fd :: 
-    Int32 ->                                -- fd : TBasicType TInt32
+    Int32 ->                                -- fd : TBasicType TInt
     CInt ->                                 -- writable : TBasicType TBoolean
     Ptr (Ptr GError) ->                     -- error
     IO (Ptr MappedFile)
@@ -149,7 +153,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", 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
 
@@ -176,7 +180,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", 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
 
@@ -205,7 +209,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", 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
 
@@ -235,7 +239,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", 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
 
@@ -262,7 +266,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "MappedFile"
+-- returnType : Just (TInterface "GLib" "MappedFile")
 -- throws : False
 -- Skip return : False
 
@@ -291,7 +295,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", 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/GLib/Structs/MappedFile.hs-boot b/GI/GLib/Structs/MappedFile.hs-boot
--- a/GI/GLib/Structs/MappedFile.hs-boot
+++ b/GI/GLib/Structs/MappedFile.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.MappedFile 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/GLib/Structs/MarkupParseContext.hs b/GI/GLib/Structs/MarkupParseContext.hs
--- a/GI/GLib/Structs/MarkupParseContext.hs
+++ b/GI/GLib/Structs/MarkupParseContext.hs
@@ -64,9 +64,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
@@ -84,18 +84,22 @@
 noMarkupParseContext :: Maybe MarkupParseContext
 noMarkupParseContext = Nothing
 
+
+type instance AttributeList MarkupParseContext = MarkupParseContextAttributeList
+type MarkupParseContextAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method MarkupParseContext::new
 -- method type : Constructor
--- Args : [Arg {argCName = "parser", argType = TInterface "GLib" "MarkupParser", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "MarkupParseFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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},Arg {argCName = "user_data_dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "parser", argType = TInterface "GLib" "MarkupParser", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "MarkupParseFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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},Arg {argCName = "user_data_dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "MarkupParseContext"
+-- returnType : Just (TInterface "GLib" "MarkupParseContext")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_markup_parse_context_new" g_markup_parse_context_new :: 
     Ptr MarkupParser ->                     -- parser : TInterface "GLib" "MarkupParser"
     CUInt ->                                -- flags : TInterface "GLib" "MarkupParseFlags"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     FunPtr DestroyNotifyC ->                -- user_data_dnotify : TInterface "GLib" "DestroyNotify"
     IO (Ptr MarkupParseContext)
 
@@ -123,7 +127,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", 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
 
@@ -155,7 +159,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", 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
 
@@ -182,7 +186,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", 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
 
@@ -211,7 +215,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", 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},Arg {argCName = "text_len", 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 : True
 -- Skip return : False
 
@@ -247,16 +251,16 @@
 
 -- method MarkupParseContext::push
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parser", argType = TInterface "GLib" "MarkupParser", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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 "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parser", argType = TInterface "GLib" "MarkupParser", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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 "g_markup_parse_context_push" g_markup_parse_context_push :: 
     Ptr MarkupParseContext ->               -- _obj : TInterface "GLib" "MarkupParseContext"
     Ptr MarkupParser ->                     -- parser : TInterface "GLib" "MarkupParser"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO ()
 
 
@@ -282,7 +286,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "MarkupParseContext"
+-- returnType : Just (TInterface "GLib" "MarkupParseContext")
 -- throws : False
 -- Skip return : False
 
@@ -311,7 +315,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", 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/GLib/Structs/MarkupParseContext.hs-boot b/GI/GLib/Structs/MarkupParseContext.hs-boot
--- a/GI/GLib/Structs/MarkupParseContext.hs-boot
+++ b/GI/GLib/Structs/MarkupParseContext.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.MarkupParseContext 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/GLib/Structs/MarkupParser.hs b/GI/GLib/Structs/MarkupParser.hs
--- a/GI/GLib/Structs/MarkupParser.hs
+++ b/GI/GLib/Structs/MarkupParser.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
@@ -40,18 +40,24 @@
 newZeroMarkupParser :: MonadIO m => m MarkupParser
 newZeroMarkupParser = liftIO $ callocBytes 40 >>= wrapPtr MarkupParser
 
-noMarkupParser :: Maybe MarkupParser
-noMarkupParser = Nothing
+instance tag ~ 'AttrSet => Constructible MarkupParser tag where
+    new _ attrs = do
+        o <- newZeroMarkupParser
+        GI.Attributes.set o attrs
+        return o
 
--- XXX Skipped getter for "MarkupParser:start_element" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
 
--- XXX Skipped getter for "MarkupParser:end_element" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
-
--- XXX Skipped getter for "MarkupParser:text" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+noMarkupParser :: Maybe MarkupParser
+noMarkupParser = Nothing
 
--- XXX Skipped getter for "MarkupParser:passthrough" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "MarkupParser:start_element" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "MarkupParser:end_element" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "MarkupParser:text" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "MarkupParser:passthrough" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "MarkupParser:error" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
 
--- XXX Skipped getter for "MarkupParser:error" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+type instance AttributeList MarkupParser = MarkupParserAttributeList
+type MarkupParserAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveMarkupParserMethod (t :: Symbol) (o :: *) :: * where
     ResolveMarkupParserMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/MarkupParser.hs-boot b/GI/GLib/Structs/MarkupParser.hs-boot
--- a/GI/GLib/Structs/MarkupParser.hs-boot
+++ b/GI/GLib/Structs/MarkupParser.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.MarkupParser 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/GLib/Structs/MatchInfo.hs b/GI/GLib/Structs/MatchInfo.hs
--- a/GI/GLib/Structs/MatchInfo.hs
+++ b/GI/GLib/Structs/MatchInfo.hs
@@ -97,9 +97,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,11 +117,15 @@
 noMatchInfo :: Maybe MatchInfo
 noMatchInfo = Nothing
 
+
+type instance AttributeList MatchInfo = MatchInfoAttributeList
+type MatchInfoAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method MatchInfo::expand_references
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_to_expand", 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
 
@@ -158,15 +162,15 @@
 
 -- method MatchInfo::fetch
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_num", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_match_info_fetch" g_match_info_fetch :: 
     Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
-    Int32 ->                                -- match_num : TBasicType TInt32
+    Int32 ->                                -- match_num : TBasicType TInt
     IO CString
 
 
@@ -192,7 +196,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -223,7 +227,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", 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
 
@@ -255,17 +259,17 @@
 
 -- method MatchInfo::fetch_named_pos
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", 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 = "start_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", 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 = "start_pos", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_pos", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_match_info_fetch_named_pos" g_match_info_fetch_named_pos :: 
     Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
     CString ->                              -- name : TBasicType TUTF8
-    Ptr Int32 ->                            -- start_pos : TBasicType TInt32
-    Ptr Int32 ->                            -- end_pos : TBasicType TInt32
+    Ptr Int32 ->                            -- start_pos : TBasicType TInt
+    Ptr Int32 ->                            -- end_pos : TBasicType TInt
     IO CInt
 
 
@@ -295,17 +299,17 @@
 
 -- method MatchInfo::fetch_pos
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_num", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_pos", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_match_info_fetch_pos" g_match_info_fetch_pos :: 
     Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
-    Int32 ->                                -- match_num : TBasicType TInt32
-    Ptr Int32 ->                            -- start_pos : TBasicType TInt32
-    Ptr Int32 ->                            -- end_pos : TBasicType TInt32
+    Int32 ->                                -- match_num : TBasicType TInt
+    Ptr Int32 ->                            -- start_pos : TBasicType TInt
+    Ptr Int32 ->                            -- end_pos : TBasicType TInt
     IO CInt
 
 
@@ -335,7 +339,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", 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
 
@@ -362,7 +366,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", 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
 
@@ -389,7 +393,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Regex"
+-- returnType : Just (TInterface "GLib" "Regex")
 -- throws : False
 -- Skip return : False
 
@@ -418,7 +422,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", 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
 
@@ -447,7 +451,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", 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
 
@@ -475,7 +479,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", 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
 
@@ -503,7 +507,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", 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
 
@@ -535,7 +539,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "MatchInfo"
+-- returnType : Just (TInterface "GLib" "MatchInfo")
 -- throws : False
 -- Skip return : False
 
@@ -564,7 +568,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", 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/GLib/Structs/MatchInfo.hs-boot b/GI/GLib/Structs/MatchInfo.hs-boot
--- a/GI/GLib/Structs/MatchInfo.hs-boot
+++ b/GI/GLib/Structs/MatchInfo.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.MatchInfo 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/GLib/Structs/MemVTable.hs b/GI/GLib/Structs/MemVTable.hs
--- a/GI/GLib/Structs/MemVTable.hs
+++ b/GI/GLib/Structs/MemVTable.hs
@@ -23,9 +23,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -38,10 +38,20 @@
 newZeroMemVTable :: MonadIO m => m MemVTable
 newZeroMemVTable = liftIO $ callocBytes 48 >>= wrapPtr MemVTable
 
+instance tag ~ 'AttrSet => Constructible MemVTable tag where
+    new _ attrs = do
+        o <- newZeroMemVTable
+        GI.Attributes.set o attrs
+        return o
+
+
 noMemVTable :: Maybe MemVTable
 noMemVTable = Nothing
 
--- XXX Skipped getter for "MemVTable:free" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "MemVTable:free" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+type instance AttributeList MemVTable = MemVTableAttributeList
+type MemVTableAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveMemVTableMethod (t :: Symbol) (o :: *) :: * where
     ResolveMemVTableMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/MemVTable.hs-boot b/GI/GLib/Structs/MemVTable.hs-boot
--- a/GI/GLib/Structs/MemVTable.hs-boot
+++ b/GI/GLib/Structs/MemVTable.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.MemVTable 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/GLib/Structs/Node.hs b/GI/GLib/Structs/Node.hs
--- a/GI/GLib/Structs/Node.hs
+++ b/GI/GLib/Structs/Node.hs
@@ -72,32 +72,47 @@
 
  -- * Properties
 -- ** Children
+    nodeChildren                            ,
+    nodeClearChildren                       ,
     nodeReadChildren                        ,
+    nodeWriteChildren                       ,
 
 
 -- ** Data
+    nodeClearData                           ,
+    nodeData                                ,
     nodeReadData                            ,
+    nodeWriteData                           ,
 
 
 -- ** Next
+    nodeClearNext                           ,
+    nodeNext                                ,
     nodeReadNext                            ,
+    nodeWriteNext                           ,
 
 
 -- ** Parent
+    nodeClearParent                         ,
+    nodeParent                              ,
     nodeReadParent                          ,
+    nodeWriteParent                         ,
 
 
 -- ** Prev
+    nodeClearPrev                           ,
+    nodePrev                                ,
     nodeReadPrev                            ,
+    nodeWritePrev                           ,
 
 
 
 
     ) 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
@@ -110,49 +125,188 @@
 newZeroNode :: MonadIO m => m Node
 newZeroNode = liftIO $ callocBytes 40 >>= wrapPtr Node
 
+instance tag ~ 'AttrSet => Constructible Node tag where
+    new _ attrs = do
+        o <- newZeroNode
+        GI.Attributes.set o attrs
+        return o
+
+
 noNode :: Maybe Node
 noNode = Nothing
 
-nodeReadData :: Node -> IO (Ptr ())
-nodeReadData s = withManagedPtr s $ \ptr -> do
+nodeReadData :: MonadIO m => Node -> m (Ptr ())
+nodeReadData s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
     return val
 
-nodeReadNext :: Node -> IO Node
-nodeReadNext s = withManagedPtr s $ \ptr -> do
+nodeWriteData :: MonadIO m => Node -> Ptr () -> m ()
+nodeWriteData s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ())
+
+nodeClearData :: MonadIO m => Node -> m ()
+nodeClearData s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ())
+
+data NodeDataFieldInfo
+instance AttrInfo NodeDataFieldInfo where
+    type AttrAllowedOps NodeDataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint NodeDataFieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint NodeDataFieldInfo = (~) Node
+    type AttrGetType NodeDataFieldInfo = Ptr ()
+    type AttrLabel NodeDataFieldInfo = "data"
+    attrGet _ = nodeReadData
+    attrSet _ = nodeWriteData
+    attrConstruct = undefined
+    attrClear _ = nodeClearData
+
+nodeData :: AttrLabelProxy "data"
+nodeData = AttrLabelProxy
+
+
+nodeReadNext :: MonadIO m => Node -> m (Maybe Node)
+nodeReadNext s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO (Ptr Node)
-    val' <- (newPtr 40 Node) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 40 Node) val'
+        return val''
+    return result
 
-nodeReadPrev :: Node -> IO Node
-nodeReadPrev s = withManagedPtr s $ \ptr -> do
+nodeWriteNext :: MonadIO m => Node -> Ptr Node -> m ()
+nodeWriteNext s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Ptr Node)
+
+nodeClearNext :: MonadIO m => Node -> m ()
+nodeClearNext s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: Ptr Node)
+
+data NodeNextFieldInfo
+instance AttrInfo NodeNextFieldInfo where
+    type AttrAllowedOps NodeNextFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint NodeNextFieldInfo = (~) (Ptr Node)
+    type AttrBaseTypeConstraint NodeNextFieldInfo = (~) Node
+    type AttrGetType NodeNextFieldInfo = Maybe Node
+    type AttrLabel NodeNextFieldInfo = "next"
+    attrGet _ = nodeReadNext
+    attrSet _ = nodeWriteNext
+    attrConstruct = undefined
+    attrClear _ = nodeClearNext
+
+nodeNext :: AttrLabelProxy "next"
+nodeNext = AttrLabelProxy
+
+
+nodeReadPrev :: MonadIO m => Node -> m (Maybe Node)
+nodeReadPrev s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO (Ptr Node)
-    val' <- (newPtr 40 Node) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 40 Node) val'
+        return val''
+    return result
 
-nodeReadParent :: Node -> IO Node
-nodeReadParent s = withManagedPtr s $ \ptr -> do
+nodeWritePrev :: MonadIO m => Node -> Ptr Node -> m ()
+nodeWritePrev s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Ptr Node)
+
+nodeClearPrev :: MonadIO m => Node -> m ()
+nodeClearPrev s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: Ptr Node)
+
+data NodePrevFieldInfo
+instance AttrInfo NodePrevFieldInfo where
+    type AttrAllowedOps NodePrevFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint NodePrevFieldInfo = (~) (Ptr Node)
+    type AttrBaseTypeConstraint NodePrevFieldInfo = (~) Node
+    type AttrGetType NodePrevFieldInfo = Maybe Node
+    type AttrLabel NodePrevFieldInfo = "prev"
+    attrGet _ = nodeReadPrev
+    attrSet _ = nodeWritePrev
+    attrConstruct = undefined
+    attrClear _ = nodeClearPrev
+
+nodePrev :: AttrLabelProxy "prev"
+nodePrev = AttrLabelProxy
+
+
+nodeReadParent :: MonadIO m => Node -> m (Maybe Node)
+nodeReadParent s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO (Ptr Node)
-    val' <- (newPtr 40 Node) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 40 Node) val'
+        return val''
+    return result
 
-nodeReadChildren :: Node -> IO Node
-nodeReadChildren s = withManagedPtr s $ \ptr -> do
+nodeWriteParent :: MonadIO m => Node -> Ptr Node -> m ()
+nodeWriteParent s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: Ptr Node)
+
+nodeClearParent :: MonadIO m => Node -> m ()
+nodeClearParent s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: Ptr Node)
+
+data NodeParentFieldInfo
+instance AttrInfo NodeParentFieldInfo where
+    type AttrAllowedOps NodeParentFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint NodeParentFieldInfo = (~) (Ptr Node)
+    type AttrBaseTypeConstraint NodeParentFieldInfo = (~) Node
+    type AttrGetType NodeParentFieldInfo = Maybe Node
+    type AttrLabel NodeParentFieldInfo = "parent"
+    attrGet _ = nodeReadParent
+    attrSet _ = nodeWriteParent
+    attrConstruct = undefined
+    attrClear _ = nodeClearParent
+
+nodeParent :: AttrLabelProxy "parent"
+nodeParent = AttrLabelProxy
+
+
+nodeReadChildren :: MonadIO m => Node -> m (Maybe Node)
+nodeReadChildren s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO (Ptr Node)
-    val' <- (newPtr 40 Node) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 40 Node) val'
+        return val''
+    return result
 
+nodeWriteChildren :: MonadIO m => Node -> Ptr Node -> m ()
+nodeWriteChildren s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Ptr Node)
+
+nodeClearChildren :: MonadIO m => Node -> m ()
+nodeClearChildren s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (nullPtr :: Ptr Node)
+
+data NodeChildrenFieldInfo
+instance AttrInfo NodeChildrenFieldInfo where
+    type AttrAllowedOps NodeChildrenFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint NodeChildrenFieldInfo = (~) (Ptr Node)
+    type AttrBaseTypeConstraint NodeChildrenFieldInfo = (~) Node
+    type AttrGetType NodeChildrenFieldInfo = Maybe Node
+    type AttrLabel NodeChildrenFieldInfo = "children"
+    attrGet _ = nodeReadChildren
+    attrSet _ = nodeWriteChildren
+    attrConstruct = undefined
+    attrClear _ = nodeClearChildren
+
+nodeChildren :: AttrLabelProxy "children"
+nodeChildren = AttrLabelProxy
+
+
+
+type instance AttributeList Node = NodeAttributeList
+type NodeAttributeList = ('[ '("data", NodeDataFieldInfo), '("next", NodeNextFieldInfo), '("prev", NodePrevFieldInfo), '("parent", NodeParentFieldInfo), '("children", NodeChildrenFieldInfo)] :: [(Symbol, *)])
+
 -- method Node::child_index
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_node_child_index" g_node_child_index :: 
     Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO Int32
 
 
@@ -175,7 +329,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface "GLib" "Node", 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
 
@@ -206,7 +360,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", 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
 
@@ -233,7 +387,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", 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
 
@@ -260,7 +414,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "descendant", argType = TInterface "GLib" "Node", 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
 
@@ -292,7 +446,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", 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
 
@@ -319,7 +473,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", 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
 
@@ -346,7 +500,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "TraverseFlags", 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
 
@@ -376,7 +530,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", 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
 
@@ -403,7 +557,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", 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/GLib/Structs/Node.hs-boot b/GI/GLib/Structs/Node.hs-boot
--- a/GI/GLib/Structs/Node.hs-boot
+++ b/GI/GLib/Structs/Node.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Node 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/GLib/Structs/Once.hs b/GI/GLib/Structs/Once.hs
--- a/GI/GLib/Structs/Once.hs
+++ b/GI/GLib/Structs/Once.hs
@@ -32,20 +32,25 @@
 
  -- * Properties
 -- ** Retval
+    onceClearRetval                         ,
     onceReadRetval                          ,
+    onceRetval                              ,
+    onceWriteRetval                         ,
 
 
 -- ** Status
     onceReadStatus                          ,
+    onceStatus                              ,
+    onceWriteStatus                         ,
 
 
 
 
     ) 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,30 +63,86 @@
 newZeroOnce :: MonadIO m => m Once
 newZeroOnce = liftIO $ callocBytes 16 >>= wrapPtr Once
 
+instance tag ~ 'AttrSet => Constructible Once tag where
+    new _ attrs = do
+        o <- newZeroOnce
+        GI.Attributes.set o attrs
+        return o
+
+
 noOnce :: Maybe Once
 noOnce = Nothing
 
-onceReadStatus :: Once -> IO OnceStatus
-onceReadStatus s = withManagedPtr s $ \ptr -> do
+onceReadStatus :: MonadIO m => Once -> m OnceStatus
+onceReadStatus s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-onceReadRetval :: Once -> IO (Ptr ())
-onceReadRetval s = withManagedPtr s $ \ptr -> do
+onceWriteStatus :: MonadIO m => Once -> OnceStatus -> m ()
+onceWriteStatus s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data OnceStatusFieldInfo
+instance AttrInfo OnceStatusFieldInfo where
+    type AttrAllowedOps OnceStatusFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint OnceStatusFieldInfo = (~) OnceStatus
+    type AttrBaseTypeConstraint OnceStatusFieldInfo = (~) Once
+    type AttrGetType OnceStatusFieldInfo = OnceStatus
+    type AttrLabel OnceStatusFieldInfo = "status"
+    attrGet _ = onceReadStatus
+    attrSet _ = onceWriteStatus
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+onceStatus :: AttrLabelProxy "status"
+onceStatus = AttrLabelProxy
+
+
+onceReadRetval :: MonadIO m => Once -> m (Ptr ())
+onceReadRetval s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO (Ptr ())
     return val
 
+onceWriteRetval :: MonadIO m => Once -> Ptr () -> m ()
+onceWriteRetval s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Ptr ())
+
+onceClearRetval :: MonadIO m => Once -> m ()
+onceClearRetval s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: Ptr ())
+
+data OnceRetvalFieldInfo
+instance AttrInfo OnceRetvalFieldInfo where
+    type AttrAllowedOps OnceRetvalFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint OnceRetvalFieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint OnceRetvalFieldInfo = (~) Once
+    type AttrGetType OnceRetvalFieldInfo = Ptr ()
+    type AttrLabel OnceRetvalFieldInfo = "retval"
+    attrGet _ = onceReadRetval
+    attrSet _ = onceWriteRetval
+    attrConstruct = undefined
+    attrClear _ = onceClearRetval
+
+onceRetval :: AttrLabelProxy "retval"
+onceRetval = AttrLabelProxy
+
+
+
+type instance AttributeList Once = OnceAttributeList
+type OnceAttributeList = ('[ '("status", OnceStatusFieldInfo), '("retval", OnceRetvalFieldInfo)] :: [(Symbol, *)])
+
 -- method Once::init_enter
 -- method type : MemberFunction
--- Args : [Arg {argCName = "location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "location", 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 "g_once_init_enter" g_once_init_enter :: 
-    Ptr () ->                               -- location : TBasicType TVoid
+    Ptr () ->                               -- location : TBasicType TPtr
     IO CInt
 
 
@@ -96,14 +157,14 @@
 
 -- method Once::init_leave
 -- method type : MemberFunction
--- Args : [Arg {argCName = "location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "location", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TBasicType TUInt64, 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 "g_once_init_leave" g_once_init_leave :: 
-    Ptr () ->                               -- location : TBasicType TVoid
+    Ptr () ->                               -- location : TBasicType TPtr
     Word64 ->                               -- result : TBasicType TUInt64
     IO ()
 
diff --git a/GI/GLib/Structs/Once.hs-boot b/GI/GLib/Structs/Once.hs-boot
--- a/GI/GLib/Structs/Once.hs-boot
+++ b/GI/GLib/Structs/Once.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Once 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/GLib/Structs/OptionContext.hs b/GI/GLib/Structs/OptionContext.hs
--- a/GI/GLib/Structs/OptionContext.hs
+++ b/GI/GLib/Structs/OptionContext.hs
@@ -69,6 +69,11 @@
     optionContextGetSummary                 ,
 
 
+-- ** optionContextParse
+    OptionContextParseMethodInfo            ,
+    optionContextParse                      ,
+
+
 -- ** optionContextParseStrv
     OptionContextParseStrvMethodInfo        ,
     optionContextParseStrv                  ,
@@ -118,9 +123,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
@@ -132,11 +137,15 @@
 noOptionContext :: Maybe OptionContext
 noOptionContext = Nothing
 
+
+type instance AttributeList OptionContext = OptionContextAttributeList
+type OptionContextAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method OptionContext::add_group
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TInterface "GLib" "OptionGroup", 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
 
@@ -167,7 +176,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "entries", argType = TInterface "GLib" "OptionEntry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "translation_domain", 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
 
@@ -206,7 +215,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", 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
 
@@ -233,7 +242,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", 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
 
@@ -262,7 +271,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "main_help", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TInterface "GLib" "OptionGroup", 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
 
@@ -303,7 +312,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", 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 +340,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", 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
 
@@ -359,7 +368,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "OptionGroup"
+-- returnType : Just (TInterface "GLib" "OptionGroup")
 -- throws : False
 -- Skip return : False
 
@@ -388,7 +397,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", 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
 
@@ -416,7 +425,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", 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
 
@@ -441,13 +450,68 @@
 instance (signature ~ (m T.Text), MonadIO m) => MethodInfo OptionContextGetSummaryMethodInfo OptionContext signature where
     overloadedMethod _ = optionContextGetSummary
 
--- XXX Could not generate method OptionContext::parse
--- Error was : Bad introspection data: "argument \"argc\" is not of nullable type (TBasicType TInt32), but it is marked as such."
+-- method OptionContext::parse
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argc", argType = TBasicType TInt, direction = DirectionInout, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "argv", argType = TCArray False (-1) 1 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "argc", argType = TBasicType TInt, direction = DirectionInout, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : Just (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_option_context_parse" g_option_context_parse :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    Ptr Int32 ->                            -- argc : TBasicType TInt
+    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 1 (TBasicType TUTF8)
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+optionContextParse ::
+    (MonadIO m) =>
+    OptionContext                           -- _obj
+    -> Maybe ([T.Text])                     -- argv
+    -> m ((Maybe [T.Text]))                 -- result
+optionContextParse _obj argv = liftIO $ do
+    let argc = case argv of
+            Nothing -> 0
+            Just jArgv -> fromIntegral $ length jArgv
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    argc' <- allocMem :: IO (Ptr Int32)
+    poke argc' argc
+    maybeArgv <- case argv of
+        Nothing -> return nullPtr
+        Just jArgv -> do
+            jArgv' <- packUTF8CArray jArgv
+            return jArgv'
+    maybeArgv' <- allocMem :: IO (Ptr (Ptr CString))
+    poke maybeArgv' maybeArgv
+    onException (do
+        _ <- propagateGError $ g_option_context_parse _obj' argc' maybeArgv'
+        argc'' <- peek argc'
+        maybeArgv'' <- peek maybeArgv'
+        maybeMaybeArgv'' <- convertIfNonNull maybeArgv'' $ \maybeArgv''' -> do
+            maybeArgv'''' <- (unpackUTF8CArrayWithLength argc'') maybeArgv'''
+            (mapCArrayWithLength argc'') freeMem maybeArgv'''
+            freeMem maybeArgv'''
+            return maybeArgv''''
+        touchManagedPtr _obj
+        freeMem argc'
+        freeMem maybeArgv'
+        return maybeMaybeArgv''
+     ) (do
+        freeMem argc'
+        freeMem maybeArgv'
+     )
+
+data OptionContextParseMethodInfo
+instance (signature ~ (Maybe ([T.Text]) -> m ((Maybe [T.Text]))), MonadIO m) => MethodInfo OptionContextParseMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextParse
+
 -- method OptionContext::parse_strv
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "arguments", argType = TCArray False (-1) (-1) (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -485,7 +549,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", 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
 
@@ -520,7 +584,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "help_enabled", 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
 
@@ -550,7 +614,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ignore_unknown", 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
 
@@ -580,7 +644,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TInterface "GLib" "OptionGroup", 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
 
@@ -611,7 +675,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "strict_posix", 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
 
@@ -641,7 +705,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "summary", 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
 
@@ -674,16 +738,16 @@
 
 -- method OptionContext::set_translate_func
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "TranslateFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "TranslateFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_option_context_set_translate_func" g_option_context_set_translate_func :: 
     Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
     FunPtr TranslateFuncC ->                -- func : TInterface "GLib" "TranslateFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     FunPtr DestroyNotifyC ->                -- destroy_notify : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -714,7 +778,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", 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
 
@@ -745,6 +809,7 @@
     ResolveOptionContextMethod "addGroup" o = OptionContextAddGroupMethodInfo
     ResolveOptionContextMethod "addMainEntries" o = OptionContextAddMainEntriesMethodInfo
     ResolveOptionContextMethod "free" o = OptionContextFreeMethodInfo
+    ResolveOptionContextMethod "parse" o = OptionContextParseMethodInfo
     ResolveOptionContextMethod "parseStrv" o = OptionContextParseStrvMethodInfo
     ResolveOptionContextMethod "getDescription" o = OptionContextGetDescriptionMethodInfo
     ResolveOptionContextMethod "getHelp" o = OptionContextGetHelpMethodInfo
diff --git a/GI/GLib/Structs/OptionContext.hs-boot b/GI/GLib/Structs/OptionContext.hs-boot
--- a/GI/GLib/Structs/OptionContext.hs-boot
+++ b/GI/GLib/Structs/OptionContext.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.OptionContext 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
@@ -18,6 +18,7 @@
 data OptionContextGetMainGroupMethodInfo
 data OptionContextGetStrictPosixMethodInfo
 data OptionContextGetSummaryMethodInfo
+data OptionContextParseMethodInfo
 data OptionContextParseStrvMethodInfo
 data OptionContextSetDescriptionMethodInfo
 data OptionContextSetHelpEnabledMethodInfo
diff --git a/GI/GLib/Structs/OptionEntry.hs b/GI/GLib/Structs/OptionEntry.hs
--- a/GI/GLib/Structs/OptionEntry.hs
+++ b/GI/GLib/Structs/OptionEntry.hs
@@ -21,40 +21,58 @@
 
  -- * Properties
 -- ** Arg
+    optionEntryArg                          ,
     optionEntryReadArg                      ,
+    optionEntryWriteArg                     ,
 
 
 -- ** ArgData
+    optionEntryArgData                      ,
+    optionEntryClearArgData                 ,
     optionEntryReadArgData                  ,
+    optionEntryWriteArgData                 ,
 
 
 -- ** ArgDescription
+    optionEntryArgDescription               ,
+    optionEntryClearArgDescription          ,
     optionEntryReadArgDescription           ,
+    optionEntryWriteArgDescription          ,
 
 
 -- ** Description
+    optionEntryClearDescription             ,
+    optionEntryDescription                  ,
     optionEntryReadDescription              ,
+    optionEntryWriteDescription             ,
 
 
 -- ** Flags
+    optionEntryFlags                        ,
     optionEntryReadFlags                    ,
+    optionEntryWriteFlags                   ,
 
 
 -- ** LongName
+    optionEntryClearLongName                ,
+    optionEntryLongName                     ,
     optionEntryReadLongName                 ,
+    optionEntryWriteLongName                ,
 
 
 -- ** ShortName
     optionEntryReadShortName                ,
+    optionEntryShortName                    ,
+    optionEntryWriteShortName               ,
 
 
 
 
     ) 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
@@ -67,47 +85,221 @@
 newZeroOptionEntry :: MonadIO m => m OptionEntry
 newZeroOptionEntry = liftIO $ callocBytes 48 >>= wrapPtr OptionEntry
 
+instance tag ~ 'AttrSet => Constructible OptionEntry tag where
+    new _ attrs = do
+        o <- newZeroOptionEntry
+        GI.Attributes.set o attrs
+        return o
+
+
 noOptionEntry :: Maybe OptionEntry
 noOptionEntry = Nothing
 
-optionEntryReadLongName :: OptionEntry -> IO T.Text
-optionEntryReadLongName s = withManagedPtr s $ \ptr -> do
+optionEntryReadLongName :: MonadIO m => OptionEntry -> m (Maybe T.Text)
+optionEntryReadLongName 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
 
-optionEntryReadShortName :: OptionEntry -> IO Int8
-optionEntryReadShortName s = withManagedPtr s $ \ptr -> do
+optionEntryWriteLongName :: MonadIO m => OptionEntry -> CString -> m ()
+optionEntryWriteLongName s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+optionEntryClearLongName :: MonadIO m => OptionEntry -> m ()
+optionEntryClearLongName s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data OptionEntryLongNameFieldInfo
+instance AttrInfo OptionEntryLongNameFieldInfo where
+    type AttrAllowedOps OptionEntryLongNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint OptionEntryLongNameFieldInfo = (~) CString
+    type AttrBaseTypeConstraint OptionEntryLongNameFieldInfo = (~) OptionEntry
+    type AttrGetType OptionEntryLongNameFieldInfo = Maybe T.Text
+    type AttrLabel OptionEntryLongNameFieldInfo = "long_name"
+    attrGet _ = optionEntryReadLongName
+    attrSet _ = optionEntryWriteLongName
+    attrConstruct = undefined
+    attrClear _ = optionEntryClearLongName
+
+optionEntryLongName :: AttrLabelProxy "longName"
+optionEntryLongName = AttrLabelProxy
+
+
+optionEntryReadShortName :: MonadIO m => OptionEntry -> m Int8
+optionEntryReadShortName s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Int8
     return val
 
-optionEntryReadFlags :: OptionEntry -> IO Int32
-optionEntryReadFlags s = withManagedPtr s $ \ptr -> do
+optionEntryWriteShortName :: MonadIO m => OptionEntry -> Int8 -> m ()
+optionEntryWriteShortName s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Int8)
+
+data OptionEntryShortNameFieldInfo
+instance AttrInfo OptionEntryShortNameFieldInfo where
+    type AttrAllowedOps OptionEntryShortNameFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint OptionEntryShortNameFieldInfo = (~) Int8
+    type AttrBaseTypeConstraint OptionEntryShortNameFieldInfo = (~) OptionEntry
+    type AttrGetType OptionEntryShortNameFieldInfo = Int8
+    type AttrLabel OptionEntryShortNameFieldInfo = "short_name"
+    attrGet _ = optionEntryReadShortName
+    attrSet _ = optionEntryWriteShortName
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+optionEntryShortName :: AttrLabelProxy "shortName"
+optionEntryShortName = AttrLabelProxy
+
+
+optionEntryReadFlags :: MonadIO m => OptionEntry -> m Int32
+optionEntryReadFlags s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 12) :: IO Int32
     return val
 
-optionEntryReadArg :: OptionEntry -> IO OptionArg
-optionEntryReadArg s = withManagedPtr s $ \ptr -> do
+optionEntryWriteFlags :: MonadIO m => OptionEntry -> Int32 -> m ()
+optionEntryWriteFlags s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 12) (val :: Int32)
+
+data OptionEntryFlagsFieldInfo
+instance AttrInfo OptionEntryFlagsFieldInfo where
+    type AttrAllowedOps OptionEntryFlagsFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint OptionEntryFlagsFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint OptionEntryFlagsFieldInfo = (~) OptionEntry
+    type AttrGetType OptionEntryFlagsFieldInfo = Int32
+    type AttrLabel OptionEntryFlagsFieldInfo = "flags"
+    attrGet _ = optionEntryReadFlags
+    attrSet _ = optionEntryWriteFlags
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+optionEntryFlags :: AttrLabelProxy "flags"
+optionEntryFlags = AttrLabelProxy
+
+
+optionEntryReadArg :: MonadIO m => OptionEntry -> m OptionArg
+optionEntryReadArg s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-optionEntryReadArgData :: OptionEntry -> IO (Ptr ())
-optionEntryReadArgData s = withManagedPtr s $ \ptr -> do
+optionEntryWriteArg :: MonadIO m => OptionEntry -> OptionArg -> m ()
+optionEntryWriteArg s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 16) (val' :: CUInt)
+
+data OptionEntryArgFieldInfo
+instance AttrInfo OptionEntryArgFieldInfo where
+    type AttrAllowedOps OptionEntryArgFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint OptionEntryArgFieldInfo = (~) OptionArg
+    type AttrBaseTypeConstraint OptionEntryArgFieldInfo = (~) OptionEntry
+    type AttrGetType OptionEntryArgFieldInfo = OptionArg
+    type AttrLabel OptionEntryArgFieldInfo = "arg"
+    attrGet _ = optionEntryReadArg
+    attrSet _ = optionEntryWriteArg
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+optionEntryArg :: AttrLabelProxy "arg"
+optionEntryArg = AttrLabelProxy
+
+
+optionEntryReadArgData :: MonadIO m => OptionEntry -> m (Ptr ())
+optionEntryReadArgData s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO (Ptr ())
     return val
 
-optionEntryReadDescription :: OptionEntry -> IO T.Text
-optionEntryReadDescription s = withManagedPtr s $ \ptr -> do
+optionEntryWriteArgData :: MonadIO m => OptionEntry -> Ptr () -> m ()
+optionEntryWriteArgData s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: Ptr ())
+
+optionEntryClearArgData :: MonadIO m => OptionEntry -> m ()
+optionEntryClearArgData s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: Ptr ())
+
+data OptionEntryArgDataFieldInfo
+instance AttrInfo OptionEntryArgDataFieldInfo where
+    type AttrAllowedOps OptionEntryArgDataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint OptionEntryArgDataFieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint OptionEntryArgDataFieldInfo = (~) OptionEntry
+    type AttrGetType OptionEntryArgDataFieldInfo = Ptr ()
+    type AttrLabel OptionEntryArgDataFieldInfo = "arg_data"
+    attrGet _ = optionEntryReadArgData
+    attrSet _ = optionEntryWriteArgData
+    attrConstruct = undefined
+    attrClear _ = optionEntryClearArgData
+
+optionEntryArgData :: AttrLabelProxy "argData"
+optionEntryArgData = AttrLabelProxy
+
+
+optionEntryReadDescription :: MonadIO m => OptionEntry -> m (Maybe T.Text)
+optionEntryReadDescription s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO CString
-    val' <- cstringToText val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- cstringToText val'
+        return val''
+    return result
 
-optionEntryReadArgDescription :: OptionEntry -> IO T.Text
-optionEntryReadArgDescription s = withManagedPtr s $ \ptr -> do
+optionEntryWriteDescription :: MonadIO m => OptionEntry -> CString -> m ()
+optionEntryWriteDescription s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: CString)
+
+optionEntryClearDescription :: MonadIO m => OptionEntry -> m ()
+optionEntryClearDescription s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (nullPtr :: CString)
+
+data OptionEntryDescriptionFieldInfo
+instance AttrInfo OptionEntryDescriptionFieldInfo where
+    type AttrAllowedOps OptionEntryDescriptionFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint OptionEntryDescriptionFieldInfo = (~) CString
+    type AttrBaseTypeConstraint OptionEntryDescriptionFieldInfo = (~) OptionEntry
+    type AttrGetType OptionEntryDescriptionFieldInfo = Maybe T.Text
+    type AttrLabel OptionEntryDescriptionFieldInfo = "description"
+    attrGet _ = optionEntryReadDescription
+    attrSet _ = optionEntryWriteDescription
+    attrConstruct = undefined
+    attrClear _ = optionEntryClearDescription
+
+optionEntryDescription :: AttrLabelProxy "description"
+optionEntryDescription = AttrLabelProxy
+
+
+optionEntryReadArgDescription :: MonadIO m => OptionEntry -> m (Maybe T.Text)
+optionEntryReadArgDescription 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
+
+optionEntryWriteArgDescription :: MonadIO m => OptionEntry -> CString -> m ()
+optionEntryWriteArgDescription s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 40) (val :: CString)
+
+optionEntryClearArgDescription :: MonadIO m => OptionEntry -> m ()
+optionEntryClearArgDescription s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 40) (nullPtr :: CString)
+
+data OptionEntryArgDescriptionFieldInfo
+instance AttrInfo OptionEntryArgDescriptionFieldInfo where
+    type AttrAllowedOps OptionEntryArgDescriptionFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint OptionEntryArgDescriptionFieldInfo = (~) CString
+    type AttrBaseTypeConstraint OptionEntryArgDescriptionFieldInfo = (~) OptionEntry
+    type AttrGetType OptionEntryArgDescriptionFieldInfo = Maybe T.Text
+    type AttrLabel OptionEntryArgDescriptionFieldInfo = "arg_description"
+    attrGet _ = optionEntryReadArgDescription
+    attrSet _ = optionEntryWriteArgDescription
+    attrConstruct = undefined
+    attrClear _ = optionEntryClearArgDescription
+
+optionEntryArgDescription :: AttrLabelProxy "argDescription"
+optionEntryArgDescription = AttrLabelProxy
+
+
+
+type instance AttributeList OptionEntry = OptionEntryAttributeList
+type OptionEntryAttributeList = ('[ '("longName", OptionEntryLongNameFieldInfo), '("shortName", OptionEntryShortNameFieldInfo), '("flags", OptionEntryFlagsFieldInfo), '("arg", OptionEntryArgFieldInfo), '("argData", OptionEntryArgDataFieldInfo), '("description", OptionEntryDescriptionFieldInfo), '("argDescription", OptionEntryArgDescriptionFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveOptionEntryMethod (t :: Symbol) (o :: *) :: * where
     ResolveOptionEntryMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/OptionEntry.hs-boot b/GI/GLib/Structs/OptionEntry.hs-boot
--- a/GI/GLib/Structs/OptionEntry.hs-boot
+++ b/GI/GLib/Structs/OptionEntry.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.OptionEntry 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/GLib/Structs/OptionGroup.hs b/GI/GLib/Structs/OptionGroup.hs
--- a/GI/GLib/Structs/OptionGroup.hs
+++ b/GI/GLib/Structs/OptionGroup.hs
@@ -61,9 +61,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
@@ -81,11 +81,15 @@
 noOptionGroup :: Maybe OptionGroup
 noOptionGroup = Nothing
 
+
+type instance AttributeList OptionGroup = OptionGroupAttributeList
+type OptionGroupAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method OptionGroup::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 = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "help_description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, 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 = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "help_description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "OptionGroup"
+-- returnType : Just (TInterface "GLib" "OptionGroup")
 -- throws : False
 -- Skip return : False
 
@@ -93,7 +97,7 @@
     CString ->                              -- name : TBasicType TUTF8
     CString ->                              -- description : TBasicType TUTF8
     CString ->                              -- help_description : TBasicType TUTF8
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     FunPtr DestroyNotifyC ->                -- destroy : TInterface "GLib" "DestroyNotify"
     IO (Ptr OptionGroup)
 
@@ -103,17 +107,13 @@
     T.Text                                  -- name
     -> T.Text                               -- description
     -> T.Text                               -- helpDescription
-    -> Maybe (Ptr ())                       -- userData
+    -> Ptr ()                               -- userData
     -> Maybe (DestroyNotify)                -- destroy
     -> m OptionGroup                        -- result
 optionGroupNew name description helpDescription userData destroy = liftIO $ do
     name' <- textToCString name
     description' <- textToCString description
     helpDescription' <- textToCString helpDescription
-    maybeUserData <- case userData of
-        Nothing -> return nullPtr
-        Just jUserData -> do
-            return jUserData
     ptrdestroy <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
     maybeDestroy <- case destroy of
         Nothing -> return (castPtrToFunPtr nullPtr)
@@ -121,7 +121,7 @@
             jDestroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroy) jDestroy)
             poke ptrdestroy jDestroy'
             return jDestroy'
-    result <- g_option_group_new name' description' helpDescription' maybeUserData maybeDestroy
+    result <- g_option_group_new name' description' helpDescription' userData maybeDestroy
     checkUnexpectedReturnNULL "g_option_group_new" result
     result' <- (wrapBoxed OptionGroup) result
     freeMem name'
@@ -133,7 +133,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "entries", argType = TInterface "GLib" "OptionEntry", 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
 
@@ -164,7 +164,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", 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
 
@@ -191,7 +191,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "OptionGroup"
+-- returnType : Just (TInterface "GLib" "OptionGroup")
 -- throws : False
 -- Skip return : False
 
@@ -218,16 +218,16 @@
 
 -- method OptionGroup::set_translate_func
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "TranslateFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "TranslateFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_option_group_set_translate_func" g_option_group_set_translate_func :: 
     Ptr OptionGroup ->                      -- _obj : TInterface "GLib" "OptionGroup"
     FunPtr TranslateFuncC ->                -- func : TInterface "GLib" "TranslateFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     FunPtr DestroyNotifyC ->                -- destroy_notify : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -258,7 +258,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", 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
 
@@ -289,7 +289,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", 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/GLib/Structs/OptionGroup.hs-boot b/GI/GLib/Structs/OptionGroup.hs-boot
--- a/GI/GLib/Structs/OptionGroup.hs-boot
+++ b/GI/GLib/Structs/OptionGroup.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.OptionGroup 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/GLib/Structs/PatternSpec.hs b/GI/GLib/Structs/PatternSpec.hs
--- a/GI/GLib/Structs/PatternSpec.hs
+++ b/GI/GLib/Structs/PatternSpec.hs
@@ -32,9 +32,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
@@ -46,11 +46,15 @@
 noPatternSpec :: Maybe PatternSpec
 noPatternSpec = Nothing
 
+
+type instance AttributeList PatternSpec = PatternSpecAttributeList
+type PatternSpecAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method PatternSpec::equal
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pspec2", argType = TInterface "GLib" "PatternSpec", 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
 
@@ -82,7 +86,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "PatternSpec", 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/GLib/Structs/PatternSpec.hs-boot b/GI/GLib/Structs/PatternSpec.hs-boot
--- a/GI/GLib/Structs/PatternSpec.hs-boot
+++ b/GI/GLib/Structs/PatternSpec.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.PatternSpec 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/GLib/Structs/PollFD.hs b/GI/GLib/Structs/PollFD.hs
--- a/GI/GLib/Structs/PollFD.hs
+++ b/GI/GLib/Structs/PollFD.hs
@@ -20,24 +20,30 @@
 
  -- * Properties
 -- ** Events
+    pollFDEvents                            ,
     pollFDReadEvents                        ,
+    pollFDWriteEvents                       ,
 
 
 -- ** Fd
+    pollFDFd                                ,
     pollFDReadFd                            ,
+    pollFDWriteFd                           ,
 
 
 -- ** Revents
     pollFDReadRevents                       ,
+    pollFDRevents                           ,
+    pollFDWriteRevents                      ,
 
 
 
 
     ) 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
@@ -56,23 +62,94 @@
 newZeroPollFD :: MonadIO m => m PollFD
 newZeroPollFD = liftIO $ callocBoxedBytes 8 >>= wrapBoxed PollFD
 
+instance tag ~ 'AttrSet => Constructible PollFD tag where
+    new _ attrs = do
+        o <- newZeroPollFD
+        GI.Attributes.set o attrs
+        return o
+
+
 noPollFD :: Maybe PollFD
 noPollFD = Nothing
 
-pollFDReadFd :: PollFD -> IO Int32
-pollFDReadFd s = withManagedPtr s $ \ptr -> do
+pollFDReadFd :: MonadIO m => PollFD -> m Int32
+pollFDReadFd s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Int32
     return val
 
-pollFDReadEvents :: PollFD -> IO Word16
-pollFDReadEvents s = withManagedPtr s $ \ptr -> do
+pollFDWriteFd :: MonadIO m => PollFD -> Int32 -> m ()
+pollFDWriteFd s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Int32)
+
+data PollFDFdFieldInfo
+instance AttrInfo PollFDFdFieldInfo where
+    type AttrAllowedOps PollFDFdFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PollFDFdFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint PollFDFdFieldInfo = (~) PollFD
+    type AttrGetType PollFDFdFieldInfo = Int32
+    type AttrLabel PollFDFdFieldInfo = "fd"
+    attrGet _ = pollFDReadFd
+    attrSet _ = pollFDWriteFd
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pollFDFd :: AttrLabelProxy "fd"
+pollFDFd = AttrLabelProxy
+
+
+pollFDReadEvents :: MonadIO m => PollFD -> m Word16
+pollFDReadEvents s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO Word16
     return val
 
-pollFDReadRevents :: PollFD -> IO Word16
-pollFDReadRevents s = withManagedPtr s $ \ptr -> do
+pollFDWriteEvents :: MonadIO m => PollFD -> Word16 -> m ()
+pollFDWriteEvents s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 4) (val :: Word16)
+
+data PollFDEventsFieldInfo
+instance AttrInfo PollFDEventsFieldInfo where
+    type AttrAllowedOps PollFDEventsFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PollFDEventsFieldInfo = (~) Word16
+    type AttrBaseTypeConstraint PollFDEventsFieldInfo = (~) PollFD
+    type AttrGetType PollFDEventsFieldInfo = Word16
+    type AttrLabel PollFDEventsFieldInfo = "events"
+    attrGet _ = pollFDReadEvents
+    attrSet _ = pollFDWriteEvents
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pollFDEvents :: AttrLabelProxy "events"
+pollFDEvents = AttrLabelProxy
+
+
+pollFDReadRevents :: MonadIO m => PollFD -> m Word16
+pollFDReadRevents s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 6) :: IO Word16
     return val
+
+pollFDWriteRevents :: MonadIO m => PollFD -> Word16 -> m ()
+pollFDWriteRevents s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 6) (val :: Word16)
+
+data PollFDReventsFieldInfo
+instance AttrInfo PollFDReventsFieldInfo where
+    type AttrAllowedOps PollFDReventsFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PollFDReventsFieldInfo = (~) Word16
+    type AttrBaseTypeConstraint PollFDReventsFieldInfo = (~) PollFD
+    type AttrGetType PollFDReventsFieldInfo = Word16
+    type AttrLabel PollFDReventsFieldInfo = "revents"
+    attrGet _ = pollFDReadRevents
+    attrSet _ = pollFDWriteRevents
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pollFDRevents :: AttrLabelProxy "revents"
+pollFDRevents = AttrLabelProxy
+
+
+
+type instance AttributeList PollFD = PollFDAttributeList
+type PollFDAttributeList = ('[ '("fd", PollFDFdFieldInfo), '("events", PollFDEventsFieldInfo), '("revents", PollFDReventsFieldInfo)] :: [(Symbol, *)])
 
 type family ResolvePollFDMethod (t :: Symbol) (o :: *) :: * where
     ResolvePollFDMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/PollFD.hs-boot b/GI/GLib/Structs/PollFD.hs-boot
--- a/GI/GLib/Structs/PollFD.hs-boot
+++ b/GI/GLib/Structs/PollFD.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.PollFD 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/GLib/Structs/PtrArray.hs b/GI/GLib/Structs/PtrArray.hs
--- a/GI/GLib/Structs/PtrArray.hs
+++ b/GI/GLib/Structs/PtrArray.hs
@@ -19,20 +19,25 @@
 
  -- * Properties
 -- ** Len
+    ptrArrayLen                             ,
     ptrArrayReadLen                         ,
+    ptrArrayWriteLen                        ,
 
 
 -- ** Pdata
+    ptrArrayClearPdata                      ,
+    ptrArrayPdata                           ,
     ptrArrayReadPdata                       ,
+    ptrArrayWritePdata                      ,
 
 
 
 
     ) 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,18 +56,73 @@
 newZeroPtrArray :: MonadIO m => m PtrArray
 newZeroPtrArray = liftIO $ callocBoxedBytes 16 >>= wrapBoxed PtrArray
 
+instance tag ~ 'AttrSet => Constructible PtrArray tag where
+    new _ attrs = do
+        o <- newZeroPtrArray
+        GI.Attributes.set o attrs
+        return o
+
+
 noPtrArray :: Maybe PtrArray
 noPtrArray = Nothing
 
-ptrArrayReadPdata :: PtrArray -> IO (Ptr ())
-ptrArrayReadPdata s = withManagedPtr s $ \ptr -> do
+ptrArrayReadPdata :: MonadIO m => PtrArray -> m (Ptr ())
+ptrArrayReadPdata s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
     return val
 
-ptrArrayReadLen :: PtrArray -> IO Word32
-ptrArrayReadLen s = withManagedPtr s $ \ptr -> do
+ptrArrayWritePdata :: MonadIO m => PtrArray -> Ptr () -> m ()
+ptrArrayWritePdata s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ())
+
+ptrArrayClearPdata :: MonadIO m => PtrArray -> m ()
+ptrArrayClearPdata s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ())
+
+data PtrArrayPdataFieldInfo
+instance AttrInfo PtrArrayPdataFieldInfo where
+    type AttrAllowedOps PtrArrayPdataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint PtrArrayPdataFieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint PtrArrayPdataFieldInfo = (~) PtrArray
+    type AttrGetType PtrArrayPdataFieldInfo = Ptr ()
+    type AttrLabel PtrArrayPdataFieldInfo = "pdata"
+    attrGet _ = ptrArrayReadPdata
+    attrSet _ = ptrArrayWritePdata
+    attrConstruct = undefined
+    attrClear _ = ptrArrayClearPdata
+
+ptrArrayPdata :: AttrLabelProxy "pdata"
+ptrArrayPdata = AttrLabelProxy
+
+
+ptrArrayReadLen :: MonadIO m => PtrArray -> m Word32
+ptrArrayReadLen s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word32
     return val
+
+ptrArrayWriteLen :: MonadIO m => PtrArray -> Word32 -> m ()
+ptrArrayWriteLen s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Word32)
+
+data PtrArrayLenFieldInfo
+instance AttrInfo PtrArrayLenFieldInfo where
+    type AttrAllowedOps PtrArrayLenFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PtrArrayLenFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint PtrArrayLenFieldInfo = (~) PtrArray
+    type AttrGetType PtrArrayLenFieldInfo = Word32
+    type AttrLabel PtrArrayLenFieldInfo = "len"
+    attrGet _ = ptrArrayReadLen
+    attrSet _ = ptrArrayWriteLen
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+ptrArrayLen :: AttrLabelProxy "len"
+ptrArrayLen = AttrLabelProxy
+
+
+
+type instance AttributeList PtrArray = PtrArrayAttributeList
+type PtrArrayAttributeList = ('[ '("pdata", PtrArrayPdataFieldInfo), '("len", PtrArrayLenFieldInfo)] :: [(Symbol, *)])
 
 type family ResolvePtrArrayMethod (t :: Symbol) (o :: *) :: * where
     ResolvePtrArrayMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/PtrArray.hs-boot b/GI/GLib/Structs/PtrArray.hs-boot
--- a/GI/GLib/Structs/PtrArray.hs-boot
+++ b/GI/GLib/Structs/PtrArray.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.PtrArray 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/GLib/Structs/Queue.hs b/GI/GLib/Structs/Queue.hs
--- a/GI/GLib/Structs/Queue.hs
+++ b/GI/GLib/Structs/Queue.hs
@@ -88,24 +88,32 @@
 
  -- * Properties
 -- ** Head
+    queueClearHead                          ,
+    queueHead                               ,
     queueReadHead                           ,
+    queueWriteHead                          ,
 
 
 -- ** Length
+    queueLength                             ,
     queueReadLength                         ,
+    queueWriteLength                        ,
 
 
 -- ** Tail
+    queueClearTail                          ,
     queueReadTail                           ,
+    queueTail                               ,
+    queueWriteTail                          ,
 
 
 
 
     ) 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
@@ -118,31 +126,110 @@
 newZeroQueue :: MonadIO m => m Queue
 newZeroQueue = liftIO $ callocBytes 24 >>= wrapPtr Queue
 
+instance tag ~ 'AttrSet => Constructible Queue tag where
+    new _ attrs = do
+        o <- newZeroQueue
+        GI.Attributes.set o attrs
+        return o
+
+
 noQueue :: Maybe Queue
 noQueue = Nothing
 
-queueReadHead :: Queue -> IO ([Ptr ()])
-queueReadHead s = withManagedPtr s $ \ptr -> do
+queueReadHead :: MonadIO m => Queue -> m ([Ptr ()])
+queueReadHead s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr (GList (Ptr ())))
     val' <- unpackGList val
     return val'
 
-queueReadTail :: Queue -> IO ([Ptr ()])
-queueReadTail s = withManagedPtr s $ \ptr -> do
+queueWriteHead :: MonadIO m => Queue -> Ptr (GList (Ptr ())) -> m ()
+queueWriteHead s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr (GList (Ptr ())))
+
+queueClearHead :: MonadIO m => Queue -> m ()
+queueClearHead s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr (GList (Ptr ())))
+
+data QueueHeadFieldInfo
+instance AttrInfo QueueHeadFieldInfo where
+    type AttrAllowedOps QueueHeadFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint QueueHeadFieldInfo = (~) (Ptr (GList (Ptr ())))
+    type AttrBaseTypeConstraint QueueHeadFieldInfo = (~) Queue
+    type AttrGetType QueueHeadFieldInfo = [Ptr ()]
+    type AttrLabel QueueHeadFieldInfo = "head"
+    attrGet _ = queueReadHead
+    attrSet _ = queueWriteHead
+    attrConstruct = undefined
+    attrClear _ = queueClearHead
+
+queueHead :: AttrLabelProxy "head"
+queueHead = AttrLabelProxy
+
+
+queueReadTail :: MonadIO m => Queue -> m ([Ptr ()])
+queueReadTail s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO (Ptr (GList (Ptr ())))
     val' <- unpackGList val
     return val'
 
-queueReadLength :: Queue -> IO Word32
-queueReadLength s = withManagedPtr s $ \ptr -> do
+queueWriteTail :: MonadIO m => Queue -> Ptr (GList (Ptr ())) -> m ()
+queueWriteTail s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Ptr (GList (Ptr ())))
+
+queueClearTail :: MonadIO m => Queue -> m ()
+queueClearTail s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: Ptr (GList (Ptr ())))
+
+data QueueTailFieldInfo
+instance AttrInfo QueueTailFieldInfo where
+    type AttrAllowedOps QueueTailFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint QueueTailFieldInfo = (~) (Ptr (GList (Ptr ())))
+    type AttrBaseTypeConstraint QueueTailFieldInfo = (~) Queue
+    type AttrGetType QueueTailFieldInfo = [Ptr ()]
+    type AttrLabel QueueTailFieldInfo = "tail"
+    attrGet _ = queueReadTail
+    attrSet _ = queueWriteTail
+    attrConstruct = undefined
+    attrClear _ = queueClearTail
+
+queueTail :: AttrLabelProxy "tail"
+queueTail = AttrLabelProxy
+
+
+queueReadLength :: MonadIO m => Queue -> m Word32
+queueReadLength s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO Word32
     return val
 
+queueWriteLength :: MonadIO m => Queue -> Word32 -> m ()
+queueWriteLength s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Word32)
+
+data QueueLengthFieldInfo
+instance AttrInfo QueueLengthFieldInfo where
+    type AttrAllowedOps QueueLengthFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint QueueLengthFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint QueueLengthFieldInfo = (~) Queue
+    type AttrGetType QueueLengthFieldInfo = Word32
+    type AttrLabel QueueLengthFieldInfo = "length"
+    attrGet _ = queueReadLength
+    attrSet _ = queueWriteLength
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+queueLength :: AttrLabelProxy "length"
+queueLength = AttrLabelProxy
+
+
+
+type instance AttributeList Queue = QueueAttributeList
+type QueueAttributeList = ('[ '("head", QueueHeadFieldInfo), '("tail", QueueTailFieldInfo), '("length", QueueLengthFieldInfo)] :: [(Symbol, *)])
+
 -- method Queue::clear
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", 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
 
@@ -169,7 +256,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -196,7 +283,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "free_func", 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
 
@@ -228,7 +315,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", 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
 
@@ -253,15 +340,15 @@
 
 -- method Queue::index
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_queue_index" g_queue_index :: 
     Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO Int32
 
 
@@ -284,7 +371,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", 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
 
@@ -311,7 +398,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", 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
 
@@ -337,15 +424,15 @@
 
 -- method Queue::push_head
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_queue_push_head" g_queue_push_head :: 
     Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO ()
 
 
@@ -366,16 +453,16 @@
 
 -- method Queue::push_nth
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", 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 "g_queue_push_nth" g_queue_push_nth :: 
     Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
-    Ptr () ->                               -- data : TBasicType TVoid
-    Int32 ->                                -- n : TBasicType TInt32
+    Ptr () ->                               -- data : TBasicType TPtr
+    Int32 ->                                -- n : TBasicType TInt
     IO ()
 
 
@@ -397,15 +484,15 @@
 
 -- method Queue::push_tail
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_queue_push_tail" g_queue_push_tail :: 
     Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO ()
 
 
@@ -426,15 +513,15 @@
 
 -- method Queue::remove
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_queue_remove" g_queue_remove :: 
     Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO CInt
 
 
@@ -456,15 +543,15 @@
 
 -- method Queue::remove_all
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_queue_remove_all" g_queue_remove_all :: 
     Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO Word32
 
 
@@ -487,7 +574,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", 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/GLib/Structs/Queue.hs-boot b/GI/GLib/Structs/Queue.hs-boot
--- a/GI/GLib/Structs/Queue.hs-boot
+++ b/GI/GLib/Structs/Queue.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Queue 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/GLib/Structs/RWLock.hs b/GI/GLib/Structs/RWLock.hs
--- a/GI/GLib/Structs/RWLock.hs
+++ b/GI/GLib/Structs/RWLock.hs
@@ -120,9 +120,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
@@ -135,14 +135,25 @@
 newZeroRWLock :: MonadIO m => m RWLock
 newZeroRWLock = liftIO $ callocBytes 16 >>= wrapPtr RWLock
 
+instance tag ~ 'AttrSet => Constructible RWLock tag where
+    new _ attrs = do
+        o <- newZeroRWLock
+        GI.Attributes.set o attrs
+        return o
+
+
 noRWLock :: Maybe RWLock
 noRWLock = Nothing
 
+
+type instance AttributeList RWLock = RWLockAttributeList
+type RWLockAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method RWLock::clear
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", 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
 
@@ -169,7 +180,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -196,7 +207,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", 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
 
@@ -223,7 +234,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", 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
 
@@ -251,7 +262,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -278,7 +289,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", 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,7 +316,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", 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
 
@@ -333,7 +344,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", 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/GLib/Structs/RWLock.hs-boot b/GI/GLib/Structs/RWLock.hs-boot
--- a/GI/GLib/Structs/RWLock.hs-boot
+++ b/GI/GLib/Structs/RWLock.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.RWLock 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/GLib/Structs/Rand.hs b/GI/GLib/Structs/Rand.hs
--- a/GI/GLib/Structs/Rand.hs
+++ b/GI/GLib/Structs/Rand.hs
@@ -57,9 +57,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
@@ -71,11 +71,15 @@
 noRand :: Maybe Rand
 noRand = Nothing
 
+
+type instance AttributeList Rand = RandAttributeList
+type RandAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Rand::double
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TDouble
+-- returnType : Just (TBasicType TDouble)
 -- throws : False
 -- Skip return : False
 
@@ -103,7 +107,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "begin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TDouble
+-- returnType : Just (TBasicType TDouble)
 -- throws : False
 -- Skip return : False
 
@@ -137,7 +141,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", 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
 
@@ -164,7 +168,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt32)
 -- throws : False
 -- Skip return : False
 
@@ -191,7 +195,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt32)
 -- throws : False
 -- Skip return : False
 
@@ -222,7 +226,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seed", argType = TBasicType TUInt32, 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
 
@@ -249,16 +253,16 @@
 
 -- method Rand::set_seed_array
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seed_length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seed_length", 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 "g_rand_set_seed_array" g_rand_set_seed_array :: 
     Ptr Rand ->                             -- _obj : TInterface "GLib" "Rand"
     Word32 ->                               -- seed : TBasicType TUInt32
-    Word32 ->                               -- seed_length : TBasicType TUInt32
+    Word32 ->                               -- seed_length : TBasicType TUInt
     IO ()
 
 
diff --git a/GI/GLib/Structs/Rand.hs-boot b/GI/GLib/Structs/Rand.hs-boot
--- a/GI/GLib/Structs/Rand.hs-boot
+++ b/GI/GLib/Structs/Rand.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Rand 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/GLib/Structs/RecMutex.hs b/GI/GLib/Structs/RecMutex.hs
--- a/GI/GLib/Structs/RecMutex.hs
+++ b/GI/GLib/Structs/RecMutex.hs
@@ -58,9 +58,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
@@ -73,14 +73,25 @@
 newZeroRecMutex :: MonadIO m => m RecMutex
 newZeroRecMutex = liftIO $ callocBytes 16 >>= wrapPtr RecMutex
 
+instance tag ~ 'AttrSet => Constructible RecMutex tag where
+    new _ attrs = do
+        o <- newZeroRecMutex
+        GI.Attributes.set o attrs
+        return o
+
+
 noRecMutex :: Maybe RecMutex
 noRecMutex = Nothing
 
+
+type instance AttributeList RecMutex = RecMutexAttributeList
+type RecMutexAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method RecMutex::clear
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RecMutex", 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
 
@@ -107,7 +118,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RecMutex", 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
 
@@ -134,7 +145,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RecMutex", 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
 
@@ -161,7 +172,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RecMutex", 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
 
@@ -189,7 +200,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RecMutex", 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/GLib/Structs/RecMutex.hs-boot b/GI/GLib/Structs/RecMutex.hs-boot
--- a/GI/GLib/Structs/RecMutex.hs-boot
+++ b/GI/GLib/Structs/RecMutex.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.RecMutex 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/GLib/Structs/Regex.hs b/GI/GLib/Structs/Regex.hs
--- a/GI/GLib/Structs/Regex.hs
+++ b/GI/GLib/Structs/Regex.hs
@@ -203,9 +203,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
@@ -223,11 +223,15 @@
 noRegex :: Maybe Regex
 noRegex = Nothing
 
+
+type instance AttributeList Regex = RegexAttributeList
+type RegexAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Regex::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Regex"
+-- returnType : Just (TInterface "GLib" "Regex")
 -- throws : True
 -- Skip return : False
 
@@ -263,7 +267,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", 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
 
@@ -290,7 +294,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "RegexCompileFlags"
+-- returnType : Just (TInterface "GLib" "RegexCompileFlags")
 -- throws : False
 -- Skip return : False
 
@@ -318,7 +322,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", 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
 
@@ -346,7 +350,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "RegexMatchFlags"
+-- returnType : Just (TInterface "GLib" "RegexMatchFlags")
 -- throws : False
 -- Skip return : False
 
@@ -374,7 +378,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", 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
 
@@ -401,7 +405,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", 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
 
@@ -428,7 +432,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", 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
 
@@ -457,7 +461,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", 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 TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -488,7 +492,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_info", argType = TInterface "GLib" "MatchInfo", 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
 
@@ -528,7 +532,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_info", argType = TInterface "GLib" "MatchInfo", 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
 
@@ -566,9 +570,9 @@
 
 -- method Regex::match_all_full
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : [Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -576,7 +580,7 @@
     Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
     Ptr CString ->                          -- string : TCArray False (-1) 2 (TBasicType TUTF8)
     Int64 ->                                -- string_len : TBasicType TInt64
-    Int32 ->                                -- start_position : TBasicType TInt32
+    Int32 ->                                -- start_position : TBasicType TInt
     CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
     Ptr (Ptr MatchInfo) ->                  -- match_info : TInterface "GLib" "MatchInfo"
     Ptr (Ptr GError) ->                     -- error
@@ -617,9 +621,9 @@
 
 -- method Regex::match_full
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : [Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -627,7 +631,7 @@
     Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
     Ptr CString ->                          -- string : TCArray False (-1) 2 (TBasicType TUTF8)
     Int64 ->                                -- string_len : TBasicType TInt64
-    Int32 ->                                -- start_position : TBasicType TInt32
+    Int32 ->                                -- start_position : TBasicType TInt
     CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
     Ptr (Ptr MatchInfo) ->                  -- match_info : TInterface "GLib" "MatchInfo"
     Ptr (Ptr GError) ->                     -- error
@@ -670,7 +674,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Regex"
+-- returnType : Just (TInterface "GLib" "Regex")
 -- throws : False
 -- Skip return : False
 
@@ -697,9 +701,9 @@
 
 -- method Regex::replace
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
 
@@ -707,7 +711,7 @@
     Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
     Ptr CString ->                          -- string : TCArray False (-1) 2 (TBasicType TUTF8)
     Int64 ->                                -- string_len : TBasicType TInt64
-    Int32 ->                                -- start_position : TBasicType TInt32
+    Int32 ->                                -- start_position : TBasicType TInt
     CString ->                              -- replacement : TBasicType TUTF8
     CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
     Ptr (Ptr GError) ->                     -- error
@@ -750,9 +754,9 @@
 
 -- method Regex::replace_literal
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
 
@@ -760,7 +764,7 @@
     Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
     Ptr CString ->                          -- string : TCArray False (-1) 2 (TBasicType TUTF8)
     Int64 ->                                -- string_len : TBasicType TInt64
-    Int32 ->                                -- start_position : TBasicType TInt32
+    Int32 ->                                -- start_position : TBasicType TInt
     CString ->                              -- replacement : TBasicType TUTF8
     CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
     Ptr (Ptr GError) ->                     -- error
@@ -805,7 +809,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
@@ -841,9 +845,9 @@
 
 -- method Regex::split_full
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_tokens", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_tokens", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : [Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
 -- throws : True
 -- Skip return : False
 
@@ -851,9 +855,9 @@
     Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
     Ptr CString ->                          -- string : TCArray False (-1) 2 (TBasicType TUTF8)
     Int64 ->                                -- string_len : TBasicType TInt64
-    Int32 ->                                -- start_position : TBasicType TInt32
+    Int32 ->                                -- start_position : TBasicType TInt
     CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
-    Int32 ->                                -- max_tokens : TBasicType TInt32
+    Int32 ->                                -- max_tokens : TBasicType TInt
     Ptr (Ptr GError) ->                     -- error
     IO (Ptr CString)
 
@@ -894,7 +898,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", 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
 
@@ -921,7 +925,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "has_references", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
@@ -955,7 +959,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt32)
 -- throws : False
 -- Skip return : False
 
@@ -972,15 +976,15 @@
 
 -- method Regex::escape_nul
 -- method type : MemberFunction
--- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_regex_escape_nul" g_regex_escape_nul :: 
     CString ->                              -- string : TBasicType TUTF8
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     IO CString
 
 
@@ -1000,15 +1004,15 @@
 
 -- method Regex::escape_string
 -- method type : MemberFunction
--- Args : [Arg {argCName = "string", argType = TCArray False (-1) 1 (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}]
--- Lengths : [Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
+-- Args : [Arg {argCName = "string", argType = TCArray False (-1) 1 (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}]
+-- Lengths : [Arg {argCName = "length", 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 "g_regex_escape_string" g_regex_escape_string :: 
     Ptr CString ->                          -- string : TCArray False (-1) 1 (TBasicType TUTF8)
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     IO CString
 
 
@@ -1031,7 +1035,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", 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
 
@@ -1065,7 +1069,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/Regex.hs-boot b/GI/GLib/Structs/Regex.hs-boot
--- a/GI/GLib/Structs/Regex.hs-boot
+++ b/GI/GLib/Structs/Regex.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Regex 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/GLib/Structs/Scanner.hs b/GI/GLib/Structs/Scanner.hs
--- a/GI/GLib/Structs/Scanner.hs
+++ b/GI/GLib/Structs/Scanner.hs
@@ -105,68 +105,102 @@
 
  -- * Properties
 -- ** Config
+    scannerClearConfig                      ,
+    scannerConfig                           ,
     scannerReadConfig                       ,
+    scannerWriteConfig                      ,
 
 
 -- ** InputName
+    scannerClearInputName                   ,
+    scannerInputName                        ,
     scannerReadInputName                    ,
+    scannerWriteInputName                   ,
 
 
 -- ** Line
+    scannerLine                             ,
     scannerReadLine                         ,
+    scannerWriteLine                        ,
 
 
 -- ** MaxParseErrors
+    scannerMaxParseErrors                   ,
     scannerReadMaxParseErrors               ,
+    scannerWriteMaxParseErrors              ,
 
 
 -- ** NextLine
+    scannerNextLine                         ,
     scannerReadNextLine                     ,
+    scannerWriteNextLine                    ,
 
 
 -- ** NextPosition
+    scannerNextPosition                     ,
     scannerReadNextPosition                 ,
+    scannerWriteNextPosition                ,
 
 
 -- ** NextToken
+    scannerNextToken                        ,
     scannerReadNextToken                    ,
+    scannerWriteNextToken                   ,
 
 
 -- ** NextValue
+    scannerClearNextValue                   ,
+    scannerNextValue                        ,
     scannerReadNextValue                    ,
+    scannerWriteNextValue                   ,
 
 
 -- ** ParseErrors
+    scannerParseErrors                      ,
     scannerReadParseErrors                  ,
+    scannerWriteParseErrors                 ,
 
 
 -- ** Position
+    scannerPosition                         ,
     scannerReadPosition                     ,
+    scannerWritePosition                    ,
 
 
 -- ** Qdata
+    scannerClearQdata                       ,
+    scannerQdata                            ,
     scannerReadQdata                        ,
+    scannerWriteQdata                       ,
 
 
 -- ** Token
     scannerReadToken                        ,
+    scannerToken                            ,
+    scannerWriteToken                       ,
 
 
 -- ** UserData
+    scannerClearUserData                    ,
     scannerReadUserData                     ,
+    scannerUserData                         ,
+    scannerWriteUserData                    ,
 
 
 -- ** Value
+    scannerClearValue                       ,
     scannerReadValue                        ,
+    scannerValue                            ,
+    scannerWriteValue                       ,
 
 
 
 
     ) 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
@@ -179,94 +213,420 @@
 newZeroScanner :: MonadIO m => m Scanner
 newZeroScanner = liftIO $ callocBytes 144 >>= wrapPtr Scanner
 
+instance tag ~ 'AttrSet => Constructible Scanner tag where
+    new _ attrs = do
+        o <- newZeroScanner
+        GI.Attributes.set o attrs
+        return o
+
+
 noScanner :: Maybe Scanner
 noScanner = Nothing
 
-scannerReadUserData :: Scanner -> IO (Ptr ())
-scannerReadUserData s = withManagedPtr s $ \ptr -> do
+scannerReadUserData :: MonadIO m => Scanner -> m (Ptr ())
+scannerReadUserData s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
     return val
 
-scannerReadMaxParseErrors :: Scanner -> IO Word32
-scannerReadMaxParseErrors s = withManagedPtr s $ \ptr -> do
+scannerWriteUserData :: MonadIO m => Scanner -> Ptr () -> m ()
+scannerWriteUserData s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ())
+
+scannerClearUserData :: MonadIO m => Scanner -> m ()
+scannerClearUserData s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ())
+
+data ScannerUserDataFieldInfo
+instance AttrInfo ScannerUserDataFieldInfo where
+    type AttrAllowedOps ScannerUserDataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ScannerUserDataFieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint ScannerUserDataFieldInfo = (~) Scanner
+    type AttrGetType ScannerUserDataFieldInfo = Ptr ()
+    type AttrLabel ScannerUserDataFieldInfo = "user_data"
+    attrGet _ = scannerReadUserData
+    attrSet _ = scannerWriteUserData
+    attrConstruct = undefined
+    attrClear _ = scannerClearUserData
+
+scannerUserData :: AttrLabelProxy "userData"
+scannerUserData = AttrLabelProxy
+
+
+scannerReadMaxParseErrors :: MonadIO m => Scanner -> m Word32
+scannerReadMaxParseErrors s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word32
     return val
 
-scannerReadParseErrors :: Scanner -> IO Word32
-scannerReadParseErrors s = withManagedPtr s $ \ptr -> do
+scannerWriteMaxParseErrors :: MonadIO m => Scanner -> Word32 -> m ()
+scannerWriteMaxParseErrors s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Word32)
+
+data ScannerMaxParseErrorsFieldInfo
+instance AttrInfo ScannerMaxParseErrorsFieldInfo where
+    type AttrAllowedOps ScannerMaxParseErrorsFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerMaxParseErrorsFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerMaxParseErrorsFieldInfo = (~) Scanner
+    type AttrGetType ScannerMaxParseErrorsFieldInfo = Word32
+    type AttrLabel ScannerMaxParseErrorsFieldInfo = "max_parse_errors"
+    attrGet _ = scannerReadMaxParseErrors
+    attrSet _ = scannerWriteMaxParseErrors
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerMaxParseErrors :: AttrLabelProxy "maxParseErrors"
+scannerMaxParseErrors = AttrLabelProxy
+
+
+scannerReadParseErrors :: MonadIO m => Scanner -> m Word32
+scannerReadParseErrors s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 12) :: IO Word32
     return val
 
-scannerReadInputName :: Scanner -> IO T.Text
-scannerReadInputName s = withManagedPtr s $ \ptr -> do
+scannerWriteParseErrors :: MonadIO m => Scanner -> Word32 -> m ()
+scannerWriteParseErrors s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 12) (val :: Word32)
+
+data ScannerParseErrorsFieldInfo
+instance AttrInfo ScannerParseErrorsFieldInfo where
+    type AttrAllowedOps ScannerParseErrorsFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerParseErrorsFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerParseErrorsFieldInfo = (~) Scanner
+    type AttrGetType ScannerParseErrorsFieldInfo = Word32
+    type AttrLabel ScannerParseErrorsFieldInfo = "parse_errors"
+    attrGet _ = scannerReadParseErrors
+    attrSet _ = scannerWriteParseErrors
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerParseErrors :: AttrLabelProxy "parseErrors"
+scannerParseErrors = AttrLabelProxy
+
+
+scannerReadInputName :: MonadIO m => Scanner -> m (Maybe T.Text)
+scannerReadInputName 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
 
-scannerReadQdata :: Scanner -> IO Data
-scannerReadQdata s = withManagedPtr s $ \ptr -> do
+scannerWriteInputName :: MonadIO m => Scanner -> CString -> m ()
+scannerWriteInputName s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: CString)
+
+scannerClearInputName :: MonadIO m => Scanner -> m ()
+scannerClearInputName s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: CString)
+
+data ScannerInputNameFieldInfo
+instance AttrInfo ScannerInputNameFieldInfo where
+    type AttrAllowedOps ScannerInputNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ScannerInputNameFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ScannerInputNameFieldInfo = (~) Scanner
+    type AttrGetType ScannerInputNameFieldInfo = Maybe T.Text
+    type AttrLabel ScannerInputNameFieldInfo = "input_name"
+    attrGet _ = scannerReadInputName
+    attrSet _ = scannerWriteInputName
+    attrConstruct = undefined
+    attrClear _ = scannerClearInputName
+
+scannerInputName :: AttrLabelProxy "inputName"
+scannerInputName = AttrLabelProxy
+
+
+scannerReadQdata :: MonadIO m => Scanner -> m (Maybe Data)
+scannerReadQdata s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO (Ptr Data)
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    val' <- (\x -> Data <$> newForeignPtr_ x) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+        val'' <- (\x -> Data <$> newForeignPtr_ x) val'
+        return val''
+    return result
 
-scannerReadConfig :: Scanner -> IO ScannerConfig
-scannerReadConfig s = withManagedPtr s $ \ptr -> do
+scannerWriteQdata :: MonadIO m => Scanner -> Ptr Data -> m ()
+scannerWriteQdata s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: Ptr Data)
+
+scannerClearQdata :: MonadIO m => Scanner -> m ()
+scannerClearQdata s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: Ptr Data)
+
+data ScannerQdataFieldInfo
+instance AttrInfo ScannerQdataFieldInfo where
+    type AttrAllowedOps ScannerQdataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ScannerQdataFieldInfo = (~) (Ptr Data)
+    type AttrBaseTypeConstraint ScannerQdataFieldInfo = (~) Scanner
+    type AttrGetType ScannerQdataFieldInfo = Maybe Data
+    type AttrLabel ScannerQdataFieldInfo = "qdata"
+    attrGet _ = scannerReadQdata
+    attrSet _ = scannerWriteQdata
+    attrConstruct = undefined
+    attrClear _ = scannerClearQdata
+
+scannerQdata :: AttrLabelProxy "qdata"
+scannerQdata = AttrLabelProxy
+
+
+scannerReadConfig :: MonadIO m => Scanner -> m (Maybe ScannerConfig)
+scannerReadConfig s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO (Ptr ScannerConfig)
-    val' <- (newPtr 128 ScannerConfig) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 128 ScannerConfig) val'
+        return val''
+    return result
 
-scannerReadToken :: Scanner -> IO TokenType
-scannerReadToken s = withManagedPtr s $ \ptr -> do
+scannerWriteConfig :: MonadIO m => Scanner -> Ptr ScannerConfig -> m ()
+scannerWriteConfig s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Ptr ScannerConfig)
+
+scannerClearConfig :: MonadIO m => Scanner -> m ()
+scannerClearConfig s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (nullPtr :: Ptr ScannerConfig)
+
+data ScannerConfigFieldInfo
+instance AttrInfo ScannerConfigFieldInfo where
+    type AttrAllowedOps ScannerConfigFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ScannerConfigFieldInfo = (~) (Ptr ScannerConfig)
+    type AttrBaseTypeConstraint ScannerConfigFieldInfo = (~) Scanner
+    type AttrGetType ScannerConfigFieldInfo = Maybe ScannerConfig
+    type AttrLabel ScannerConfigFieldInfo = "config"
+    attrGet _ = scannerReadConfig
+    attrSet _ = scannerWriteConfig
+    attrConstruct = undefined
+    attrClear _ = scannerClearConfig
+
+scannerConfig :: AttrLabelProxy "config"
+scannerConfig = AttrLabelProxy
+
+
+scannerReadToken :: MonadIO m => Scanner -> m TokenType
+scannerReadToken s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 40) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-scannerReadValue :: Scanner -> IO TokenValue
-scannerReadValue s = withManagedPtr s $ \ptr -> do
+scannerWriteToken :: MonadIO m => Scanner -> TokenType -> m ()
+scannerWriteToken s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 40) (val' :: CUInt)
+
+data ScannerTokenFieldInfo
+instance AttrInfo ScannerTokenFieldInfo where
+    type AttrAllowedOps ScannerTokenFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerTokenFieldInfo = (~) TokenType
+    type AttrBaseTypeConstraint ScannerTokenFieldInfo = (~) Scanner
+    type AttrGetType ScannerTokenFieldInfo = TokenType
+    type AttrLabel ScannerTokenFieldInfo = "token"
+    attrGet _ = scannerReadToken
+    attrSet _ = scannerWriteToken
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerToken :: AttrLabelProxy "token"
+scannerToken = AttrLabelProxy
+
+
+scannerReadValue :: MonadIO m => Scanner -> m (Maybe TokenValue)
+scannerReadValue s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 48) :: IO (Ptr TokenValue)
-    val' <- (newPtr 8 TokenValue) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 8 TokenValue) val'
+        return val''
+    return result
 
-scannerReadLine :: Scanner -> IO Word32
-scannerReadLine s = withManagedPtr s $ \ptr -> do
+scannerWriteValue :: MonadIO m => Scanner -> Ptr TokenValue -> m ()
+scannerWriteValue s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (val :: Ptr TokenValue)
+
+scannerClearValue :: MonadIO m => Scanner -> m ()
+scannerClearValue s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (nullPtr :: Ptr TokenValue)
+
+data ScannerValueFieldInfo
+instance AttrInfo ScannerValueFieldInfo where
+    type AttrAllowedOps ScannerValueFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ScannerValueFieldInfo = (~) (Ptr TokenValue)
+    type AttrBaseTypeConstraint ScannerValueFieldInfo = (~) Scanner
+    type AttrGetType ScannerValueFieldInfo = Maybe TokenValue
+    type AttrLabel ScannerValueFieldInfo = "value"
+    attrGet _ = scannerReadValue
+    attrSet _ = scannerWriteValue
+    attrConstruct = undefined
+    attrClear _ = scannerClearValue
+
+scannerValue :: AttrLabelProxy "value"
+scannerValue = AttrLabelProxy
+
+
+scannerReadLine :: MonadIO m => Scanner -> m Word32
+scannerReadLine s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 56) :: IO Word32
     return val
 
-scannerReadPosition :: Scanner -> IO Word32
-scannerReadPosition s = withManagedPtr s $ \ptr -> do
+scannerWriteLine :: MonadIO m => Scanner -> Word32 -> m ()
+scannerWriteLine s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 56) (val :: Word32)
+
+data ScannerLineFieldInfo
+instance AttrInfo ScannerLineFieldInfo where
+    type AttrAllowedOps ScannerLineFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerLineFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerLineFieldInfo = (~) Scanner
+    type AttrGetType ScannerLineFieldInfo = Word32
+    type AttrLabel ScannerLineFieldInfo = "line"
+    attrGet _ = scannerReadLine
+    attrSet _ = scannerWriteLine
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerLine :: AttrLabelProxy "line"
+scannerLine = AttrLabelProxy
+
+
+scannerReadPosition :: MonadIO m => Scanner -> m Word32
+scannerReadPosition s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 60) :: IO Word32
     return val
 
-scannerReadNextToken :: Scanner -> IO TokenType
-scannerReadNextToken s = withManagedPtr s $ \ptr -> do
+scannerWritePosition :: MonadIO m => Scanner -> Word32 -> m ()
+scannerWritePosition s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 60) (val :: Word32)
+
+data ScannerPositionFieldInfo
+instance AttrInfo ScannerPositionFieldInfo where
+    type AttrAllowedOps ScannerPositionFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerPositionFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerPositionFieldInfo = (~) Scanner
+    type AttrGetType ScannerPositionFieldInfo = Word32
+    type AttrLabel ScannerPositionFieldInfo = "position"
+    attrGet _ = scannerReadPosition
+    attrSet _ = scannerWritePosition
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerPosition :: AttrLabelProxy "position"
+scannerPosition = AttrLabelProxy
+
+
+scannerReadNextToken :: MonadIO m => Scanner -> m TokenType
+scannerReadNextToken s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 64) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-scannerReadNextValue :: Scanner -> IO TokenValue
-scannerReadNextValue s = withManagedPtr s $ \ptr -> do
+scannerWriteNextToken :: MonadIO m => Scanner -> TokenType -> m ()
+scannerWriteNextToken s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 64) (val' :: CUInt)
+
+data ScannerNextTokenFieldInfo
+instance AttrInfo ScannerNextTokenFieldInfo where
+    type AttrAllowedOps ScannerNextTokenFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerNextTokenFieldInfo = (~) TokenType
+    type AttrBaseTypeConstraint ScannerNextTokenFieldInfo = (~) Scanner
+    type AttrGetType ScannerNextTokenFieldInfo = TokenType
+    type AttrLabel ScannerNextTokenFieldInfo = "next_token"
+    attrGet _ = scannerReadNextToken
+    attrSet _ = scannerWriteNextToken
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerNextToken :: AttrLabelProxy "nextToken"
+scannerNextToken = AttrLabelProxy
+
+
+scannerReadNextValue :: MonadIO m => Scanner -> m (Maybe TokenValue)
+scannerReadNextValue s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 72) :: IO (Ptr TokenValue)
-    val' <- (newPtr 8 TokenValue) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 8 TokenValue) val'
+        return val''
+    return result
 
-scannerReadNextLine :: Scanner -> IO Word32
-scannerReadNextLine s = withManagedPtr s $ \ptr -> do
+scannerWriteNextValue :: MonadIO m => Scanner -> Ptr TokenValue -> m ()
+scannerWriteNextValue s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 72) (val :: Ptr TokenValue)
+
+scannerClearNextValue :: MonadIO m => Scanner -> m ()
+scannerClearNextValue s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 72) (nullPtr :: Ptr TokenValue)
+
+data ScannerNextValueFieldInfo
+instance AttrInfo ScannerNextValueFieldInfo where
+    type AttrAllowedOps ScannerNextValueFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ScannerNextValueFieldInfo = (~) (Ptr TokenValue)
+    type AttrBaseTypeConstraint ScannerNextValueFieldInfo = (~) Scanner
+    type AttrGetType ScannerNextValueFieldInfo = Maybe TokenValue
+    type AttrLabel ScannerNextValueFieldInfo = "next_value"
+    attrGet _ = scannerReadNextValue
+    attrSet _ = scannerWriteNextValue
+    attrConstruct = undefined
+    attrClear _ = scannerClearNextValue
+
+scannerNextValue :: AttrLabelProxy "nextValue"
+scannerNextValue = AttrLabelProxy
+
+
+scannerReadNextLine :: MonadIO m => Scanner -> m Word32
+scannerReadNextLine s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 80) :: IO Word32
     return val
 
-scannerReadNextPosition :: Scanner -> IO Word32
-scannerReadNextPosition s = withManagedPtr s $ \ptr -> do
+scannerWriteNextLine :: MonadIO m => Scanner -> Word32 -> m ()
+scannerWriteNextLine s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 80) (val :: Word32)
+
+data ScannerNextLineFieldInfo
+instance AttrInfo ScannerNextLineFieldInfo where
+    type AttrAllowedOps ScannerNextLineFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerNextLineFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerNextLineFieldInfo = (~) Scanner
+    type AttrGetType ScannerNextLineFieldInfo = Word32
+    type AttrLabel ScannerNextLineFieldInfo = "next_line"
+    attrGet _ = scannerReadNextLine
+    attrSet _ = scannerWriteNextLine
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerNextLine :: AttrLabelProxy "nextLine"
+scannerNextLine = AttrLabelProxy
+
+
+scannerReadNextPosition :: MonadIO m => Scanner -> m Word32
+scannerReadNextPosition s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 84) :: IO Word32
     return val
 
--- XXX Skipped getter for "Scanner:msg_handler" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+scannerWriteNextPosition :: MonadIO m => Scanner -> Word32 -> m ()
+scannerWriteNextPosition s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 84) (val :: Word32)
 
+data ScannerNextPositionFieldInfo
+instance AttrInfo ScannerNextPositionFieldInfo where
+    type AttrAllowedOps ScannerNextPositionFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerNextPositionFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerNextPositionFieldInfo = (~) Scanner
+    type AttrGetType ScannerNextPositionFieldInfo = Word32
+    type AttrLabel ScannerNextPositionFieldInfo = "next_position"
+    attrGet _ = scannerReadNextPosition
+    attrSet _ = scannerWriteNextPosition
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerNextPosition :: AttrLabelProxy "nextPosition"
+scannerNextPosition = AttrLabelProxy
+
+
+-- XXX Skipped attribute for "Scanner:msg_handler" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+type instance AttributeList Scanner = ScannerAttributeList
+type ScannerAttributeList = ('[ '("userData", ScannerUserDataFieldInfo), '("maxParseErrors", ScannerMaxParseErrorsFieldInfo), '("parseErrors", ScannerParseErrorsFieldInfo), '("inputName", ScannerInputNameFieldInfo), '("qdata", ScannerQdataFieldInfo), '("config", ScannerConfigFieldInfo), '("token", ScannerTokenFieldInfo), '("value", ScannerValueFieldInfo), '("line", ScannerLineFieldInfo), '("position", ScannerPositionFieldInfo), '("nextToken", ScannerNextTokenFieldInfo), '("nextValue", ScannerNextValueFieldInfo), '("nextLine", ScannerNextLineFieldInfo), '("nextPosition", ScannerNextPositionFieldInfo)] :: [(Symbol, *)])
+
 -- method Scanner::cur_line
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", 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
 
@@ -293,7 +653,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", 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
 
@@ -320,7 +680,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "TokenType"
+-- returnType : Just (TInterface "GLib" "TokenType")
 -- throws : False
 -- Skip return : False
 
@@ -348,7 +708,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", 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
 
@@ -375,7 +735,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", 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
 
@@ -403,7 +763,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "TokenType"
+-- returnType : Just (TInterface "GLib" "TokenType")
 -- throws : False
 -- Skip return : False
 
@@ -429,15 +789,15 @@
 
 -- method Scanner::input_file
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "input_fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "input_fd", 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 "g_scanner_input_file" g_scanner_input_file :: 
     Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
-    Int32 ->                                -- input_fd : TBasicType TInt32
+    Int32 ->                                -- input_fd : TBasicType TInt
     IO ()
 
 
@@ -458,16 +818,16 @@
 
 -- method Scanner::input_text
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", 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},Arg {argCName = "text_len", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", 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},Arg {argCName = "text_len", 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 "g_scanner_input_text" g_scanner_input_text :: 
     Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
     CString ->                              -- text : TBasicType TUTF8
-    Word32 ->                               -- text_len : TBasicType TUInt32
+    Word32 ->                               -- text_len : TBasicType TUInt
     IO ()
 
 
@@ -493,7 +853,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "TokenType"
+-- returnType : Just (TInterface "GLib" "TokenType")
 -- throws : False
 -- Skip return : False
 
@@ -519,17 +879,17 @@
 
 -- method Scanner::scope_add_symbol
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scope_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", 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 "g_scanner_scope_add_symbol" g_scanner_scope_add_symbol :: 
     Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
-    Word32 ->                               -- scope_id : TBasicType TUInt32
+    Word32 ->                               -- scope_id : TBasicType TUInt
     CString ->                              -- symbol : TBasicType TUTF8
-    Ptr () ->                               -- value : TBasicType TVoid
+    Ptr () ->                               -- value : TBasicType TPtr
     IO ()
 
 
@@ -554,15 +914,15 @@
 
 -- method Scanner::scope_remove_symbol
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scope_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol", 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 "g_scanner_scope_remove_symbol" g_scanner_scope_remove_symbol :: 
     Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
-    Word32 ->                               -- scope_id : TBasicType TUInt32
+    Word32 ->                               -- scope_id : TBasicType TUInt
     CString ->                              -- symbol : TBasicType TUTF8
     IO ()
 
@@ -587,15 +947,15 @@
 
 -- method Scanner::set_scope
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scope_id", argType = TBasicType TUInt, 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 "g_scanner_set_scope" g_scanner_set_scope :: 
     Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
-    Word32 ->                               -- scope_id : TBasicType TUInt32
+    Word32 ->                               -- scope_id : TBasicType TUInt
     IO Word32
 
 
@@ -618,7 +978,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", 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
 
@@ -643,9 +1003,9 @@
 
 -- method Scanner::unexp_token
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expected_token", argType = TInterface "GLib" "TokenType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "identifier_spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol_spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_error", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expected_token", argType = TInterface "GLib" "TokenType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "identifier_spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol_spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_error", 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
 
@@ -656,7 +1016,7 @@
     CString ->                              -- symbol_spec : TBasicType TUTF8
     CString ->                              -- symbol_name : TBasicType TUTF8
     CString ->                              -- message : TBasicType TUTF8
-    Int32 ->                                -- is_error : TBasicType TInt32
+    Int32 ->                                -- is_error : TBasicType TInt
     IO ()
 
 
diff --git a/GI/GLib/Structs/Scanner.hs-boot b/GI/GLib/Structs/Scanner.hs-boot
--- a/GI/GLib/Structs/Scanner.hs-boot
+++ b/GI/GLib/Structs/Scanner.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Scanner 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/GLib/Structs/ScannerConfig.hs b/GI/GLib/Structs/ScannerConfig.hs
--- a/GI/GLib/Structs/ScannerConfig.hs
+++ b/GI/GLib/Structs/ScannerConfig.hs
@@ -21,116 +21,172 @@
 
  -- * Properties
 -- ** CaseSensitive
+    scannerConfigCaseSensitive              ,
     scannerConfigReadCaseSensitive          ,
+    scannerConfigWriteCaseSensitive         ,
 
 
 -- ** Char2Token
+    scannerConfigChar2Token                 ,
     scannerConfigReadChar2Token             ,
+    scannerConfigWriteChar2Token            ,
 
 
 -- ** CpairCommentSingle
+    scannerConfigClearCpairCommentSingle    ,
+    scannerConfigCpairCommentSingle         ,
     scannerConfigReadCpairCommentSingle     ,
+    scannerConfigWriteCpairCommentSingle    ,
 
 
 -- ** CsetIdentifierFirst
+    scannerConfigClearCsetIdentifierFirst   ,
+    scannerConfigCsetIdentifierFirst        ,
     scannerConfigReadCsetIdentifierFirst    ,
+    scannerConfigWriteCsetIdentifierFirst   ,
 
 
 -- ** CsetIdentifierNth
+    scannerConfigClearCsetIdentifierNth     ,
+    scannerConfigCsetIdentifierNth          ,
     scannerConfigReadCsetIdentifierNth      ,
+    scannerConfigWriteCsetIdentifierNth     ,
 
 
 -- ** CsetSkipCharacters
+    scannerConfigClearCsetSkipCharacters    ,
+    scannerConfigCsetSkipCharacters         ,
     scannerConfigReadCsetSkipCharacters     ,
+    scannerConfigWriteCsetSkipCharacters    ,
 
 
 -- ** Identifier2String
+    scannerConfigIdentifier2String          ,
     scannerConfigReadIdentifier2String      ,
+    scannerConfigWriteIdentifier2String     ,
 
 
 -- ** Int2Float
+    scannerConfigInt2Float                  ,
     scannerConfigReadInt2Float              ,
+    scannerConfigWriteInt2Float             ,
 
 
 -- ** Numbers2Int
+    scannerConfigNumbers2Int                ,
     scannerConfigReadNumbers2Int            ,
+    scannerConfigWriteNumbers2Int           ,
 
 
 -- ** ScanBinary
     scannerConfigReadScanBinary             ,
+    scannerConfigScanBinary                 ,
+    scannerConfigWriteScanBinary            ,
 
 
 -- ** ScanCommentMulti
     scannerConfigReadScanCommentMulti       ,
+    scannerConfigScanCommentMulti           ,
+    scannerConfigWriteScanCommentMulti      ,
 
 
 -- ** ScanFloat
     scannerConfigReadScanFloat              ,
+    scannerConfigScanFloat                  ,
+    scannerConfigWriteScanFloat             ,
 
 
 -- ** ScanHex
     scannerConfigReadScanHex                ,
+    scannerConfigScanHex                    ,
+    scannerConfigWriteScanHex               ,
 
 
 -- ** ScanHexDollar
     scannerConfigReadScanHexDollar          ,
+    scannerConfigScanHexDollar              ,
+    scannerConfigWriteScanHexDollar         ,
 
 
 -- ** ScanIdentifier
     scannerConfigReadScanIdentifier         ,
+    scannerConfigScanIdentifier             ,
+    scannerConfigWriteScanIdentifier        ,
 
 
 -- ** ScanIdentifier1char
     scannerConfigReadScanIdentifier1char    ,
+    scannerConfigScanIdentifier1char        ,
+    scannerConfigWriteScanIdentifier1char   ,
 
 
 -- ** ScanIdentifierNULL
     scannerConfigReadScanIdentifierNULL     ,
+    scannerConfigScanIdentifierNULL         ,
+    scannerConfigWriteScanIdentifierNULL    ,
 
 
 -- ** ScanOctal
     scannerConfigReadScanOctal              ,
+    scannerConfigScanOctal                  ,
+    scannerConfigWriteScanOctal             ,
 
 
 -- ** ScanStringDq
     scannerConfigReadScanStringDq           ,
+    scannerConfigScanStringDq               ,
+    scannerConfigWriteScanStringDq          ,
 
 
 -- ** ScanStringSq
     scannerConfigReadScanStringSq           ,
+    scannerConfigScanStringSq               ,
+    scannerConfigWriteScanStringSq          ,
 
 
 -- ** ScanSymbols
     scannerConfigReadScanSymbols            ,
+    scannerConfigScanSymbols                ,
+    scannerConfigWriteScanSymbols           ,
 
 
 -- ** Scope0Fallback
     scannerConfigReadScope0Fallback         ,
+    scannerConfigScope0Fallback             ,
+    scannerConfigWriteScope0Fallback        ,
 
 
 -- ** SkipCommentMulti
     scannerConfigReadSkipCommentMulti       ,
+    scannerConfigSkipCommentMulti           ,
+    scannerConfigWriteSkipCommentMulti      ,
 
 
 -- ** SkipCommentSingle
     scannerConfigReadSkipCommentSingle      ,
+    scannerConfigSkipCommentSingle          ,
+    scannerConfigWriteSkipCommentSingle     ,
 
 
 -- ** StoreInt64
     scannerConfigReadStoreInt64             ,
+    scannerConfigStoreInt64                 ,
+    scannerConfigWriteStoreInt64            ,
 
 
 -- ** Symbol2Token
     scannerConfigReadSymbol2Token           ,
+    scannerConfigSymbol2Token               ,
+    scannerConfigWriteSymbol2Token          ,
 
 
 
 
     ) 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
@@ -143,142 +199,697 @@
 newZeroScannerConfig :: MonadIO m => m ScannerConfig
 newZeroScannerConfig = liftIO $ callocBytes 128 >>= wrapPtr ScannerConfig
 
+instance tag ~ 'AttrSet => Constructible ScannerConfig tag where
+    new _ attrs = do
+        o <- newZeroScannerConfig
+        GI.Attributes.set o attrs
+        return o
+
+
 noScannerConfig :: Maybe ScannerConfig
 noScannerConfig = Nothing
 
-scannerConfigReadCsetSkipCharacters :: ScannerConfig -> IO T.Text
-scannerConfigReadCsetSkipCharacters s = withManagedPtr s $ \ptr -> do
+scannerConfigReadCsetSkipCharacters :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
+scannerConfigReadCsetSkipCharacters 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
 
-scannerConfigReadCsetIdentifierFirst :: ScannerConfig -> IO T.Text
-scannerConfigReadCsetIdentifierFirst s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteCsetSkipCharacters :: MonadIO m => ScannerConfig -> CString -> m ()
+scannerConfigWriteCsetSkipCharacters s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+scannerConfigClearCsetSkipCharacters :: MonadIO m => ScannerConfig -> m ()
+scannerConfigClearCsetSkipCharacters s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data ScannerConfigCsetSkipCharactersFieldInfo
+instance AttrInfo ScannerConfigCsetSkipCharactersFieldInfo where
+    type AttrAllowedOps ScannerConfigCsetSkipCharactersFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ScannerConfigCsetSkipCharactersFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ScannerConfigCsetSkipCharactersFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigCsetSkipCharactersFieldInfo = Maybe T.Text
+    type AttrLabel ScannerConfigCsetSkipCharactersFieldInfo = "cset_skip_characters"
+    attrGet _ = scannerConfigReadCsetSkipCharacters
+    attrSet _ = scannerConfigWriteCsetSkipCharacters
+    attrConstruct = undefined
+    attrClear _ = scannerConfigClearCsetSkipCharacters
+
+scannerConfigCsetSkipCharacters :: AttrLabelProxy "csetSkipCharacters"
+scannerConfigCsetSkipCharacters = AttrLabelProxy
+
+
+scannerConfigReadCsetIdentifierFirst :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
+scannerConfigReadCsetIdentifierFirst 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
 
-scannerConfigReadCsetIdentifierNth :: ScannerConfig -> IO T.Text
-scannerConfigReadCsetIdentifierNth s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteCsetIdentifierFirst :: MonadIO m => ScannerConfig -> CString -> m ()
+scannerConfigWriteCsetIdentifierFirst s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+scannerConfigClearCsetIdentifierFirst :: MonadIO m => ScannerConfig -> m ()
+scannerConfigClearCsetIdentifierFirst s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ScannerConfigCsetIdentifierFirstFieldInfo
+instance AttrInfo ScannerConfigCsetIdentifierFirstFieldInfo where
+    type AttrAllowedOps ScannerConfigCsetIdentifierFirstFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ScannerConfigCsetIdentifierFirstFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ScannerConfigCsetIdentifierFirstFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigCsetIdentifierFirstFieldInfo = Maybe T.Text
+    type AttrLabel ScannerConfigCsetIdentifierFirstFieldInfo = "cset_identifier_first"
+    attrGet _ = scannerConfigReadCsetIdentifierFirst
+    attrSet _ = scannerConfigWriteCsetIdentifierFirst
+    attrConstruct = undefined
+    attrClear _ = scannerConfigClearCsetIdentifierFirst
+
+scannerConfigCsetIdentifierFirst :: AttrLabelProxy "csetIdentifierFirst"
+scannerConfigCsetIdentifierFirst = AttrLabelProxy
+
+
+scannerConfigReadCsetIdentifierNth :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
+scannerConfigReadCsetIdentifierNth 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
 
-scannerConfigReadCpairCommentSingle :: ScannerConfig -> IO T.Text
-scannerConfigReadCpairCommentSingle s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteCsetIdentifierNth :: MonadIO m => ScannerConfig -> CString -> m ()
+scannerConfigWriteCsetIdentifierNth s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: CString)
+
+scannerConfigClearCsetIdentifierNth :: MonadIO m => ScannerConfig -> m ()
+scannerConfigClearCsetIdentifierNth s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: CString)
+
+data ScannerConfigCsetIdentifierNthFieldInfo
+instance AttrInfo ScannerConfigCsetIdentifierNthFieldInfo where
+    type AttrAllowedOps ScannerConfigCsetIdentifierNthFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ScannerConfigCsetIdentifierNthFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ScannerConfigCsetIdentifierNthFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigCsetIdentifierNthFieldInfo = Maybe T.Text
+    type AttrLabel ScannerConfigCsetIdentifierNthFieldInfo = "cset_identifier_nth"
+    attrGet _ = scannerConfigReadCsetIdentifierNth
+    attrSet _ = scannerConfigWriteCsetIdentifierNth
+    attrConstruct = undefined
+    attrClear _ = scannerConfigClearCsetIdentifierNth
+
+scannerConfigCsetIdentifierNth :: AttrLabelProxy "csetIdentifierNth"
+scannerConfigCsetIdentifierNth = AttrLabelProxy
+
+
+scannerConfigReadCpairCommentSingle :: MonadIO m => ScannerConfig -> m (Maybe T.Text)
+scannerConfigReadCpairCommentSingle 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
 
-scannerConfigReadCaseSensitive :: ScannerConfig -> IO Word32
-scannerConfigReadCaseSensitive s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteCpairCommentSingle :: MonadIO m => ScannerConfig -> CString -> m ()
+scannerConfigWriteCpairCommentSingle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: CString)
+
+scannerConfigClearCpairCommentSingle :: MonadIO m => ScannerConfig -> m ()
+scannerConfigClearCpairCommentSingle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: CString)
+
+data ScannerConfigCpairCommentSingleFieldInfo
+instance AttrInfo ScannerConfigCpairCommentSingleFieldInfo where
+    type AttrAllowedOps ScannerConfigCpairCommentSingleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ScannerConfigCpairCommentSingleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ScannerConfigCpairCommentSingleFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigCpairCommentSingleFieldInfo = Maybe T.Text
+    type AttrLabel ScannerConfigCpairCommentSingleFieldInfo = "cpair_comment_single"
+    attrGet _ = scannerConfigReadCpairCommentSingle
+    attrSet _ = scannerConfigWriteCpairCommentSingle
+    attrConstruct = undefined
+    attrClear _ = scannerConfigClearCpairCommentSingle
+
+scannerConfigCpairCommentSingle :: AttrLabelProxy "cpairCommentSingle"
+scannerConfigCpairCommentSingle = AttrLabelProxy
+
+
+scannerConfigReadCaseSensitive :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadCaseSensitive s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO Word32
     return val
 
-scannerConfigReadSkipCommentMulti :: ScannerConfig -> IO Word32
-scannerConfigReadSkipCommentMulti s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteCaseSensitive :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteCaseSensitive s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Word32)
+
+data ScannerConfigCaseSensitiveFieldInfo
+instance AttrInfo ScannerConfigCaseSensitiveFieldInfo where
+    type AttrAllowedOps ScannerConfigCaseSensitiveFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigCaseSensitiveFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigCaseSensitiveFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigCaseSensitiveFieldInfo = Word32
+    type AttrLabel ScannerConfigCaseSensitiveFieldInfo = "case_sensitive"
+    attrGet _ = scannerConfigReadCaseSensitive
+    attrSet _ = scannerConfigWriteCaseSensitive
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigCaseSensitive :: AttrLabelProxy "caseSensitive"
+scannerConfigCaseSensitive = AttrLabelProxy
+
+
+scannerConfigReadSkipCommentMulti :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadSkipCommentMulti s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 36) :: IO Word32
     return val
 
-scannerConfigReadSkipCommentSingle :: ScannerConfig -> IO Word32
-scannerConfigReadSkipCommentSingle s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteSkipCommentMulti :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteSkipCommentMulti s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 36) (val :: Word32)
+
+data ScannerConfigSkipCommentMultiFieldInfo
+instance AttrInfo ScannerConfigSkipCommentMultiFieldInfo where
+    type AttrAllowedOps ScannerConfigSkipCommentMultiFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigSkipCommentMultiFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigSkipCommentMultiFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigSkipCommentMultiFieldInfo = Word32
+    type AttrLabel ScannerConfigSkipCommentMultiFieldInfo = "skip_comment_multi"
+    attrGet _ = scannerConfigReadSkipCommentMulti
+    attrSet _ = scannerConfigWriteSkipCommentMulti
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigSkipCommentMulti :: AttrLabelProxy "skipCommentMulti"
+scannerConfigSkipCommentMulti = AttrLabelProxy
+
+
+scannerConfigReadSkipCommentSingle :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadSkipCommentSingle s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 40) :: IO Word32
     return val
 
-scannerConfigReadScanCommentMulti :: ScannerConfig -> IO Word32
-scannerConfigReadScanCommentMulti s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteSkipCommentSingle :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteSkipCommentSingle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 40) (val :: Word32)
+
+data ScannerConfigSkipCommentSingleFieldInfo
+instance AttrInfo ScannerConfigSkipCommentSingleFieldInfo where
+    type AttrAllowedOps ScannerConfigSkipCommentSingleFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigSkipCommentSingleFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigSkipCommentSingleFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigSkipCommentSingleFieldInfo = Word32
+    type AttrLabel ScannerConfigSkipCommentSingleFieldInfo = "skip_comment_single"
+    attrGet _ = scannerConfigReadSkipCommentSingle
+    attrSet _ = scannerConfigWriteSkipCommentSingle
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigSkipCommentSingle :: AttrLabelProxy "skipCommentSingle"
+scannerConfigSkipCommentSingle = AttrLabelProxy
+
+
+scannerConfigReadScanCommentMulti :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanCommentMulti s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 44) :: IO Word32
     return val
 
-scannerConfigReadScanIdentifier :: ScannerConfig -> IO Word32
-scannerConfigReadScanIdentifier s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanCommentMulti :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanCommentMulti s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 44) (val :: Word32)
+
+data ScannerConfigScanCommentMultiFieldInfo
+instance AttrInfo ScannerConfigScanCommentMultiFieldInfo where
+    type AttrAllowedOps ScannerConfigScanCommentMultiFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanCommentMultiFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanCommentMultiFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanCommentMultiFieldInfo = Word32
+    type AttrLabel ScannerConfigScanCommentMultiFieldInfo = "scan_comment_multi"
+    attrGet _ = scannerConfigReadScanCommentMulti
+    attrSet _ = scannerConfigWriteScanCommentMulti
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanCommentMulti :: AttrLabelProxy "scanCommentMulti"
+scannerConfigScanCommentMulti = AttrLabelProxy
+
+
+scannerConfigReadScanIdentifier :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanIdentifier s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 48) :: IO Word32
     return val
 
-scannerConfigReadScanIdentifier1char :: ScannerConfig -> IO Word32
-scannerConfigReadScanIdentifier1char s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanIdentifier :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanIdentifier s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (val :: Word32)
+
+data ScannerConfigScanIdentifierFieldInfo
+instance AttrInfo ScannerConfigScanIdentifierFieldInfo where
+    type AttrAllowedOps ScannerConfigScanIdentifierFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanIdentifierFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanIdentifierFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanIdentifierFieldInfo = Word32
+    type AttrLabel ScannerConfigScanIdentifierFieldInfo = "scan_identifier"
+    attrGet _ = scannerConfigReadScanIdentifier
+    attrSet _ = scannerConfigWriteScanIdentifier
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanIdentifier :: AttrLabelProxy "scanIdentifier"
+scannerConfigScanIdentifier = AttrLabelProxy
+
+
+scannerConfigReadScanIdentifier1char :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanIdentifier1char s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 52) :: IO Word32
     return val
 
-scannerConfigReadScanIdentifierNULL :: ScannerConfig -> IO Word32
-scannerConfigReadScanIdentifierNULL s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanIdentifier1char :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanIdentifier1char s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 52) (val :: Word32)
+
+data ScannerConfigScanIdentifier1charFieldInfo
+instance AttrInfo ScannerConfigScanIdentifier1charFieldInfo where
+    type AttrAllowedOps ScannerConfigScanIdentifier1charFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanIdentifier1charFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanIdentifier1charFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanIdentifier1charFieldInfo = Word32
+    type AttrLabel ScannerConfigScanIdentifier1charFieldInfo = "scan_identifier_1char"
+    attrGet _ = scannerConfigReadScanIdentifier1char
+    attrSet _ = scannerConfigWriteScanIdentifier1char
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanIdentifier1char :: AttrLabelProxy "scanIdentifier1char"
+scannerConfigScanIdentifier1char = AttrLabelProxy
+
+
+scannerConfigReadScanIdentifierNULL :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanIdentifierNULL s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 56) :: IO Word32
     return val
 
-scannerConfigReadScanSymbols :: ScannerConfig -> IO Word32
-scannerConfigReadScanSymbols s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanIdentifierNULL :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanIdentifierNULL s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 56) (val :: Word32)
+
+data ScannerConfigScanIdentifierNULLFieldInfo
+instance AttrInfo ScannerConfigScanIdentifierNULLFieldInfo where
+    type AttrAllowedOps ScannerConfigScanIdentifierNULLFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanIdentifierNULLFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanIdentifierNULLFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanIdentifierNULLFieldInfo = Word32
+    type AttrLabel ScannerConfigScanIdentifierNULLFieldInfo = "scan_identifier_NULL"
+    attrGet _ = scannerConfigReadScanIdentifierNULL
+    attrSet _ = scannerConfigWriteScanIdentifierNULL
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanIdentifierNULL :: AttrLabelProxy "scanIdentifierNULL"
+scannerConfigScanIdentifierNULL = AttrLabelProxy
+
+
+scannerConfigReadScanSymbols :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanSymbols s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 60) :: IO Word32
     return val
 
-scannerConfigReadScanBinary :: ScannerConfig -> IO Word32
-scannerConfigReadScanBinary s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanSymbols :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanSymbols s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 60) (val :: Word32)
+
+data ScannerConfigScanSymbolsFieldInfo
+instance AttrInfo ScannerConfigScanSymbolsFieldInfo where
+    type AttrAllowedOps ScannerConfigScanSymbolsFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanSymbolsFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanSymbolsFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanSymbolsFieldInfo = Word32
+    type AttrLabel ScannerConfigScanSymbolsFieldInfo = "scan_symbols"
+    attrGet _ = scannerConfigReadScanSymbols
+    attrSet _ = scannerConfigWriteScanSymbols
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanSymbols :: AttrLabelProxy "scanSymbols"
+scannerConfigScanSymbols = AttrLabelProxy
+
+
+scannerConfigReadScanBinary :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanBinary s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 64) :: IO Word32
     return val
 
-scannerConfigReadScanOctal :: ScannerConfig -> IO Word32
-scannerConfigReadScanOctal s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanBinary :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanBinary s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 64) (val :: Word32)
+
+data ScannerConfigScanBinaryFieldInfo
+instance AttrInfo ScannerConfigScanBinaryFieldInfo where
+    type AttrAllowedOps ScannerConfigScanBinaryFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanBinaryFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanBinaryFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanBinaryFieldInfo = Word32
+    type AttrLabel ScannerConfigScanBinaryFieldInfo = "scan_binary"
+    attrGet _ = scannerConfigReadScanBinary
+    attrSet _ = scannerConfigWriteScanBinary
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanBinary :: AttrLabelProxy "scanBinary"
+scannerConfigScanBinary = AttrLabelProxy
+
+
+scannerConfigReadScanOctal :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanOctal s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 68) :: IO Word32
     return val
 
-scannerConfigReadScanFloat :: ScannerConfig -> IO Word32
-scannerConfigReadScanFloat s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanOctal :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanOctal s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 68) (val :: Word32)
+
+data ScannerConfigScanOctalFieldInfo
+instance AttrInfo ScannerConfigScanOctalFieldInfo where
+    type AttrAllowedOps ScannerConfigScanOctalFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanOctalFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanOctalFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanOctalFieldInfo = Word32
+    type AttrLabel ScannerConfigScanOctalFieldInfo = "scan_octal"
+    attrGet _ = scannerConfigReadScanOctal
+    attrSet _ = scannerConfigWriteScanOctal
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanOctal :: AttrLabelProxy "scanOctal"
+scannerConfigScanOctal = AttrLabelProxy
+
+
+scannerConfigReadScanFloat :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanFloat s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 72) :: IO Word32
     return val
 
-scannerConfigReadScanHex :: ScannerConfig -> IO Word32
-scannerConfigReadScanHex s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanFloat :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanFloat s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 72) (val :: Word32)
+
+data ScannerConfigScanFloatFieldInfo
+instance AttrInfo ScannerConfigScanFloatFieldInfo where
+    type AttrAllowedOps ScannerConfigScanFloatFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanFloatFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanFloatFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanFloatFieldInfo = Word32
+    type AttrLabel ScannerConfigScanFloatFieldInfo = "scan_float"
+    attrGet _ = scannerConfigReadScanFloat
+    attrSet _ = scannerConfigWriteScanFloat
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanFloat :: AttrLabelProxy "scanFloat"
+scannerConfigScanFloat = AttrLabelProxy
+
+
+scannerConfigReadScanHex :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanHex s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 76) :: IO Word32
     return val
 
-scannerConfigReadScanHexDollar :: ScannerConfig -> IO Word32
-scannerConfigReadScanHexDollar s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanHex :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanHex s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 76) (val :: Word32)
+
+data ScannerConfigScanHexFieldInfo
+instance AttrInfo ScannerConfigScanHexFieldInfo where
+    type AttrAllowedOps ScannerConfigScanHexFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanHexFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanHexFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanHexFieldInfo = Word32
+    type AttrLabel ScannerConfigScanHexFieldInfo = "scan_hex"
+    attrGet _ = scannerConfigReadScanHex
+    attrSet _ = scannerConfigWriteScanHex
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanHex :: AttrLabelProxy "scanHex"
+scannerConfigScanHex = AttrLabelProxy
+
+
+scannerConfigReadScanHexDollar :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanHexDollar s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 80) :: IO Word32
     return val
 
-scannerConfigReadScanStringSq :: ScannerConfig -> IO Word32
-scannerConfigReadScanStringSq s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanHexDollar :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanHexDollar s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 80) (val :: Word32)
+
+data ScannerConfigScanHexDollarFieldInfo
+instance AttrInfo ScannerConfigScanHexDollarFieldInfo where
+    type AttrAllowedOps ScannerConfigScanHexDollarFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanHexDollarFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanHexDollarFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanHexDollarFieldInfo = Word32
+    type AttrLabel ScannerConfigScanHexDollarFieldInfo = "scan_hex_dollar"
+    attrGet _ = scannerConfigReadScanHexDollar
+    attrSet _ = scannerConfigWriteScanHexDollar
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanHexDollar :: AttrLabelProxy "scanHexDollar"
+scannerConfigScanHexDollar = AttrLabelProxy
+
+
+scannerConfigReadScanStringSq :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanStringSq s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 84) :: IO Word32
     return val
 
-scannerConfigReadScanStringDq :: ScannerConfig -> IO Word32
-scannerConfigReadScanStringDq s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanStringSq :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanStringSq s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 84) (val :: Word32)
+
+data ScannerConfigScanStringSqFieldInfo
+instance AttrInfo ScannerConfigScanStringSqFieldInfo where
+    type AttrAllowedOps ScannerConfigScanStringSqFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanStringSqFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanStringSqFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanStringSqFieldInfo = Word32
+    type AttrLabel ScannerConfigScanStringSqFieldInfo = "scan_string_sq"
+    attrGet _ = scannerConfigReadScanStringSq
+    attrSet _ = scannerConfigWriteScanStringSq
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanStringSq :: AttrLabelProxy "scanStringSq"
+scannerConfigScanStringSq = AttrLabelProxy
+
+
+scannerConfigReadScanStringDq :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScanStringDq s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 88) :: IO Word32
     return val
 
-scannerConfigReadNumbers2Int :: ScannerConfig -> IO Word32
-scannerConfigReadNumbers2Int s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScanStringDq :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScanStringDq s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 88) (val :: Word32)
+
+data ScannerConfigScanStringDqFieldInfo
+instance AttrInfo ScannerConfigScanStringDqFieldInfo where
+    type AttrAllowedOps ScannerConfigScanStringDqFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScanStringDqFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScanStringDqFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScanStringDqFieldInfo = Word32
+    type AttrLabel ScannerConfigScanStringDqFieldInfo = "scan_string_dq"
+    attrGet _ = scannerConfigReadScanStringDq
+    attrSet _ = scannerConfigWriteScanStringDq
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScanStringDq :: AttrLabelProxy "scanStringDq"
+scannerConfigScanStringDq = AttrLabelProxy
+
+
+scannerConfigReadNumbers2Int :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadNumbers2Int s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 92) :: IO Word32
     return val
 
-scannerConfigReadInt2Float :: ScannerConfig -> IO Word32
-scannerConfigReadInt2Float s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteNumbers2Int :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteNumbers2Int s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 92) (val :: Word32)
+
+data ScannerConfigNumbers2IntFieldInfo
+instance AttrInfo ScannerConfigNumbers2IntFieldInfo where
+    type AttrAllowedOps ScannerConfigNumbers2IntFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigNumbers2IntFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigNumbers2IntFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigNumbers2IntFieldInfo = Word32
+    type AttrLabel ScannerConfigNumbers2IntFieldInfo = "numbers_2_int"
+    attrGet _ = scannerConfigReadNumbers2Int
+    attrSet _ = scannerConfigWriteNumbers2Int
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigNumbers2Int :: AttrLabelProxy "numbers2Int"
+scannerConfigNumbers2Int = AttrLabelProxy
+
+
+scannerConfigReadInt2Float :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadInt2Float s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 96) :: IO Word32
     return val
 
-scannerConfigReadIdentifier2String :: ScannerConfig -> IO Word32
-scannerConfigReadIdentifier2String s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteInt2Float :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteInt2Float s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 96) (val :: Word32)
+
+data ScannerConfigInt2FloatFieldInfo
+instance AttrInfo ScannerConfigInt2FloatFieldInfo where
+    type AttrAllowedOps ScannerConfigInt2FloatFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigInt2FloatFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigInt2FloatFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigInt2FloatFieldInfo = Word32
+    type AttrLabel ScannerConfigInt2FloatFieldInfo = "int_2_float"
+    attrGet _ = scannerConfigReadInt2Float
+    attrSet _ = scannerConfigWriteInt2Float
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigInt2Float :: AttrLabelProxy "int2Float"
+scannerConfigInt2Float = AttrLabelProxy
+
+
+scannerConfigReadIdentifier2String :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadIdentifier2String s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 100) :: IO Word32
     return val
 
-scannerConfigReadChar2Token :: ScannerConfig -> IO Word32
-scannerConfigReadChar2Token s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteIdentifier2String :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteIdentifier2String s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 100) (val :: Word32)
+
+data ScannerConfigIdentifier2StringFieldInfo
+instance AttrInfo ScannerConfigIdentifier2StringFieldInfo where
+    type AttrAllowedOps ScannerConfigIdentifier2StringFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigIdentifier2StringFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigIdentifier2StringFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigIdentifier2StringFieldInfo = Word32
+    type AttrLabel ScannerConfigIdentifier2StringFieldInfo = "identifier_2_string"
+    attrGet _ = scannerConfigReadIdentifier2String
+    attrSet _ = scannerConfigWriteIdentifier2String
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigIdentifier2String :: AttrLabelProxy "identifier2String"
+scannerConfigIdentifier2String = AttrLabelProxy
+
+
+scannerConfigReadChar2Token :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadChar2Token s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 104) :: IO Word32
     return val
 
-scannerConfigReadSymbol2Token :: ScannerConfig -> IO Word32
-scannerConfigReadSymbol2Token s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteChar2Token :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteChar2Token s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 104) (val :: Word32)
+
+data ScannerConfigChar2TokenFieldInfo
+instance AttrInfo ScannerConfigChar2TokenFieldInfo where
+    type AttrAllowedOps ScannerConfigChar2TokenFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigChar2TokenFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigChar2TokenFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigChar2TokenFieldInfo = Word32
+    type AttrLabel ScannerConfigChar2TokenFieldInfo = "char_2_token"
+    attrGet _ = scannerConfigReadChar2Token
+    attrSet _ = scannerConfigWriteChar2Token
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigChar2Token :: AttrLabelProxy "char2Token"
+scannerConfigChar2Token = AttrLabelProxy
+
+
+scannerConfigReadSymbol2Token :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadSymbol2Token s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 108) :: IO Word32
     return val
 
-scannerConfigReadScope0Fallback :: ScannerConfig -> IO Word32
-scannerConfigReadScope0Fallback s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteSymbol2Token :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteSymbol2Token s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 108) (val :: Word32)
+
+data ScannerConfigSymbol2TokenFieldInfo
+instance AttrInfo ScannerConfigSymbol2TokenFieldInfo where
+    type AttrAllowedOps ScannerConfigSymbol2TokenFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigSymbol2TokenFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigSymbol2TokenFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigSymbol2TokenFieldInfo = Word32
+    type AttrLabel ScannerConfigSymbol2TokenFieldInfo = "symbol_2_token"
+    attrGet _ = scannerConfigReadSymbol2Token
+    attrSet _ = scannerConfigWriteSymbol2Token
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigSymbol2Token :: AttrLabelProxy "symbol2Token"
+scannerConfigSymbol2Token = AttrLabelProxy
+
+
+scannerConfigReadScope0Fallback :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadScope0Fallback s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 112) :: IO Word32
     return val
 
-scannerConfigReadStoreInt64 :: ScannerConfig -> IO Word32
-scannerConfigReadStoreInt64 s = withManagedPtr s $ \ptr -> do
+scannerConfigWriteScope0Fallback :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteScope0Fallback s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 112) (val :: Word32)
+
+data ScannerConfigScope0FallbackFieldInfo
+instance AttrInfo ScannerConfigScope0FallbackFieldInfo where
+    type AttrAllowedOps ScannerConfigScope0FallbackFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigScope0FallbackFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigScope0FallbackFieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigScope0FallbackFieldInfo = Word32
+    type AttrLabel ScannerConfigScope0FallbackFieldInfo = "scope_0_fallback"
+    attrGet _ = scannerConfigReadScope0Fallback
+    attrSet _ = scannerConfigWriteScope0Fallback
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigScope0Fallback :: AttrLabelProxy "scope0Fallback"
+scannerConfigScope0Fallback = AttrLabelProxy
+
+
+scannerConfigReadStoreInt64 :: MonadIO m => ScannerConfig -> m Word32
+scannerConfigReadStoreInt64 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 116) :: IO Word32
     return val
+
+scannerConfigWriteStoreInt64 :: MonadIO m => ScannerConfig -> Word32 -> m ()
+scannerConfigWriteStoreInt64 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 116) (val :: Word32)
+
+data ScannerConfigStoreInt64FieldInfo
+instance AttrInfo ScannerConfigStoreInt64FieldInfo where
+    type AttrAllowedOps ScannerConfigStoreInt64FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ScannerConfigStoreInt64FieldInfo = (~) Word32
+    type AttrBaseTypeConstraint ScannerConfigStoreInt64FieldInfo = (~) ScannerConfig
+    type AttrGetType ScannerConfigStoreInt64FieldInfo = Word32
+    type AttrLabel ScannerConfigStoreInt64FieldInfo = "store_int64"
+    attrGet _ = scannerConfigReadStoreInt64
+    attrSet _ = scannerConfigWriteStoreInt64
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+scannerConfigStoreInt64 :: AttrLabelProxy "storeInt64"
+scannerConfigStoreInt64 = AttrLabelProxy
+
+
+
+type instance AttributeList ScannerConfig = ScannerConfigAttributeList
+type ScannerConfigAttributeList = ('[ '("csetSkipCharacters", ScannerConfigCsetSkipCharactersFieldInfo), '("csetIdentifierFirst", ScannerConfigCsetIdentifierFirstFieldInfo), '("csetIdentifierNth", ScannerConfigCsetIdentifierNthFieldInfo), '("cpairCommentSingle", ScannerConfigCpairCommentSingleFieldInfo), '("caseSensitive", ScannerConfigCaseSensitiveFieldInfo), '("skipCommentMulti", ScannerConfigSkipCommentMultiFieldInfo), '("skipCommentSingle", ScannerConfigSkipCommentSingleFieldInfo), '("scanCommentMulti", ScannerConfigScanCommentMultiFieldInfo), '("scanIdentifier", ScannerConfigScanIdentifierFieldInfo), '("scanIdentifier1char", ScannerConfigScanIdentifier1charFieldInfo), '("scanIdentifierNULL", ScannerConfigScanIdentifierNULLFieldInfo), '("scanSymbols", ScannerConfigScanSymbolsFieldInfo), '("scanBinary", ScannerConfigScanBinaryFieldInfo), '("scanOctal", ScannerConfigScanOctalFieldInfo), '("scanFloat", ScannerConfigScanFloatFieldInfo), '("scanHex", ScannerConfigScanHexFieldInfo), '("scanHexDollar", ScannerConfigScanHexDollarFieldInfo), '("scanStringSq", ScannerConfigScanStringSqFieldInfo), '("scanStringDq", ScannerConfigScanStringDqFieldInfo), '("numbers2Int", ScannerConfigNumbers2IntFieldInfo), '("int2Float", ScannerConfigInt2FloatFieldInfo), '("identifier2String", ScannerConfigIdentifier2StringFieldInfo), '("char2Token", ScannerConfigChar2TokenFieldInfo), '("symbol2Token", ScannerConfigSymbol2TokenFieldInfo), '("scope0Fallback", ScannerConfigScope0FallbackFieldInfo), '("storeInt64", ScannerConfigStoreInt64FieldInfo)] :: [(Symbol, *)])
 
 type family ResolveScannerConfigMethod (t :: Symbol) (o :: *) :: * where
     ResolveScannerConfigMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/ScannerConfig.hs-boot b/GI/GLib/Structs/ScannerConfig.hs-boot
--- a/GI/GLib/Structs/ScannerConfig.hs-boot
+++ b/GI/GLib/Structs/ScannerConfig.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.ScannerConfig 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/GLib/Structs/Sequence.hs b/GI/GLib/Structs/Sequence.hs
--- a/GI/GLib/Structs/Sequence.hs
+++ b/GI/GLib/Structs/Sequence.hs
@@ -56,9 +56,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -70,11 +70,15 @@
 noSequence :: Maybe Sequence
 noSequence = Nothing
 
+
+type instance AttributeList Sequence = SequenceAttributeList
+type SequenceAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Sequence::free
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Sequence", 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
 
@@ -101,7 +105,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Sequence", 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
 
@@ -128,7 +132,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "src", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface "GLib" "SequenceIter", 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
 
@@ -155,7 +159,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "dest", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "begin", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TInterface "GLib" "SequenceIter", 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
 
@@ -186,7 +190,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "iter", argType = TInterface "GLib" "SequenceIter", 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
 
@@ -209,7 +213,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "begin", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TInterface "GLib" "SequenceIter", 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,15 +238,15 @@
 
 -- method Sequence::set
 -- method type : MemberFunction
--- Args : [Arg {argCName = "iter", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "iter", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_sequence_set" g_sequence_set :: 
     Ptr SequenceIter ->                     -- iter : TInterface "GLib" "SequenceIter"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO ()
 
 
@@ -261,7 +265,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "a", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface "GLib" "SequenceIter", 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/GLib/Structs/Sequence.hs-boot b/GI/GLib/Structs/Sequence.hs-boot
--- a/GI/GLib/Structs/Sequence.hs-boot
+++ b/GI/GLib/Structs/Sequence.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Sequence 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/GLib/Structs/SequenceIter.hs b/GI/GLib/Structs/SequenceIter.hs
--- a/GI/GLib/Structs/SequenceIter.hs
+++ b/GI/GLib/Structs/SequenceIter.hs
@@ -42,9 +42,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
@@ -56,11 +56,15 @@
 noSequenceIter :: Maybe SequenceIter
 noSequenceIter = Nothing
 
+
+type instance AttributeList SequenceIter = SequenceIterAttributeList
+type SequenceIterAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method SequenceIter::compare
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface "GLib" "SequenceIter", 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
 
@@ -91,7 +95,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "SequenceIter", 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
 
@@ -118,7 +122,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "SequenceIter", 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
 
@@ -146,7 +150,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "SequenceIter", 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/GLib/Structs/SequenceIter.hs-boot b/GI/GLib/Structs/SequenceIter.hs-boot
--- a/GI/GLib/Structs/SequenceIter.hs-boot
+++ b/GI/GLib/Structs/SequenceIter.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.SequenceIter 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/GLib/Structs/Source.hs b/GI/GLib/Structs/Source.hs
--- a/GI/GLib/Structs/Source.hs
+++ b/GI/GLib/Structs/Source.hs
@@ -178,9 +178,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
@@ -199,20 +199,31 @@
 newZeroSource :: MonadIO m => m Source
 newZeroSource = liftIO $ callocBoxedBytes 96 >>= wrapBoxed Source
 
+instance tag ~ 'AttrSet => Constructible Source tag where
+    new _ attrs = do
+        o <- newZeroSource
+        GI.Attributes.set o attrs
+        return o
+
+
 noSource :: Maybe Source
 noSource = Nothing
 
+
+type instance AttributeList Source = SourceAttributeList
+type SourceAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Source::new
 -- method type : Constructor
--- Args : [Arg {argCName = "source_funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "struct_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "source_funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "struct_size", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Source"
+-- returnType : Just (TInterface "GLib" "Source")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_source_new" g_source_new :: 
     Ptr SourceFuncs ->                      -- source_funcs : TInterface "GLib" "SourceFuncs"
-    Word32 ->                               -- struct_size : TBasicType TUInt32
+    Word32 ->                               -- struct_size : TBasicType TUInt
     IO (Ptr Source)
 
 
@@ -233,7 +244,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_source", argType = TInterface "GLib" "Source", 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
 
@@ -264,7 +275,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TInterface "GLib" "PollFD", 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
 
@@ -295,7 +306,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface "GLib" "MainContext", 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
 
@@ -330,7 +341,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -357,7 +368,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -385,7 +396,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -414,7 +425,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeval", argType = TInterface "GLib" "TimeVal", 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
 
@@ -445,7 +456,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -472,7 +483,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -501,7 +512,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -528,7 +539,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -555,7 +566,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -582,7 +593,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -608,15 +619,15 @@
 
 -- method Source::modify_unix_fd
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_events", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_events", argType = TInterface "GLib" "IOCondition", 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 "g_source_modify_unix_fd" g_source_modify_unix_fd :: 
     Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
-    Ptr () ->                               -- tag : TBasicType TVoid
+    Ptr () ->                               -- tag : TBasicType TPtr
     CUInt ->                                -- new_events : TInterface "GLib" "IOCondition"
     IO ()
 
@@ -640,15 +651,15 @@
 
 -- method Source::query_unix_fd
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "IOCondition"
+-- returnType : Just (TInterface "GLib" "IOCondition")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_source_query_unix_fd" g_source_query_unix_fd :: 
     Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
-    Ptr () ->                               -- tag : TBasicType TVoid
+    Ptr () ->                               -- tag : TBasicType TPtr
     IO CUInt
 
 
@@ -672,7 +683,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Source"
+-- returnType : Just (TInterface "GLib" "Source")
 -- throws : False
 -- Skip return : False
 
@@ -701,7 +712,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_source", argType = TInterface "GLib" "Source", 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
 
@@ -732,7 +743,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TInterface "GLib" "PollFD", 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
 
@@ -761,15 +772,15 @@
 
 -- method Source::remove_unix_fd
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", 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 "g_source_remove_unix_fd" g_source_remove_unix_fd :: 
     Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
-    Ptr () ->                               -- tag : TBasicType TVoid
+    Ptr () ->                               -- tag : TBasicType TPtr
     IO ()
 
 
@@ -790,16 +801,16 @@
 
 -- method Source::set_callback
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_source_set_callback" g_source_set_callback :: 
     Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
     FunPtr SourceFuncC ->                   -- func : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
     IO ()
 
@@ -824,15 +835,15 @@
 
 -- method Source::set_callback_indirect
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback_funcs", argType = TInterface "GLib" "SourceCallbackFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback_funcs", argType = TInterface "GLib" "SourceCallbackFuncs", 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 "g_source_set_callback_indirect" g_source_set_callback_indirect :: 
     Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
-    Ptr () ->                               -- callback_data : TBasicType TVoid
+    Ptr () ->                               -- callback_data : TBasicType TPtr
     Ptr SourceCallbackFuncs ->              -- callback_funcs : TInterface "GLib" "SourceCallbackFuncs"
     IO ()
 
@@ -859,7 +870,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "can_recurse", 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
 
@@ -889,7 +900,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "funcs", argType = TInterface "GLib" "SourceFuncs", 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,7 +931,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -949,15 +960,15 @@
 
 -- method Source::set_priority
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", 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 "g_source_set_priority" g_source_set_priority :: 
     Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
-    Int32 ->                                -- priority : TBasicType TInt32
+    Int32 ->                                -- priority : TBasicType TInt
     IO ()
 
 
@@ -980,7 +991,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ready_time", 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
 
@@ -1009,7 +1020,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", 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
 
@@ -1034,14 +1045,14 @@
 
 -- method Source::remove
 -- method type : MemberFunction
--- Args : [Arg {argCName = "tag", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "tag", argType = TBasicType TUInt, 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 "g_source_remove" g_source_remove :: 
-    Word32 ->                               -- tag : TBasicType TUInt32
+    Word32 ->                               -- tag : TBasicType TUInt
     IO CInt
 
 
@@ -1056,15 +1067,15 @@
 
 -- method Source::remove_by_funcs_user_data
 -- method type : MemberFunction
--- Args : [Arg {argCName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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 = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, 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 TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_source_remove_by_funcs_user_data" g_source_remove_by_funcs_user_data :: 
     Ptr SourceFuncs ->                      -- funcs : TInterface "GLib" "SourceFuncs"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO CInt
 
 
@@ -1082,14 +1093,14 @@
 
 -- method Source::remove_by_user_data
 -- method type : MemberFunction
--- Args : [Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "user_data", 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 "g_source_remove_by_user_data" g_source_remove_by_user_data :: 
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     IO CInt
 
 
@@ -1104,14 +1115,14 @@
 
 -- method Source::set_name_by_id
 -- method type : MemberFunction
--- Args : [Arg {argCName = "tag", argType = TBasicType TUInt32, 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}]
+-- Args : [Arg {argCName = "tag", argType = TBasicType TUInt, 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
 
 foreign import ccall "g_source_set_name_by_id" g_source_set_name_by_id :: 
-    Word32 ->                               -- tag : TBasicType TUInt32
+    Word32 ->                               -- tag : TBasicType TUInt
     CString ->                              -- name : TBasicType TUTF8
     IO ()
 
diff --git a/GI/GLib/Structs/Source.hs-boot b/GI/GLib/Structs/Source.hs-boot
--- a/GI/GLib/Structs/Source.hs-boot
+++ b/GI/GLib/Structs/Source.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Source 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/GLib/Structs/SourceCallbackFuncs.hs b/GI/GLib/Structs/SourceCallbackFuncs.hs
--- a/GI/GLib/Structs/SourceCallbackFuncs.hs
+++ b/GI/GLib/Structs/SourceCallbackFuncs.hs
@@ -20,9 +20,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
@@ -35,12 +35,21 @@
 newZeroSourceCallbackFuncs :: MonadIO m => m SourceCallbackFuncs
 newZeroSourceCallbackFuncs = liftIO $ callocBytes 24 >>= wrapPtr SourceCallbackFuncs
 
+instance tag ~ 'AttrSet => Constructible SourceCallbackFuncs tag where
+    new _ attrs = do
+        o <- newZeroSourceCallbackFuncs
+        GI.Attributes.set o attrs
+        return o
+
+
 noSourceCallbackFuncs :: Maybe SourceCallbackFuncs
 noSourceCallbackFuncs = Nothing
 
--- XXX Skipped getter for "SourceCallbackFuncs:ref" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "SourceCallbackFuncs:ref" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "SourceCallbackFuncs:unref" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
 
--- XXX Skipped getter for "SourceCallbackFuncs:unref" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+type instance AttributeList SourceCallbackFuncs = SourceCallbackFuncsAttributeList
+type SourceCallbackFuncsAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveSourceCallbackFuncsMethod (t :: Symbol) (o :: *) :: * where
     ResolveSourceCallbackFuncsMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/SourceCallbackFuncs.hs-boot b/GI/GLib/Structs/SourceCallbackFuncs.hs-boot
--- a/GI/GLib/Structs/SourceCallbackFuncs.hs-boot
+++ b/GI/GLib/Structs/SourceCallbackFuncs.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.SourceCallbackFuncs 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/GLib/Structs/SourceFuncs.hs b/GI/GLib/Structs/SourceFuncs.hs
--- a/GI/GLib/Structs/SourceFuncs.hs
+++ b/GI/GLib/Structs/SourceFuncs.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,22 @@
 newZeroSourceFuncs :: MonadIO m => m SourceFuncs
 newZeroSourceFuncs = liftIO $ callocBytes 48 >>= wrapPtr SourceFuncs
 
+instance tag ~ 'AttrSet => Constructible SourceFuncs tag where
+    new _ attrs = do
+        o <- newZeroSourceFuncs
+        GI.Attributes.set o attrs
+        return o
+
+
 noSourceFuncs :: Maybe SourceFuncs
 noSourceFuncs = Nothing
 
--- XXX Skipped getter for "SourceFuncs:prepare" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
-
--- XXX Skipped getter for "SourceFuncs:check" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "SourceFuncs:prepare" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "SourceFuncs:check" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+-- XXX Skipped attribute for "SourceFuncs:finalize" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
 
--- XXX Skipped getter for "SourceFuncs:finalize" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+type instance AttributeList SourceFuncs = SourceFuncsAttributeList
+type SourceFuncsAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveSourceFuncsMethod (t :: Symbol) (o :: *) :: * where
     ResolveSourceFuncsMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/SourceFuncs.hs-boot b/GI/GLib/Structs/SourceFuncs.hs-boot
--- a/GI/GLib/Structs/SourceFuncs.hs-boot
+++ b/GI/GLib/Structs/SourceFuncs.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.SourceFuncs 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/GLib/Structs/StatBuf.hs b/GI/GLib/Structs/StatBuf.hs
--- a/GI/GLib/Structs/StatBuf.hs
+++ b/GI/GLib/Structs/StatBuf.hs
@@ -21,9 +21,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
@@ -34,6 +34,10 @@
 newtype StatBuf = StatBuf (ForeignPtr StatBuf)
 noStatBuf :: Maybe StatBuf
 noStatBuf = Nothing
+
+
+type instance AttributeList StatBuf = StatBufAttributeList
+type StatBufAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveStatBufMethod (t :: Symbol) (o :: *) :: * where
     ResolveStatBufMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/StatBuf.hs-boot b/GI/GLib/Structs/StatBuf.hs-boot
--- a/GI/GLib/Structs/StatBuf.hs-boot
+++ b/GI/GLib/Structs/StatBuf.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.StatBuf 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/GLib/Structs/String.hs b/GI/GLib/Structs/String.hs
--- a/GI/GLib/Structs/String.hs
+++ b/GI/GLib/Structs/String.hs
@@ -157,24 +157,31 @@
 
  -- * Properties
 -- ** AllocatedLen
+    stringAllocatedLen                      ,
     stringReadAllocatedLen                  ,
+    stringWriteAllocatedLen                 ,
 
 
 -- ** Len
+    stringLen                               ,
     stringReadLen                           ,
+    stringWriteLen                          ,
 
 
 -- ** Str
+    stringClearStr                          ,
     stringReadStr                           ,
+    stringStr                               ,
+    stringWriteStr                          ,
 
 
 
 
     ) 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
@@ -193,30 +200,107 @@
 newZeroString :: MonadIO m => m String
 newZeroString = liftIO $ callocBoxedBytes 24 >>= wrapBoxed String
 
+instance tag ~ 'AttrSet => Constructible String tag where
+    new _ attrs = do
+        o <- newZeroString
+        GI.Attributes.set o attrs
+        return o
+
+
 noString :: Maybe String
 noString = Nothing
 
-stringReadStr :: String -> IO T.Text
-stringReadStr s = withManagedPtr s $ \ptr -> do
+stringReadStr :: MonadIO m => String -> m (Maybe T.Text)
+stringReadStr 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
 
-stringReadLen :: String -> IO Word64
-stringReadLen s = withManagedPtr s $ \ptr -> do
+stringWriteStr :: MonadIO m => String -> CString -> m ()
+stringWriteStr s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+stringClearStr :: MonadIO m => String -> m ()
+stringClearStr s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data StringStrFieldInfo
+instance AttrInfo StringStrFieldInfo where
+    type AttrAllowedOps StringStrFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint StringStrFieldInfo = (~) CString
+    type AttrBaseTypeConstraint StringStrFieldInfo = (~) String
+    type AttrGetType StringStrFieldInfo = Maybe T.Text
+    type AttrLabel StringStrFieldInfo = "str"
+    attrGet _ = stringReadStr
+    attrSet _ = stringWriteStr
+    attrConstruct = undefined
+    attrClear _ = stringClearStr
+
+stringStr :: AttrLabelProxy "str"
+stringStr = AttrLabelProxy
+
+
+stringReadLen :: MonadIO m => String -> m Word64
+stringReadLen s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word64
     return val
 
-stringReadAllocatedLen :: String -> IO Word64
-stringReadAllocatedLen s = withManagedPtr s $ \ptr -> do
+stringWriteLen :: MonadIO m => String -> Word64 -> m ()
+stringWriteLen s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Word64)
+
+data StringLenFieldInfo
+instance AttrInfo StringLenFieldInfo where
+    type AttrAllowedOps StringLenFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint StringLenFieldInfo = (~) Word64
+    type AttrBaseTypeConstraint StringLenFieldInfo = (~) String
+    type AttrGetType StringLenFieldInfo = Word64
+    type AttrLabel StringLenFieldInfo = "len"
+    attrGet _ = stringReadLen
+    attrSet _ = stringWriteLen
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+stringLen :: AttrLabelProxy "len"
+stringLen = AttrLabelProxy
+
+
+stringReadAllocatedLen :: MonadIO m => String -> m Word64
+stringReadAllocatedLen s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO Word64
     return val
 
+stringWriteAllocatedLen :: MonadIO m => String -> Word64 -> m ()
+stringWriteAllocatedLen s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Word64)
+
+data StringAllocatedLenFieldInfo
+instance AttrInfo StringAllocatedLenFieldInfo where
+    type AttrAllowedOps StringAllocatedLenFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint StringAllocatedLenFieldInfo = (~) Word64
+    type AttrBaseTypeConstraint StringAllocatedLenFieldInfo = (~) String
+    type AttrGetType StringAllocatedLenFieldInfo = Word64
+    type AttrLabel StringAllocatedLenFieldInfo = "allocated_len"
+    attrGet _ = stringReadAllocatedLen
+    attrSet _ = stringWriteAllocatedLen
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+stringAllocatedLen :: AttrLabelProxy "allocatedLen"
+stringAllocatedLen = AttrLabelProxy
+
+
+
+type instance AttributeList String = StringAttributeList
+type StringAttributeList = ('[ '("str", StringStrFieldInfo), '("len", StringLenFieldInfo), '("allocatedLen", StringAllocatedLenFieldInfo)] :: [(Symbol, *)])
+
 -- method String::append
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -249,7 +333,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -280,7 +364,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -315,7 +399,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -347,7 +431,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unescaped", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reserved_chars_allowed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allow_utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -387,7 +471,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -416,7 +500,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -445,7 +529,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rval", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -478,7 +562,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -507,7 +591,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TInterface "GLib" "String", 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
 
@@ -539,7 +623,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -572,7 +656,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "free_segment", 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
 
@@ -586,26 +670,27 @@
     (MonadIO m) =>
     String                                  -- _obj
     -> Bool                                 -- freeSegment
-    -> m T.Text                             -- result
+    -> m (Maybe T.Text)                     -- result
 stringFree _obj freeSegment = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let freeSegment' = (fromIntegral . fromEnum) freeSegment
     result <- g_string_free _obj' freeSegment'
-    checkUnexpectedReturnNULL "g_string_free" result
-    result' <- cstringToText result
-    freeMem result
+    maybeResult <- convertIfNonNull result $ \result' -> do
+        result'' <- cstringToText result'
+        freeMem result'
+        return result''
     touchManagedPtr _obj
-    return result'
+    return maybeResult
 
 data StringFreeMethodInfo
-instance (signature ~ (Bool -> m T.Text), MonadIO m) => MethodInfo StringFreeMethodInfo String signature where
+instance (signature ~ (Bool -> m (Maybe T.Text)), MonadIO m) => MethodInfo StringFreeMethodInfo String signature where
     overloadedMethod _ = stringFree
 
 -- method String::free_to_bytes
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", 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
 
@@ -634,7 +719,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", 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
 
@@ -661,7 +746,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -696,7 +781,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -729,7 +814,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -766,7 +851,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -800,7 +885,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -835,7 +920,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -872,7 +957,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -905,7 +990,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -936,7 +1021,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -971,7 +1056,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -1003,7 +1088,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", 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}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -1034,7 +1119,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", 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}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
@@ -1065,7 +1150,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "String"
+-- returnType : Just (TInterface "GLib" "String")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/String.hs-boot b/GI/GLib/Structs/String.hs-boot
--- a/GI/GLib/Structs/String.hs-boot
+++ b/GI/GLib/Structs/String.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.String 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/GLib/Structs/StringChunk.hs b/GI/GLib/Structs/StringChunk.hs
--- a/GI/GLib/Structs/StringChunk.hs
+++ b/GI/GLib/Structs/StringChunk.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
@@ -61,11 +61,15 @@
 noStringChunk :: Maybe StringChunk
 noStringChunk = Nothing
 
+
+type instance AttributeList StringChunk = StringChunkAttributeList
+type StringChunkAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method StringChunk::clear
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "StringChunk", 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
 
@@ -92,7 +96,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "StringChunk", 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
 
@@ -119,7 +123,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -153,7 +157,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -187,7 +191,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, 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/GLib/Structs/StringChunk.hs-boot b/GI/GLib/Structs/StringChunk.hs-boot
--- a/GI/GLib/Structs/StringChunk.hs-boot
+++ b/GI/GLib/Structs/StringChunk.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.StringChunk 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/GLib/Structs/TestCase.hs b/GI/GLib/Structs/TestCase.hs
--- a/GI/GLib/Structs/TestCase.hs
+++ b/GI/GLib/Structs/TestCase.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
@@ -31,6 +31,10 @@
 newtype TestCase = TestCase (ForeignPtr TestCase)
 noTestCase :: Maybe TestCase
 noTestCase = Nothing
+
+
+type instance AttributeList TestCase = TestCaseAttributeList
+type TestCaseAttributeList = ('[ ] :: [(Symbol, *)])
 
 type family ResolveTestCaseMethod (t :: Symbol) (o :: *) :: * where
     ResolveTestCaseMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/TestCase.hs-boot b/GI/GLib/Structs/TestCase.hs-boot
--- a/GI/GLib/Structs/TestCase.hs-boot
+++ b/GI/GLib/Structs/TestCase.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.TestCase 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/GLib/Structs/TestConfig.hs b/GI/GLib/Structs/TestConfig.hs
--- a/GI/GLib/Structs/TestConfig.hs
+++ b/GI/GLib/Structs/TestConfig.hs
@@ -18,35 +18,47 @@
  -- * Properties
 -- ** TestInitialized
     testConfigReadTestInitialized           ,
+    testConfigTestInitialized               ,
+    testConfigWriteTestInitialized          ,
 
 
 -- ** TestPerf
     testConfigReadTestPerf                  ,
+    testConfigTestPerf                      ,
+    testConfigWriteTestPerf                 ,
 
 
 -- ** TestQuick
     testConfigReadTestQuick                 ,
+    testConfigTestQuick                     ,
+    testConfigWriteTestQuick                ,
 
 
 -- ** TestQuiet
     testConfigReadTestQuiet                 ,
+    testConfigTestQuiet                     ,
+    testConfigWriteTestQuiet                ,
 
 
 -- ** TestUndefined
     testConfigReadTestUndefined             ,
+    testConfigTestUndefined                 ,
+    testConfigWriteTestUndefined            ,
 
 
 -- ** TestVerbose
     testConfigReadTestVerbose               ,
+    testConfigTestVerbose                   ,
+    testConfigWriteTestVerbose              ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -59,44 +71,181 @@
 newZeroTestConfig :: MonadIO m => m TestConfig
 newZeroTestConfig = liftIO $ callocBytes 24 >>= wrapPtr TestConfig
 
+instance tag ~ 'AttrSet => Constructible TestConfig tag where
+    new _ attrs = do
+        o <- newZeroTestConfig
+        GI.Attributes.set o attrs
+        return o
+
+
 noTestConfig :: Maybe TestConfig
 noTestConfig = Nothing
 
-testConfigReadTestInitialized :: TestConfig -> IO Bool
-testConfigReadTestInitialized s = withManagedPtr s $ \ptr -> do
+testConfigReadTestInitialized :: MonadIO m => TestConfig -> m Bool
+testConfigReadTestInitialized s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CInt
     let val' = (/= 0) val
     return val'
 
-testConfigReadTestQuick :: TestConfig -> IO Bool
-testConfigReadTestQuick s = withManagedPtr s $ \ptr -> do
+testConfigWriteTestInitialized :: MonadIO m => TestConfig -> Bool -> m ()
+testConfigWriteTestInitialized s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CInt)
+
+data TestConfigTestInitializedFieldInfo
+instance AttrInfo TestConfigTestInitializedFieldInfo where
+    type AttrAllowedOps TestConfigTestInitializedFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TestConfigTestInitializedFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint TestConfigTestInitializedFieldInfo = (~) TestConfig
+    type AttrGetType TestConfigTestInitializedFieldInfo = Bool
+    type AttrLabel TestConfigTestInitializedFieldInfo = "test_initialized"
+    attrGet _ = testConfigReadTestInitialized
+    attrSet _ = testConfigWriteTestInitialized
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+testConfigTestInitialized :: AttrLabelProxy "testInitialized"
+testConfigTestInitialized = AttrLabelProxy
+
+
+testConfigReadTestQuick :: MonadIO m => TestConfig -> m Bool
+testConfigReadTestQuick s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO CInt
     let val' = (/= 0) val
     return val'
 
-testConfigReadTestPerf :: TestConfig -> IO Bool
-testConfigReadTestPerf s = withManagedPtr s $ \ptr -> do
+testConfigWriteTestQuick :: MonadIO m => TestConfig -> Bool -> m ()
+testConfigWriteTestQuick s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 4) (val' :: CInt)
+
+data TestConfigTestQuickFieldInfo
+instance AttrInfo TestConfigTestQuickFieldInfo where
+    type AttrAllowedOps TestConfigTestQuickFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TestConfigTestQuickFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint TestConfigTestQuickFieldInfo = (~) TestConfig
+    type AttrGetType TestConfigTestQuickFieldInfo = Bool
+    type AttrLabel TestConfigTestQuickFieldInfo = "test_quick"
+    attrGet _ = testConfigReadTestQuick
+    attrSet _ = testConfigWriteTestQuick
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+testConfigTestQuick :: AttrLabelProxy "testQuick"
+testConfigTestQuick = AttrLabelProxy
+
+
+testConfigReadTestPerf :: MonadIO m => TestConfig -> m Bool
+testConfigReadTestPerf s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO CInt
     let val' = (/= 0) val
     return val'
 
-testConfigReadTestVerbose :: TestConfig -> IO Bool
-testConfigReadTestVerbose s = withManagedPtr s $ \ptr -> do
+testConfigWriteTestPerf :: MonadIO m => TestConfig -> Bool -> m ()
+testConfigWriteTestPerf s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 8) (val' :: CInt)
+
+data TestConfigTestPerfFieldInfo
+instance AttrInfo TestConfigTestPerfFieldInfo where
+    type AttrAllowedOps TestConfigTestPerfFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TestConfigTestPerfFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint TestConfigTestPerfFieldInfo = (~) TestConfig
+    type AttrGetType TestConfigTestPerfFieldInfo = Bool
+    type AttrLabel TestConfigTestPerfFieldInfo = "test_perf"
+    attrGet _ = testConfigReadTestPerf
+    attrSet _ = testConfigWriteTestPerf
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+testConfigTestPerf :: AttrLabelProxy "testPerf"
+testConfigTestPerf = AttrLabelProxy
+
+
+testConfigReadTestVerbose :: MonadIO m => TestConfig -> m Bool
+testConfigReadTestVerbose s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 12) :: IO CInt
     let val' = (/= 0) val
     return val'
 
-testConfigReadTestQuiet :: TestConfig -> IO Bool
-testConfigReadTestQuiet s = withManagedPtr s $ \ptr -> do
+testConfigWriteTestVerbose :: MonadIO m => TestConfig -> Bool -> m ()
+testConfigWriteTestVerbose s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 12) (val' :: CInt)
+
+data TestConfigTestVerboseFieldInfo
+instance AttrInfo TestConfigTestVerboseFieldInfo where
+    type AttrAllowedOps TestConfigTestVerboseFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TestConfigTestVerboseFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint TestConfigTestVerboseFieldInfo = (~) TestConfig
+    type AttrGetType TestConfigTestVerboseFieldInfo = Bool
+    type AttrLabel TestConfigTestVerboseFieldInfo = "test_verbose"
+    attrGet _ = testConfigReadTestVerbose
+    attrSet _ = testConfigWriteTestVerbose
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+testConfigTestVerbose :: AttrLabelProxy "testVerbose"
+testConfigTestVerbose = AttrLabelProxy
+
+
+testConfigReadTestQuiet :: MonadIO m => TestConfig -> m Bool
+testConfigReadTestQuiet s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO CInt
     let val' = (/= 0) val
     return val'
 
-testConfigReadTestUndefined :: TestConfig -> IO Bool
-testConfigReadTestUndefined s = withManagedPtr s $ \ptr -> do
+testConfigWriteTestQuiet :: MonadIO m => TestConfig -> Bool -> m ()
+testConfigWriteTestQuiet s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 16) (val' :: CInt)
+
+data TestConfigTestQuietFieldInfo
+instance AttrInfo TestConfigTestQuietFieldInfo where
+    type AttrAllowedOps TestConfigTestQuietFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TestConfigTestQuietFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint TestConfigTestQuietFieldInfo = (~) TestConfig
+    type AttrGetType TestConfigTestQuietFieldInfo = Bool
+    type AttrLabel TestConfigTestQuietFieldInfo = "test_quiet"
+    attrGet _ = testConfigReadTestQuiet
+    attrSet _ = testConfigWriteTestQuiet
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+testConfigTestQuiet :: AttrLabelProxy "testQuiet"
+testConfigTestQuiet = AttrLabelProxy
+
+
+testConfigReadTestUndefined :: MonadIO m => TestConfig -> m Bool
+testConfigReadTestUndefined s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 20) :: IO CInt
     let val' = (/= 0) val
     return val'
+
+testConfigWriteTestUndefined :: MonadIO m => TestConfig -> Bool -> m ()
+testConfigWriteTestUndefined s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 20) (val' :: CInt)
+
+data TestConfigTestUndefinedFieldInfo
+instance AttrInfo TestConfigTestUndefinedFieldInfo where
+    type AttrAllowedOps TestConfigTestUndefinedFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TestConfigTestUndefinedFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint TestConfigTestUndefinedFieldInfo = (~) TestConfig
+    type AttrGetType TestConfigTestUndefinedFieldInfo = Bool
+    type AttrLabel TestConfigTestUndefinedFieldInfo = "test_undefined"
+    attrGet _ = testConfigReadTestUndefined
+    attrSet _ = testConfigWriteTestUndefined
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+testConfigTestUndefined :: AttrLabelProxy "testUndefined"
+testConfigTestUndefined = AttrLabelProxy
+
+
+
+type instance AttributeList TestConfig = TestConfigAttributeList
+type TestConfigAttributeList = ('[ '("testInitialized", TestConfigTestInitializedFieldInfo), '("testQuick", TestConfigTestQuickFieldInfo), '("testPerf", TestConfigTestPerfFieldInfo), '("testVerbose", TestConfigTestVerboseFieldInfo), '("testQuiet", TestConfigTestQuietFieldInfo), '("testUndefined", TestConfigTestUndefinedFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveTestConfigMethod (t :: Symbol) (o :: *) :: * where
     ResolveTestConfigMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Structs/TestConfig.hs-boot b/GI/GLib/Structs/TestConfig.hs-boot
--- a/GI/GLib/Structs/TestConfig.hs-boot
+++ b/GI/GLib/Structs/TestConfig.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.TestConfig 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/GLib/Structs/TestLogBuffer.hs b/GI/GLib/Structs/TestLogBuffer.hs
--- a/GI/GLib/Structs/TestLogBuffer.hs
+++ b/GI/GLib/Structs/TestLogBuffer.hs
@@ -30,9 +30,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -45,14 +45,25 @@
 newZeroTestLogBuffer :: MonadIO m => m TestLogBuffer
 newZeroTestLogBuffer = liftIO $ callocBytes 16 >>= wrapPtr TestLogBuffer
 
+instance tag ~ 'AttrSet => Constructible TestLogBuffer tag where
+    new _ attrs = do
+        o <- newZeroTestLogBuffer
+        GI.Attributes.set o attrs
+        return o
+
+
 noTestLogBuffer :: Maybe TestLogBuffer
 noTestLogBuffer = Nothing
 
+
+type instance AttributeList TestLogBuffer = TestLogBufferAttributeList
+type TestLogBufferAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method TestLogBuffer::free
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestLogBuffer", 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
 
@@ -77,15 +88,15 @@
 
 -- method TestLogBuffer::push
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestLogBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_bytes", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestLogBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_bytes", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes", argType = TBasicType TUInt8, 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 "g_test_log_buffer_push" g_test_log_buffer_push :: 
     Ptr TestLogBuffer ->                    -- _obj : TInterface "GLib" "TestLogBuffer"
-    Word32 ->                               -- n_bytes : TBasicType TUInt32
+    Word32 ->                               -- n_bytes : TBasicType TUInt
     Word8 ->                                -- bytes : TBasicType TUInt8
     IO ()
 
diff --git a/GI/GLib/Structs/TestLogBuffer.hs-boot b/GI/GLib/Structs/TestLogBuffer.hs-boot
--- a/GI/GLib/Structs/TestLogBuffer.hs-boot
+++ b/GI/GLib/Structs/TestLogBuffer.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.TestLogBuffer 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/GLib/Structs/TestLogMsg.hs b/GI/GLib/Structs/TestLogMsg.hs
--- a/GI/GLib/Structs/TestLogMsg.hs
+++ b/GI/GLib/Structs/TestLogMsg.hs
@@ -25,32 +25,43 @@
 
  -- * Properties
 -- ** LogType
+    testLogMsgLogType                       ,
     testLogMsgReadLogType                   ,
+    testLogMsgWriteLogType                  ,
 
 
 -- ** NNums
+    testLogMsgNNums                         ,
     testLogMsgReadNNums                     ,
+    testLogMsgWriteNNums                    ,
 
 
 -- ** NStrings
+    testLogMsgNStrings                      ,
     testLogMsgReadNStrings                  ,
+    testLogMsgWriteNStrings                 ,
 
 
 -- ** Nums
+    testLogMsgNums                          ,
     testLogMsgReadNums                      ,
+    testLogMsgWriteNums                     ,
 
 
 -- ** Strings
+    testLogMsgClearStrings                  ,
     testLogMsgReadStrings                   ,
+    testLogMsgStrings                       ,
+    testLogMsgWriteStrings                  ,
 
 
 
 
     ) 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
@@ -63,41 +74,159 @@
 newZeroTestLogMsg :: MonadIO m => m TestLogMsg
 newZeroTestLogMsg = liftIO $ callocBytes 32 >>= wrapPtr TestLogMsg
 
+instance tag ~ 'AttrSet => Constructible TestLogMsg tag where
+    new _ attrs = do
+        o <- newZeroTestLogMsg
+        GI.Attributes.set o attrs
+        return o
+
+
 noTestLogMsg :: Maybe TestLogMsg
 noTestLogMsg = Nothing
 
-testLogMsgReadLogType :: TestLogMsg -> IO TestLogType
-testLogMsgReadLogType s = withManagedPtr s $ \ptr -> do
+testLogMsgReadLogType :: MonadIO m => TestLogMsg -> m TestLogType
+testLogMsgReadLogType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-testLogMsgReadNStrings :: TestLogMsg -> IO Word32
-testLogMsgReadNStrings s = withManagedPtr s $ \ptr -> do
+testLogMsgWriteLogType :: MonadIO m => TestLogMsg -> TestLogType -> m ()
+testLogMsgWriteLogType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data TestLogMsgLogTypeFieldInfo
+instance AttrInfo TestLogMsgLogTypeFieldInfo where
+    type AttrAllowedOps TestLogMsgLogTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TestLogMsgLogTypeFieldInfo = (~) TestLogType
+    type AttrBaseTypeConstraint TestLogMsgLogTypeFieldInfo = (~) TestLogMsg
+    type AttrGetType TestLogMsgLogTypeFieldInfo = TestLogType
+    type AttrLabel TestLogMsgLogTypeFieldInfo = "log_type"
+    attrGet _ = testLogMsgReadLogType
+    attrSet _ = testLogMsgWriteLogType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+testLogMsgLogType :: AttrLabelProxy "logType"
+testLogMsgLogType = AttrLabelProxy
+
+
+testLogMsgReadNStrings :: MonadIO m => TestLogMsg -> m Word32
+testLogMsgReadNStrings s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO Word32
     return val
 
-testLogMsgReadStrings :: TestLogMsg -> IO T.Text
-testLogMsgReadStrings s = withManagedPtr s $ \ptr -> do
+testLogMsgWriteNStrings :: MonadIO m => TestLogMsg -> Word32 -> m ()
+testLogMsgWriteNStrings s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 4) (val :: Word32)
+
+data TestLogMsgNStringsFieldInfo
+instance AttrInfo TestLogMsgNStringsFieldInfo where
+    type AttrAllowedOps TestLogMsgNStringsFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TestLogMsgNStringsFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint TestLogMsgNStringsFieldInfo = (~) TestLogMsg
+    type AttrGetType TestLogMsgNStringsFieldInfo = Word32
+    type AttrLabel TestLogMsgNStringsFieldInfo = "n_strings"
+    attrGet _ = testLogMsgReadNStrings
+    attrSet _ = testLogMsgWriteNStrings
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+testLogMsgNStrings :: AttrLabelProxy "nStrings"
+testLogMsgNStrings = AttrLabelProxy
+
+
+testLogMsgReadStrings :: MonadIO m => TestLogMsg -> m (Maybe T.Text)
+testLogMsgReadStrings 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
 
-testLogMsgReadNNums :: TestLogMsg -> IO Word32
-testLogMsgReadNNums s = withManagedPtr s $ \ptr -> do
+testLogMsgWriteStrings :: MonadIO m => TestLogMsg -> CString -> m ()
+testLogMsgWriteStrings s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+testLogMsgClearStrings :: MonadIO m => TestLogMsg -> m ()
+testLogMsgClearStrings s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data TestLogMsgStringsFieldInfo
+instance AttrInfo TestLogMsgStringsFieldInfo where
+    type AttrAllowedOps TestLogMsgStringsFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint TestLogMsgStringsFieldInfo = (~) CString
+    type AttrBaseTypeConstraint TestLogMsgStringsFieldInfo = (~) TestLogMsg
+    type AttrGetType TestLogMsgStringsFieldInfo = Maybe T.Text
+    type AttrLabel TestLogMsgStringsFieldInfo = "strings"
+    attrGet _ = testLogMsgReadStrings
+    attrSet _ = testLogMsgWriteStrings
+    attrConstruct = undefined
+    attrClear _ = testLogMsgClearStrings
+
+testLogMsgStrings :: AttrLabelProxy "strings"
+testLogMsgStrings = AttrLabelProxy
+
+
+testLogMsgReadNNums :: MonadIO m => TestLogMsg -> m Word32
+testLogMsgReadNNums s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO Word32
     return val
 
-testLogMsgReadNums :: TestLogMsg -> IO Int64
-testLogMsgReadNums s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO Int64
+testLogMsgWriteNNums :: MonadIO m => TestLogMsg -> Word32 -> m ()
+testLogMsgWriteNNums s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Word32)
+
+data TestLogMsgNNumsFieldInfo
+instance AttrInfo TestLogMsgNNumsFieldInfo where
+    type AttrAllowedOps TestLogMsgNNumsFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TestLogMsgNNumsFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint TestLogMsgNNumsFieldInfo = (~) TestLogMsg
+    type AttrGetType TestLogMsgNNumsFieldInfo = Word32
+    type AttrLabel TestLogMsgNNumsFieldInfo = "n_nums"
+    attrGet _ = testLogMsgReadNNums
+    attrSet _ = testLogMsgWriteNNums
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+testLogMsgNNums :: AttrLabelProxy "nNums"
+testLogMsgNNums = AttrLabelProxy
+
+
+testLogMsgReadNums :: MonadIO m => TestLogMsg -> m CLong
+testLogMsgReadNums s = liftIO $ withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CLong
     return val
 
+testLogMsgWriteNums :: MonadIO m => TestLogMsg -> CLong -> m ()
+testLogMsgWriteNums s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: CLong)
+
+data TestLogMsgNumsFieldInfo
+instance AttrInfo TestLogMsgNumsFieldInfo where
+    type AttrAllowedOps TestLogMsgNumsFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TestLogMsgNumsFieldInfo = (~) CLong
+    type AttrBaseTypeConstraint TestLogMsgNumsFieldInfo = (~) TestLogMsg
+    type AttrGetType TestLogMsgNumsFieldInfo = CLong
+    type AttrLabel TestLogMsgNumsFieldInfo = "nums"
+    attrGet _ = testLogMsgReadNums
+    attrSet _ = testLogMsgWriteNums
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+testLogMsgNums :: AttrLabelProxy "nums"
+testLogMsgNums = AttrLabelProxy
+
+
+
+type instance AttributeList TestLogMsg = TestLogMsgAttributeList
+type TestLogMsgAttributeList = ('[ '("logType", TestLogMsgLogTypeFieldInfo), '("nStrings", TestLogMsgNStringsFieldInfo), '("strings", TestLogMsgStringsFieldInfo), '("nNums", TestLogMsgNNumsFieldInfo), '("nums", TestLogMsgNumsFieldInfo)] :: [(Symbol, *)])
+
 -- method TestLogMsg::free
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestLogMsg", 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/GLib/Structs/TestLogMsg.hs-boot b/GI/GLib/Structs/TestLogMsg.hs-boot
--- a/GI/GLib/Structs/TestLogMsg.hs-boot
+++ b/GI/GLib/Structs/TestLogMsg.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.TestLogMsg 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/GLib/Structs/TestSuite.hs b/GI/GLib/Structs/TestSuite.hs
--- a/GI/GLib/Structs/TestSuite.hs
+++ b/GI/GLib/Structs/TestSuite.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
@@ -45,11 +45,15 @@
 noTestSuite :: Maybe TestSuite
 noTestSuite = Nothing
 
+
+type instance AttributeList TestSuite = TestSuiteAttributeList
+type TestSuiteAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method TestSuite::add
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_case", argType = TInterface "GLib" "TestCase", 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
 
@@ -80,7 +84,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nestedsuite", argType = TInterface "GLib" "TestSuite", 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/GLib/Structs/TestSuite.hs-boot b/GI/GLib/Structs/TestSuite.hs-boot
--- a/GI/GLib/Structs/TestSuite.hs-boot
+++ b/GI/GLib/Structs/TestSuite.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.TestSuite 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/GLib/Structs/Thread.hs b/GI/GLib/Structs/Thread.hs
--- a/GI/GLib/Structs/Thread.hs
+++ b/GI/GLib/Structs/Thread.hs
@@ -59,9 +59,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
@@ -79,11 +79,15 @@
 noThread :: Maybe Thread
 noThread = Nothing
 
+
+type instance AttributeList Thread = ThreadAttributeList
+type ThreadAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Thread::ref
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Thread", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "Thread"
+-- returnType : Just (TInterface "GLib" "Thread")
 -- throws : False
 -- Skip return : False
 
@@ -112,7 +116,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Thread", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -139,7 +143,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt32)
 -- throws : False
 -- Skip return : False
 
@@ -156,14 +160,14 @@
 
 -- method Thread::exit
 -- method type : MemberFunction
--- Args : [Arg {argCName = "retval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "retval", 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 "g_thread_exit" g_thread_exit :: 
-    Ptr () ->                               -- retval : TBasicType TVoid
+    Ptr () ->                               -- retval : TBasicType TPtr
     IO ()
 
 
@@ -179,7 +183,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "Thread"
+-- returnType : Just (TInterface "GLib" "Thread")
 -- throws : False
 -- Skip return : False
 
@@ -200,7 +204,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/Thread.hs-boot b/GI/GLib/Structs/Thread.hs-boot
--- a/GI/GLib/Structs/Thread.hs-boot
+++ b/GI/GLib/Structs/Thread.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Thread 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/GLib/Structs/ThreadPool.hs b/GI/GLib/Structs/ThreadPool.hs
--- a/GI/GLib/Structs/ThreadPool.hs
+++ b/GI/GLib/Structs/ThreadPool.hs
@@ -83,20 +83,25 @@
 
  -- * Properties
 -- ** Exclusive
+    threadPoolExclusive                     ,
     threadPoolReadExclusive                 ,
+    threadPoolWriteExclusive                ,
 
 
 -- ** UserData
+    threadPoolClearUserData                 ,
     threadPoolReadUserData                  ,
+    threadPoolUserData                      ,
+    threadPoolWriteUserData                 ,
 
 
 
 
     ) 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
@@ -109,27 +114,82 @@
 newZeroThreadPool :: MonadIO m => m ThreadPool
 newZeroThreadPool = liftIO $ callocBytes 24 >>= wrapPtr ThreadPool
 
+instance tag ~ 'AttrSet => Constructible ThreadPool tag where
+    new _ attrs = do
+        o <- newZeroThreadPool
+        GI.Attributes.set o attrs
+        return o
+
+
 noThreadPool :: Maybe ThreadPool
 noThreadPool = Nothing
 
--- XXX Skipped getter for "ThreadPool:func" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
-
-threadPoolReadUserData :: ThreadPool -> IO (Ptr ())
-threadPoolReadUserData s = withManagedPtr s $ \ptr -> do
+-- XXX Skipped attribute for "ThreadPool:func" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+threadPoolReadUserData :: MonadIO m => ThreadPool -> m (Ptr ())
+threadPoolReadUserData s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO (Ptr ())
     return val
 
-threadPoolReadExclusive :: ThreadPool -> IO Bool
-threadPoolReadExclusive s = withManagedPtr s $ \ptr -> do
+threadPoolWriteUserData :: MonadIO m => ThreadPool -> Ptr () -> m ()
+threadPoolWriteUserData s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Ptr ())
+
+threadPoolClearUserData :: MonadIO m => ThreadPool -> m ()
+threadPoolClearUserData s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: Ptr ())
+
+data ThreadPoolUserDataFieldInfo
+instance AttrInfo ThreadPoolUserDataFieldInfo where
+    type AttrAllowedOps ThreadPoolUserDataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ThreadPoolUserDataFieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint ThreadPoolUserDataFieldInfo = (~) ThreadPool
+    type AttrGetType ThreadPoolUserDataFieldInfo = Ptr ()
+    type AttrLabel ThreadPoolUserDataFieldInfo = "user_data"
+    attrGet _ = threadPoolReadUserData
+    attrSet _ = threadPoolWriteUserData
+    attrConstruct = undefined
+    attrClear _ = threadPoolClearUserData
+
+threadPoolUserData :: AttrLabelProxy "userData"
+threadPoolUserData = AttrLabelProxy
+
+
+threadPoolReadExclusive :: MonadIO m => ThreadPool -> m Bool
+threadPoolReadExclusive s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO CInt
     let val' = (/= 0) val
     return val'
 
+threadPoolWriteExclusive :: MonadIO m => ThreadPool -> Bool -> m ()
+threadPoolWriteExclusive s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 16) (val' :: CInt)
+
+data ThreadPoolExclusiveFieldInfo
+instance AttrInfo ThreadPoolExclusiveFieldInfo where
+    type AttrAllowedOps ThreadPoolExclusiveFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ThreadPoolExclusiveFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint ThreadPoolExclusiveFieldInfo = (~) ThreadPool
+    type AttrGetType ThreadPoolExclusiveFieldInfo = Bool
+    type AttrLabel ThreadPoolExclusiveFieldInfo = "exclusive"
+    attrGet _ = threadPoolReadExclusive
+    attrSet _ = threadPoolWriteExclusive
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+threadPoolExclusive :: AttrLabelProxy "exclusive"
+threadPoolExclusive = AttrLabelProxy
+
+
+
+type instance AttributeList ThreadPool = ThreadPoolAttributeList
+type ThreadPoolAttributeList = ('[ '("userData", ThreadPoolUserDataFieldInfo), '("exclusive", ThreadPoolExclusiveFieldInfo)] :: [(Symbol, *)])
+
 -- method ThreadPool::free
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "immediate", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wait_", 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
 
@@ -144,13 +204,13 @@
     (MonadIO m) =>
     ThreadPool                              -- _obj
     -> Bool                                 -- immediate
-    -> Bool                                 -- wait
+    -> Bool                                 -- wait_
     -> m ()                                 -- result
-threadPoolFree _obj immediate wait = liftIO $ do
+threadPoolFree _obj immediate wait_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let immediate' = (fromIntegral . fromEnum) immediate
-    let wait' = (fromIntegral . fromEnum) wait
-    g_thread_pool_free _obj' immediate' wait'
+    let wait_' = (fromIntegral . fromEnum) wait_
+    g_thread_pool_free _obj' immediate' wait_'
     touchManagedPtr _obj
     return ()
 
@@ -162,7 +222,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", 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
 
@@ -189,7 +249,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", 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
 
@@ -214,15 +274,15 @@
 
 -- method ThreadPool::move_to_front
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_thread_pool_move_to_front" g_thread_pool_move_to_front :: 
     Ptr ThreadPool ->                       -- _obj : TInterface "GLib" "ThreadPool"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     IO CInt
 
 
@@ -244,15 +304,15 @@
 
 -- method ThreadPool::push
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "g_thread_pool_push" g_thread_pool_push :: 
     Ptr ThreadPool ->                       -- _obj : TInterface "GLib" "ThreadPool"
-    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TPtr
     Ptr (Ptr GError) ->                     -- error
     IO CInt
 
@@ -278,15 +338,15 @@
 
 -- method ThreadPool::set_max_threads
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_threads", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "g_thread_pool_set_max_threads" g_thread_pool_set_max_threads :: 
     Ptr ThreadPool ->                       -- _obj : TInterface "GLib" "ThreadPool"
-    Int32 ->                                -- max_threads : TBasicType TInt32
+    Int32 ->                                -- max_threads : TBasicType TInt
     Ptr (Ptr GError) ->                     -- error
     IO CInt
 
@@ -314,7 +374,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", 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
 
@@ -341,7 +401,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -360,7 +420,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -379,7 +439,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUInt32
+-- returnType : Just (TBasicType TUInt)
 -- throws : False
 -- Skip return : False
 
@@ -396,14 +456,14 @@
 
 -- method ThreadPool::set_max_idle_time
 -- method type : MemberFunction
--- Args : [Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "interval", 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 "g_thread_pool_set_max_idle_time" g_thread_pool_set_max_idle_time :: 
-    Word32 ->                               -- interval : TBasicType TUInt32
+    Word32 ->                               -- interval : TBasicType TUInt
     IO ()
 
 
@@ -417,14 +477,14 @@
 
 -- method ThreadPool::set_max_unused_threads
 -- method type : MemberFunction
--- Args : [Arg {argCName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "max_threads", 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 "g_thread_pool_set_max_unused_threads" g_thread_pool_set_max_unused_threads :: 
-    Int32 ->                                -- max_threads : TBasicType TInt32
+    Int32 ->                                -- max_threads : TBasicType TInt
     IO ()
 
 
@@ -440,7 +500,7 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/GLib/Structs/ThreadPool.hs-boot b/GI/GLib/Structs/ThreadPool.hs-boot
--- a/GI/GLib/Structs/ThreadPool.hs-boot
+++ b/GI/GLib/Structs/ThreadPool.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.ThreadPool 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/GLib/Structs/TimeVal.hs b/GI/GLib/Structs/TimeVal.hs
--- a/GI/GLib/Structs/TimeVal.hs
+++ b/GI/GLib/Structs/TimeVal.hs
@@ -43,19 +43,23 @@
  -- * Properties
 -- ** TvSec
     timeValReadTvSec                        ,
+    timeValTvSec                            ,
+    timeValWriteTvSec                       ,
 
 
 -- ** TvUsec
     timeValReadTvUsec                       ,
+    timeValTvUsec                           ,
+    timeValWriteTvUsec                      ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -68,37 +72,88 @@
 newZeroTimeVal :: MonadIO m => m TimeVal
 newZeroTimeVal = liftIO $ callocBytes 16 >>= wrapPtr TimeVal
 
+instance tag ~ 'AttrSet => Constructible TimeVal tag where
+    new _ attrs = do
+        o <- newZeroTimeVal
+        GI.Attributes.set o attrs
+        return o
+
+
 noTimeVal :: Maybe TimeVal
 noTimeVal = Nothing
 
-timeValReadTvSec :: TimeVal -> IO Int64
-timeValReadTvSec s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Int64
+timeValReadTvSec :: MonadIO m => TimeVal -> m CLong
+timeValReadTvSec s = liftIO $ withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CLong
     return val
 
-timeValReadTvUsec :: TimeVal -> IO Int64
-timeValReadTvUsec s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO Int64
+timeValWriteTvSec :: MonadIO m => TimeVal -> CLong -> m ()
+timeValWriteTvSec s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CLong)
+
+data TimeValTvSecFieldInfo
+instance AttrInfo TimeValTvSecFieldInfo where
+    type AttrAllowedOps TimeValTvSecFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TimeValTvSecFieldInfo = (~) CLong
+    type AttrBaseTypeConstraint TimeValTvSecFieldInfo = (~) TimeVal
+    type AttrGetType TimeValTvSecFieldInfo = CLong
+    type AttrLabel TimeValTvSecFieldInfo = "tv_sec"
+    attrGet _ = timeValReadTvSec
+    attrSet _ = timeValWriteTvSec
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+timeValTvSec :: AttrLabelProxy "tvSec"
+timeValTvSec = AttrLabelProxy
+
+
+timeValReadTvUsec :: MonadIO m => TimeVal -> m CLong
+timeValReadTvUsec s = liftIO $ withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO CLong
     return val
 
+timeValWriteTvUsec :: MonadIO m => TimeVal -> CLong -> m ()
+timeValWriteTvUsec s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CLong)
+
+data TimeValTvUsecFieldInfo
+instance AttrInfo TimeValTvUsecFieldInfo where
+    type AttrAllowedOps TimeValTvUsecFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TimeValTvUsecFieldInfo = (~) CLong
+    type AttrBaseTypeConstraint TimeValTvUsecFieldInfo = (~) TimeVal
+    type AttrGetType TimeValTvUsecFieldInfo = CLong
+    type AttrLabel TimeValTvUsecFieldInfo = "tv_usec"
+    attrGet _ = timeValReadTvUsec
+    attrSet _ = timeValWriteTvUsec
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+timeValTvUsec :: AttrLabelProxy "tvUsec"
+timeValTvUsec = AttrLabelProxy
+
+
+
+type instance AttributeList TimeVal = TimeValAttributeList
+type TimeValAttributeList = ('[ '("tvSec", TimeValTvSecFieldInfo), '("tvUsec", TimeValTvUsecFieldInfo)] :: [(Symbol, *)])
+
 -- method TimeVal::add
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "microseconds", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "microseconds", argType = TBasicType TLong, 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 "g_time_val_add" g_time_val_add :: 
     Ptr TimeVal ->                          -- _obj : TInterface "GLib" "TimeVal"
-    Int64 ->                                -- microseconds : TBasicType TInt64
+    CLong ->                                -- microseconds : TBasicType TLong
     IO ()
 
 
 timeValAdd ::
     (MonadIO m) =>
     TimeVal                                 -- _obj
-    -> Int64                                -- microseconds
+    -> CLong                                -- microseconds
     -> m ()                                 -- result
 timeValAdd _obj microseconds = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
@@ -107,14 +162,14 @@
     return ()
 
 data TimeValAddMethodInfo
-instance (signature ~ (Int64 -> m ()), MonadIO m) => MethodInfo TimeValAddMethodInfo TimeVal signature where
+instance (signature ~ (CLong -> m ()), MonadIO m) => MethodInfo TimeValAddMethodInfo TimeVal signature where
     overloadedMethod _ = timeValAdd
 
 -- method TimeVal::to_iso8601
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeVal", 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
 
@@ -144,7 +199,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "iso_date", argType = TBasicType TUTF8, 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 TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -160,12 +215,12 @@
     -> m (Bool,TimeVal)                     -- result
 timeValFromIso8601 isoDate = liftIO $ do
     isoDate' <- textToCString isoDate
-    time <- callocBytes 16 :: IO (Ptr TimeVal)
-    result <- g_time_val_from_iso8601 isoDate' time
+    time_ <- callocBytes 16 :: IO (Ptr TimeVal)
+    result <- g_time_val_from_iso8601 isoDate' time_
     let result' = (/= 0) result
-    time' <- (wrapPtr TimeVal) time
+    time_' <- (wrapPtr TimeVal) time_
     freeMem isoDate'
-    return (result', time')
+    return (result', time_')
 
 type family ResolveTimeValMethod (t :: Symbol) (o :: *) :: * where
     ResolveTimeValMethod "add" o = TimeValAddMethodInfo
diff --git a/GI/GLib/Structs/TimeVal.hs-boot b/GI/GLib/Structs/TimeVal.hs-boot
--- a/GI/GLib/Structs/TimeVal.hs-boot
+++ b/GI/GLib/Structs/TimeVal.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.TimeVal 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/GLib/Structs/TimeZone.hs b/GI/GLib/Structs/TimeZone.hs
--- a/GI/GLib/Structs/TimeZone.hs
+++ b/GI/GLib/Structs/TimeZone.hs
@@ -69,9 +69,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
@@ -89,11 +89,15 @@
 noTimeZone :: Maybe TimeZone
 noTimeZone = Nothing
 
+
+type instance AttributeList TimeZone = TimeZoneAttributeList
+type TimeZoneAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method TimeZone::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "identifier", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "TimeZone"
+-- returnType : Just (TInterface "GLib" "TimeZone")
 -- throws : False
 -- Skip return : False
 
@@ -122,7 +126,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "TimeZone"
+-- returnType : Just (TInterface "GLib" "TimeZone")
 -- throws : False
 -- Skip return : False
 
@@ -143,7 +147,7 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "GLib" "TimeZone"
+-- returnType : Just (TInterface "GLib" "TimeZone")
 -- throws : False
 -- Skip return : False
 
@@ -164,7 +168,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "GLib" "TimeType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TInt64, 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
 
@@ -179,12 +183,12 @@
     (MonadIO m) =>
     TimeZone                                -- _obj
     -> TimeType                             -- type_
-    -> Int64                                -- time
+    -> Int64                                -- time_
     -> m Int32                              -- result
-timeZoneAdjustTime _obj type_ time = liftIO $ do
+timeZoneAdjustTime _obj type_ time_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let type_' = (fromIntegral . fromEnum) type_
-    result <- g_time_zone_adjust_time _obj' type_' time
+    result <- g_time_zone_adjust_time _obj' type_' time_
     touchManagedPtr _obj
     return result
 
@@ -196,7 +200,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "GLib" "TimeType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TInt64, 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
 
@@ -211,12 +215,12 @@
     (MonadIO m) =>
     TimeZone                                -- _obj
     -> TimeType                             -- type_
-    -> Int64                                -- time
+    -> Int64                                -- time_
     -> m Int32                              -- result
-timeZoneFindInterval _obj type_ time = liftIO $ do
+timeZoneFindInterval _obj type_ time_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let type_' = (fromIntegral . fromEnum) type_
-    result <- g_time_zone_find_interval _obj' type_' time
+    result <- g_time_zone_find_interval _obj' type_' time_
     touchManagedPtr _obj
     return result
 
@@ -226,15 +230,15 @@
 
 -- method TimeZone::get_abbreviation
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_time_zone_get_abbreviation" g_time_zone_get_abbreviation :: 
     Ptr TimeZone ->                         -- _obj : TInterface "GLib" "TimeZone"
-    Int32 ->                                -- interval : TBasicType TInt32
+    Int32 ->                                -- interval : TBasicType TInt
     IO CString
 
 
@@ -257,15 +261,15 @@
 
 -- method TimeZone::get_offset
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt32)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_time_zone_get_offset" g_time_zone_get_offset :: 
     Ptr TimeZone ->                         -- _obj : TInterface "GLib" "TimeZone"
-    Int32 ->                                -- interval : TBasicType TInt32
+    Int32 ->                                -- interval : TBasicType TInt
     IO Int32
 
 
@@ -286,15 +290,15 @@
 
 -- method TimeZone::is_dst
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_time_zone_is_dst" g_time_zone_is_dst :: 
     Ptr TimeZone ->                         -- _obj : TInterface "GLib" "TimeZone"
-    Int32 ->                                -- interval : TBasicType TInt32
+    Int32 ->                                -- interval : TBasicType TInt
     IO CInt
 
 
@@ -318,7 +322,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "TimeZone"
+-- returnType : Just (TInterface "GLib" "TimeZone")
 -- throws : False
 -- Skip return : False
 
@@ -347,7 +351,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", 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/GLib/Structs/TimeZone.hs-boot b/GI/GLib/Structs/TimeZone.hs-boot
--- a/GI/GLib/Structs/TimeZone.hs-boot
+++ b/GI/GLib/Structs/TimeZone.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.TimeZone 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/GLib/Structs/Timer.hs b/GI/GLib/Structs/Timer.hs
--- a/GI/GLib/Structs/Timer.hs
+++ b/GI/GLib/Structs/Timer.hs
@@ -51,9 +51,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
@@ -65,11 +65,15 @@
 noTimer :: Maybe Timer
 noTimer = Nothing
 
+
+type instance AttributeList Timer = TimerAttributeList
+type TimerAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Timer::continue
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", 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
 
@@ -96,7 +100,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", 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
 
@@ -121,22 +125,22 @@
 
 -- method Timer::elapsed
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "microseconds", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "microseconds", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TDouble
+-- returnType : Just (TBasicType TDouble)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_timer_elapsed" g_timer_elapsed :: 
     Ptr Timer ->                            -- _obj : TInterface "GLib" "Timer"
-    Word64 ->                               -- microseconds : TBasicType TUInt64
+    CULong ->                               -- microseconds : TBasicType TULong
     IO CDouble
 
 
 timerElapsed ::
     (MonadIO m) =>
     Timer                                   -- _obj
-    -> Word64                               -- microseconds
+    -> CULong                               -- microseconds
     -> m Double                             -- result
 timerElapsed _obj microseconds = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
@@ -146,14 +150,14 @@
     return result'
 
 data TimerElapsedMethodInfo
-instance (signature ~ (Word64 -> m Double), MonadIO m) => MethodInfo TimerElapsedMethodInfo Timer signature where
+instance (signature ~ (CULong -> m Double), MonadIO m) => MethodInfo TimerElapsedMethodInfo Timer signature where
     overloadedMethod _ = timerElapsed
 
 -- method Timer::reset
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", 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
 
@@ -180,7 +184,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", 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
 
@@ -207,7 +211,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", 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/GLib/Structs/Timer.hs-boot b/GI/GLib/Structs/Timer.hs-boot
--- a/GI/GLib/Structs/Timer.hs-boot
+++ b/GI/GLib/Structs/Timer.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Timer 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/GLib/Structs/TrashStack.hs b/GI/GLib/Structs/TrashStack.hs
--- a/GI/GLib/Structs/TrashStack.hs
+++ b/GI/GLib/Structs/TrashStack.hs
@@ -31,16 +31,19 @@
 
  -- * Properties
 -- ** Next
+    trashStackClearNext                     ,
+    trashStackNext                          ,
     trashStackReadNext                      ,
+    trashStackWriteNext                     ,
 
 
 
 
     ) 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,20 +56,57 @@
 newZeroTrashStack :: MonadIO m => m TrashStack
 newZeroTrashStack = liftIO $ callocBytes 8 >>= wrapPtr TrashStack
 
+instance tag ~ 'AttrSet => Constructible TrashStack tag where
+    new _ attrs = do
+        o <- newZeroTrashStack
+        GI.Attributes.set o attrs
+        return o
+
+
 noTrashStack :: Maybe TrashStack
 noTrashStack = Nothing
 
-trashStackReadNext :: TrashStack -> IO TrashStack
-trashStackReadNext s = withManagedPtr s $ \ptr -> do
+trashStackReadNext :: MonadIO m => TrashStack -> m (Maybe TrashStack)
+trashStackReadNext s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr TrashStack)
-    val' <- (newPtr 8 TrashStack) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 8 TrashStack) val'
+        return val''
+    return result
 
+trashStackWriteNext :: MonadIO m => TrashStack -> Ptr TrashStack -> m ()
+trashStackWriteNext s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr TrashStack)
+
+trashStackClearNext :: MonadIO m => TrashStack -> m ()
+trashStackClearNext s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr TrashStack)
+
+data TrashStackNextFieldInfo
+instance AttrInfo TrashStackNextFieldInfo where
+    type AttrAllowedOps TrashStackNextFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint TrashStackNextFieldInfo = (~) (Ptr TrashStack)
+    type AttrBaseTypeConstraint TrashStackNextFieldInfo = (~) TrashStack
+    type AttrGetType TrashStackNextFieldInfo = Maybe TrashStack
+    type AttrLabel TrashStackNextFieldInfo = "next"
+    attrGet _ = trashStackReadNext
+    attrSet _ = trashStackWriteNext
+    attrConstruct = undefined
+    attrClear _ = trashStackClearNext
+
+trashStackNext :: AttrLabelProxy "next"
+trashStackNext = AttrLabelProxy
+
+
+
+type instance AttributeList TrashStack = TrashStackAttributeList
+type TrashStackAttributeList = ('[ '("next", TrashStackNextFieldInfo)] :: [(Symbol, *)])
+
 -- method TrashStack::height
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "stack_p", argType = TInterface "GLib" "TrashStack", 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
 
@@ -87,15 +127,15 @@
 
 -- method TrashStack::push
 -- method type : MemberFunction
--- Args : [Arg {argCName = "stack_p", argType = TInterface "GLib" "TrashStack", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data_p", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "stack_p", argType = TInterface "GLib" "TrashStack", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data_p", 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 "g_trash_stack_push" g_trash_stack_push :: 
     Ptr TrashStack ->                       -- stack_p : TInterface "GLib" "TrashStack"
-    Ptr () ->                               -- data_p : TBasicType TVoid
+    Ptr () ->                               -- data_p : TBasicType TPtr
     IO ()
 
 
diff --git a/GI/GLib/Structs/TrashStack.hs-boot b/GI/GLib/Structs/TrashStack.hs-boot
--- a/GI/GLib/Structs/TrashStack.hs-boot
+++ b/GI/GLib/Structs/TrashStack.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.TrashStack 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/GLib/Structs/Tree.hs b/GI/GLib/Structs/Tree.hs
--- a/GI/GLib/Structs/Tree.hs
+++ b/GI/GLib/Structs/Tree.hs
@@ -68,9 +68,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -82,11 +82,15 @@
 noTree :: Maybe Tree
 noTree = Nothing
 
+
+type instance AttributeList Tree = TreeAttributeList
+type TreeAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Tree::destroy
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", 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
 
@@ -113,7 +117,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", 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
 
@@ -138,16 +142,16 @@
 
 -- method Tree::insert
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", 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 "g_tree_insert" g_tree_insert :: 
     Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
-    Ptr () ->                               -- key : TBasicType TVoid
-    Ptr () ->                               -- value : TBasicType TVoid
+    Ptr () ->                               -- key : TBasicType TPtr
+    Ptr () ->                               -- value : TBasicType TPtr
     IO ()
 
 
@@ -169,17 +173,17 @@
 
 -- method Tree::lookup_extended
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lookup_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "orig_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lookup_key", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "orig_key", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", 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 "g_tree_lookup_extended" g_tree_lookup_extended :: 
     Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
-    Ptr () ->                               -- lookup_key : TBasicType TVoid
-    Ptr () ->                               -- orig_key : TBasicType TVoid
-    Ptr () ->                               -- value : TBasicType TVoid
+    Ptr () ->                               -- lookup_key : TBasicType TPtr
+    Ptr () ->                               -- orig_key : TBasicType TPtr
+    Ptr () ->                               -- value : TBasicType TPtr
     IO CInt
 
 
@@ -205,7 +209,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", 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
 
@@ -230,15 +234,15 @@
 
 -- method Tree::remove
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", 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 "g_tree_remove" g_tree_remove :: 
     Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
-    Ptr () ->                               -- key : TBasicType TVoid
+    Ptr () ->                               -- key : TBasicType TPtr
     IO CInt
 
 
@@ -260,16 +264,16 @@
 
 -- method Tree::replace
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", 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 "g_tree_replace" g_tree_replace :: 
     Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
-    Ptr () ->                               -- key : TBasicType TVoid
-    Ptr () ->                               -- value : TBasicType TVoid
+    Ptr () ->                               -- key : TBasicType TPtr
+    Ptr () ->                               -- value : TBasicType TPtr
     IO ()
 
 
@@ -291,15 +295,15 @@
 
 -- method Tree::steal
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", 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 "g_tree_steal" g_tree_steal :: 
     Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
-    Ptr () ->                               -- key : TBasicType TVoid
+    Ptr () ->                               -- key : TBasicType TPtr
     IO CInt
 
 
@@ -323,7 +327,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", 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/GLib/Structs/Tree.hs-boot b/GI/GLib/Structs/Tree.hs-boot
--- a/GI/GLib/Structs/Tree.hs-boot
+++ b/GI/GLib/Structs/Tree.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.Tree 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/GLib/Structs/VariantBuilder.hs b/GI/GLib/Structs/VariantBuilder.hs
--- a/GI/GLib/Structs/VariantBuilder.hs
+++ b/GI/GLib/Structs/VariantBuilder.hs
@@ -62,9 +62,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
@@ -83,14 +83,25 @@
 newZeroVariantBuilder :: MonadIO m => m VariantBuilder
 newZeroVariantBuilder = liftIO $ callocBoxedBytes 128 >>= wrapBoxed VariantBuilder
 
+instance tag ~ 'AttrSet => Constructible VariantBuilder tag where
+    new _ attrs = do
+        o <- newZeroVariantBuilder
+        GI.Attributes.set o attrs
+        return o
+
+
 noVariantBuilder :: Maybe VariantBuilder
 noVariantBuilder = Nothing
 
+
+type instance AttributeList VariantBuilder = VariantBuilderAttributeList
+type VariantBuilderAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method VariantBuilder::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantBuilder"
+-- returnType : Just (TInterface "GLib" "VariantBuilder")
 -- throws : False
 -- Skip return : False
 
@@ -115,7 +126,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", 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 TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -145,7 +156,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", 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
 
@@ -172,7 +183,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", 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
 
@@ -201,7 +212,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "GLib" "VariantType", 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
 
@@ -232,7 +243,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantBuilder"
+-- returnType : Just (TInterface "GLib" "VariantBuilder")
 -- throws : False
 -- Skip return : False
 
@@ -261,7 +272,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", 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/GLib/Structs/VariantBuilder.hs-boot b/GI/GLib/Structs/VariantBuilder.hs-boot
--- a/GI/GLib/Structs/VariantBuilder.hs-boot
+++ b/GI/GLib/Structs/VariantBuilder.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.VariantBuilder 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/GLib/Structs/VariantDict.hs b/GI/GLib/Structs/VariantDict.hs
--- a/GI/GLib/Structs/VariantDict.hs
+++ b/GI/GLib/Structs/VariantDict.hs
@@ -154,9 +154,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
@@ -175,14 +175,25 @@
 newZeroVariantDict :: MonadIO m => m VariantDict
 newZeroVariantDict = liftIO $ callocBoxedBytes 128 >>= wrapBoxed VariantDict
 
+instance tag ~ 'AttrSet => Constructible VariantDict tag where
+    new _ attrs = do
+        o <- newZeroVariantDict
+        GI.Attributes.set o attrs
+        return o
+
+
 noVariantDict :: Maybe VariantDict
 noVariantDict = Nothing
 
+
+type instance AttributeList VariantDict = VariantDictAttributeList
+type VariantDictAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method VariantDict::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "from_asv", argType = TVariant, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantDict"
+-- returnType : Just (TInterface "GLib" "VariantDict")
 -- throws : False
 -- Skip return : False
 
@@ -210,7 +221,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", 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
 
@@ -237,7 +248,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", 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
 
@@ -269,7 +280,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", 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
 
@@ -298,7 +309,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, 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 TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -332,7 +343,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expected_type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TVariant
+-- returnType : Just TVariant
 -- throws : False
 -- Skip return : False
 
@@ -373,7 +384,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantDict"
+-- returnType : Just (TInterface "GLib" "VariantDict")
 -- throws : False
 -- Skip return : False
 
@@ -402,7 +413,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", 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
 
@@ -434,7 +445,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", 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/GLib/Structs/VariantDict.hs-boot b/GI/GLib/Structs/VariantDict.hs-boot
--- a/GI/GLib/Structs/VariantDict.hs-boot
+++ b/GI/GLib/Structs/VariantDict.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.VariantDict 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/GLib/Structs/VariantType.hs b/GI/GLib/Structs/VariantType.hs
--- a/GI/GLib/Structs/VariantType.hs
+++ b/GI/GLib/Structs/VariantType.hs
@@ -301,9 +301,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
@@ -321,11 +321,15 @@
 noVariantType :: Maybe VariantType
 noVariantType = Nothing
 
+
+type instance AttributeList VariantType = VariantTypeAttributeList
+type VariantTypeAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method VariantType::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "type_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -350,7 +354,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "element", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -375,7 +379,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "key", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -404,7 +408,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "element", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -427,15 +431,15 @@
 
 -- method VariantType::new_tuple
 -- method type : Constructor
--- Args : [Arg {argCName = "items", argType = TCArray False (-1) 1 (TInterface "GLib" "VariantType"), 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}]
--- Lengths : [Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
--- returnType : TInterface "GLib" "VariantType"
+-- Args : [Arg {argCName = "items", argType = TCArray False (-1) 1 (TInterface "GLib" "VariantType"), 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 : [Arg {argCName = "length", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "g_variant_type_new_tuple" g_variant_type_new_tuple :: 
     Ptr (Ptr VariantType) ->                -- items : TCArray False (-1) 1 (TInterface "GLib" "VariantType")
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     IO (Ptr VariantType)
 
 
@@ -458,7 +462,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -487,7 +491,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -517,7 +521,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -546,7 +550,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type2", argType = TInterface "GLib" "VariantType", 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
 
@@ -578,7 +582,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -607,7 +611,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -634,7 +638,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -661,7 +665,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -688,7 +692,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -716,7 +720,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -744,7 +748,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -772,7 +776,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -800,7 +804,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -828,7 +832,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -856,7 +860,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "supertype", argType = TInterface "GLib" "VariantType", 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
 
@@ -888,7 +892,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -916,7 +920,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -944,7 +948,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -973,7 +977,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", 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
 
@@ -1000,7 +1004,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -1029,7 +1033,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -1058,7 +1062,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "arg0", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "GLib" "VariantType"
+-- returnType : Just (TInterface "GLib" "VariantType")
 -- throws : False
 -- Skip return : False
 
@@ -1083,7 +1087,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "type_string", 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
 
@@ -1107,7 +1111,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "limit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", 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
 
diff --git a/GI/GLib/Structs/VariantType.hs-boot b/GI/GLib/Structs/VariantType.hs-boot
--- a/GI/GLib/Structs/VariantType.hs-boot
+++ b/GI/GLib/Structs/VariantType.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Structs.VariantType 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/GLib/Unions.hs b/GI/GLib/Unions.hs
--- a/GI/GLib/Unions.hs
+++ b/GI/GLib/Unions.hs
@@ -20,9 +20,9 @@
 import GI.GLib.Unions.Mutex
 import GI.GLib.Unions.TokenValue
 
-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/GLib/Unions/DoubleIEEE754.hs b/GI/GLib/Unions/DoubleIEEE754.hs
--- a/GI/GLib/Unions/DoubleIEEE754.hs
+++ b/GI/GLib/Unions/DoubleIEEE754.hs
@@ -18,15 +18,17 @@
  -- * Properties
 -- ** VDouble
     doubleIEEE754ReadVDouble                ,
+    doubleIEEE754VDouble                    ,
+    doubleIEEE754WriteVDouble               ,
 
 
 
 
     ) 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
@@ -39,14 +41,46 @@
 newZeroDoubleIEEE754 :: MonadIO m => m DoubleIEEE754
 newZeroDoubleIEEE754 = liftIO $ callocBytes 8 >>= wrapPtr DoubleIEEE754
 
+instance tag ~ 'AttrSet => Constructible DoubleIEEE754 tag where
+    new _ attrs = do
+        o <- newZeroDoubleIEEE754
+        GI.Attributes.set o attrs
+        return o
+
+
 noDoubleIEEE754 :: Maybe DoubleIEEE754
 noDoubleIEEE754 = Nothing
 
-doubleIEEE754ReadVDouble :: DoubleIEEE754 -> IO Double
-doubleIEEE754ReadVDouble s = withManagedPtr s $ \ptr -> do
+doubleIEEE754ReadVDouble :: MonadIO m => DoubleIEEE754 -> m Double
+doubleIEEE754ReadVDouble s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CDouble
     let val' = realToFrac val
     return val'
+
+doubleIEEE754WriteVDouble :: MonadIO m => DoubleIEEE754 -> Double -> m ()
+doubleIEEE754WriteVDouble s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 0) (val' :: CDouble)
+
+data DoubleIEEE754VDoubleFieldInfo
+instance AttrInfo DoubleIEEE754VDoubleFieldInfo where
+    type AttrAllowedOps DoubleIEEE754VDoubleFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DoubleIEEE754VDoubleFieldInfo = (~) Double
+    type AttrBaseTypeConstraint DoubleIEEE754VDoubleFieldInfo = (~) DoubleIEEE754
+    type AttrGetType DoubleIEEE754VDoubleFieldInfo = Double
+    type AttrLabel DoubleIEEE754VDoubleFieldInfo = "v_double"
+    attrGet _ = doubleIEEE754ReadVDouble
+    attrSet _ = doubleIEEE754WriteVDouble
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+doubleIEEE754VDouble :: AttrLabelProxy "vDouble"
+doubleIEEE754VDouble = AttrLabelProxy
+
+
+
+type instance AttributeList DoubleIEEE754 = DoubleIEEE754AttributeList
+type DoubleIEEE754AttributeList = ('[ '("vDouble", DoubleIEEE754VDoubleFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveDoubleIEEE754Method (t :: Symbol) (o :: *) :: * where
     ResolveDoubleIEEE754Method l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Unions/DoubleIEEE754.hs-boot b/GI/GLib/Unions/DoubleIEEE754.hs-boot
--- a/GI/GLib/Unions/DoubleIEEE754.hs-boot
+++ b/GI/GLib/Unions/DoubleIEEE754.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Unions.DoubleIEEE754 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/GLib/Unions/FloatIEEE754.hs b/GI/GLib/Unions/FloatIEEE754.hs
--- a/GI/GLib/Unions/FloatIEEE754.hs
+++ b/GI/GLib/Unions/FloatIEEE754.hs
@@ -18,15 +18,17 @@
  -- * Properties
 -- ** VFloat
     floatIEEE754ReadVFloat                  ,
+    floatIEEE754VFloat                      ,
+    floatIEEE754WriteVFloat                 ,
 
 
 
 
     ) 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
@@ -39,14 +41,46 @@
 newZeroFloatIEEE754 :: MonadIO m => m FloatIEEE754
 newZeroFloatIEEE754 = liftIO $ callocBytes 4 >>= wrapPtr FloatIEEE754
 
+instance tag ~ 'AttrSet => Constructible FloatIEEE754 tag where
+    new _ attrs = do
+        o <- newZeroFloatIEEE754
+        GI.Attributes.set o attrs
+        return o
+
+
 noFloatIEEE754 :: Maybe FloatIEEE754
 noFloatIEEE754 = Nothing
 
-floatIEEE754ReadVFloat :: FloatIEEE754 -> IO Float
-floatIEEE754ReadVFloat s = withManagedPtr s $ \ptr -> do
+floatIEEE754ReadVFloat :: MonadIO m => FloatIEEE754 -> m Float
+floatIEEE754ReadVFloat s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CFloat
     let val' = realToFrac val
     return val'
+
+floatIEEE754WriteVFloat :: MonadIO m => FloatIEEE754 -> Float -> m ()
+floatIEEE754WriteVFloat s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 0) (val' :: CFloat)
+
+data FloatIEEE754VFloatFieldInfo
+instance AttrInfo FloatIEEE754VFloatFieldInfo where
+    type AttrAllowedOps FloatIEEE754VFloatFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint FloatIEEE754VFloatFieldInfo = (~) Float
+    type AttrBaseTypeConstraint FloatIEEE754VFloatFieldInfo = (~) FloatIEEE754
+    type AttrGetType FloatIEEE754VFloatFieldInfo = Float
+    type AttrLabel FloatIEEE754VFloatFieldInfo = "v_float"
+    attrGet _ = floatIEEE754ReadVFloat
+    attrSet _ = floatIEEE754WriteVFloat
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+floatIEEE754VFloat :: AttrLabelProxy "vFloat"
+floatIEEE754VFloat = AttrLabelProxy
+
+
+
+type instance AttributeList FloatIEEE754 = FloatIEEE754AttributeList
+type FloatIEEE754AttributeList = ('[ '("vFloat", FloatIEEE754VFloatFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveFloatIEEE754Method (t :: Symbol) (o :: *) :: * where
     ResolveFloatIEEE754Method l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Unions/FloatIEEE754.hs-boot b/GI/GLib/Unions/FloatIEEE754.hs-boot
--- a/GI/GLib/Unions/FloatIEEE754.hs-boot
+++ b/GI/GLib/Unions/FloatIEEE754.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Unions.FloatIEEE754 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/GLib/Unions/Mutex.hs b/GI/GLib/Unions/Mutex.hs
--- a/GI/GLib/Unions/Mutex.hs
+++ b/GI/GLib/Unions/Mutex.hs
@@ -45,9 +45,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -60,14 +60,25 @@
 newZeroMutex :: MonadIO m => m Mutex
 newZeroMutex = liftIO $ callocBytes 8 >>= wrapPtr Mutex
 
+instance tag ~ 'AttrSet => Constructible Mutex tag where
+    new _ attrs = do
+        o <- newZeroMutex
+        GI.Attributes.set o attrs
+        return o
+
+
 noMutex :: Maybe Mutex
 noMutex = Nothing
 
+
+type instance AttributeList Mutex = MutexAttributeList
+type MutexAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method Mutex::clear
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Mutex", 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
 
@@ -94,7 +105,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Mutex", 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
 
@@ -121,7 +132,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Mutex", 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
 
@@ -148,7 +159,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Mutex", 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
 
@@ -176,7 +187,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Mutex", 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/GLib/Unions/Mutex.hs-boot b/GI/GLib/Unions/Mutex.hs-boot
--- a/GI/GLib/Unions/Mutex.hs-boot
+++ b/GI/GLib/Unions/Mutex.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Unions.Mutex 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/GLib/Unions/TokenValue.hs b/GI/GLib/Unions/TokenValue.hs
--- a/GI/GLib/Unions/TokenValue.hs
+++ b/GI/GLib/Unions/TokenValue.hs
@@ -18,59 +18,87 @@
  -- * Properties
 -- ** VBinary
     tokenValueReadVBinary                   ,
+    tokenValueVBinary                       ,
+    tokenValueWriteVBinary                  ,
 
 
 -- ** VChar
     tokenValueReadVChar                     ,
+    tokenValueVChar                         ,
+    tokenValueWriteVChar                    ,
 
 
 -- ** VComment
+    tokenValueClearVComment                 ,
     tokenValueReadVComment                  ,
+    tokenValueVComment                      ,
+    tokenValueWriteVComment                 ,
 
 
 -- ** VError
     tokenValueReadVError                    ,
+    tokenValueVError                        ,
+    tokenValueWriteVError                   ,
 
 
 -- ** VFloat
     tokenValueReadVFloat                    ,
+    tokenValueVFloat                        ,
+    tokenValueWriteVFloat                   ,
 
 
 -- ** VHex
     tokenValueReadVHex                      ,
+    tokenValueVHex                          ,
+    tokenValueWriteVHex                     ,
 
 
 -- ** VIdentifier
+    tokenValueClearVIdentifier              ,
     tokenValueReadVIdentifier               ,
+    tokenValueVIdentifier                   ,
+    tokenValueWriteVIdentifier              ,
 
 
 -- ** VInt
     tokenValueReadVInt                      ,
+    tokenValueVInt                          ,
+    tokenValueWriteVInt                     ,
 
 
 -- ** VInt64
     tokenValueReadVInt64                    ,
+    tokenValueVInt64                        ,
+    tokenValueWriteVInt64                   ,
 
 
 -- ** VOctal
     tokenValueReadVOctal                    ,
+    tokenValueVOctal                        ,
+    tokenValueWriteVOctal                   ,
 
 
 -- ** VString
+    tokenValueClearVString                  ,
     tokenValueReadVString                   ,
+    tokenValueVString                       ,
+    tokenValueWriteVString                  ,
 
 
 -- ** VSymbol
+    tokenValueClearVSymbol                  ,
     tokenValueReadVSymbol                   ,
+    tokenValueVSymbol                       ,
+    tokenValueWriteVSymbol                  ,
 
 
 
 
     ) 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
@@ -83,72 +111,346 @@
 newZeroTokenValue :: MonadIO m => m TokenValue
 newZeroTokenValue = liftIO $ callocBytes 8 >>= wrapPtr TokenValue
 
+instance tag ~ 'AttrSet => Constructible TokenValue tag where
+    new _ attrs = do
+        o <- newZeroTokenValue
+        GI.Attributes.set o attrs
+        return o
+
+
 noTokenValue :: Maybe TokenValue
 noTokenValue = Nothing
 
-tokenValueReadVSymbol :: TokenValue -> IO (Ptr ())
-tokenValueReadVSymbol s = withManagedPtr s $ \ptr -> do
+tokenValueReadVSymbol :: MonadIO m => TokenValue -> m (Ptr ())
+tokenValueReadVSymbol s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
     return val
 
-tokenValueReadVIdentifier :: TokenValue -> IO T.Text
-tokenValueReadVIdentifier s = withManagedPtr s $ \ptr -> do
+tokenValueWriteVSymbol :: MonadIO m => TokenValue -> Ptr () -> m ()
+tokenValueWriteVSymbol s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ())
+
+tokenValueClearVSymbol :: MonadIO m => TokenValue -> m ()
+tokenValueClearVSymbol s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ())
+
+data TokenValueVSymbolFieldInfo
+instance AttrInfo TokenValueVSymbolFieldInfo where
+    type AttrAllowedOps TokenValueVSymbolFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint TokenValueVSymbolFieldInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint TokenValueVSymbolFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVSymbolFieldInfo = Ptr ()
+    type AttrLabel TokenValueVSymbolFieldInfo = "v_symbol"
+    attrGet _ = tokenValueReadVSymbol
+    attrSet _ = tokenValueWriteVSymbol
+    attrConstruct = undefined
+    attrClear _ = tokenValueClearVSymbol
+
+tokenValueVSymbol :: AttrLabelProxy "vSymbol"
+tokenValueVSymbol = AttrLabelProxy
+
+
+tokenValueReadVIdentifier :: MonadIO m => TokenValue -> m (Maybe T.Text)
+tokenValueReadVIdentifier 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
 
-tokenValueReadVBinary :: TokenValue -> IO Word64
-tokenValueReadVBinary s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Word64
+tokenValueWriteVIdentifier :: MonadIO m => TokenValue -> CString -> m ()
+tokenValueWriteVIdentifier s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+tokenValueClearVIdentifier :: MonadIO m => TokenValue -> m ()
+tokenValueClearVIdentifier s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data TokenValueVIdentifierFieldInfo
+instance AttrInfo TokenValueVIdentifierFieldInfo where
+    type AttrAllowedOps TokenValueVIdentifierFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint TokenValueVIdentifierFieldInfo = (~) CString
+    type AttrBaseTypeConstraint TokenValueVIdentifierFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVIdentifierFieldInfo = Maybe T.Text
+    type AttrLabel TokenValueVIdentifierFieldInfo = "v_identifier"
+    attrGet _ = tokenValueReadVIdentifier
+    attrSet _ = tokenValueWriteVIdentifier
+    attrConstruct = undefined
+    attrClear _ = tokenValueClearVIdentifier
+
+tokenValueVIdentifier :: AttrLabelProxy "vIdentifier"
+tokenValueVIdentifier = AttrLabelProxy
+
+
+tokenValueReadVBinary :: MonadIO m => TokenValue -> m CULong
+tokenValueReadVBinary s = liftIO $ withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CULong
     return val
 
-tokenValueReadVOctal :: TokenValue -> IO Word64
-tokenValueReadVOctal s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Word64
+tokenValueWriteVBinary :: MonadIO m => TokenValue -> CULong -> m ()
+tokenValueWriteVBinary s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CULong)
+
+data TokenValueVBinaryFieldInfo
+instance AttrInfo TokenValueVBinaryFieldInfo where
+    type AttrAllowedOps TokenValueVBinaryFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TokenValueVBinaryFieldInfo = (~) CULong
+    type AttrBaseTypeConstraint TokenValueVBinaryFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVBinaryFieldInfo = CULong
+    type AttrLabel TokenValueVBinaryFieldInfo = "v_binary"
+    attrGet _ = tokenValueReadVBinary
+    attrSet _ = tokenValueWriteVBinary
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+tokenValueVBinary :: AttrLabelProxy "vBinary"
+tokenValueVBinary = AttrLabelProxy
+
+
+tokenValueReadVOctal :: MonadIO m => TokenValue -> m CULong
+tokenValueReadVOctal s = liftIO $ withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CULong
     return val
 
-tokenValueReadVInt :: TokenValue -> IO Word64
-tokenValueReadVInt s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Word64
+tokenValueWriteVOctal :: MonadIO m => TokenValue -> CULong -> m ()
+tokenValueWriteVOctal s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CULong)
+
+data TokenValueVOctalFieldInfo
+instance AttrInfo TokenValueVOctalFieldInfo where
+    type AttrAllowedOps TokenValueVOctalFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TokenValueVOctalFieldInfo = (~) CULong
+    type AttrBaseTypeConstraint TokenValueVOctalFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVOctalFieldInfo = CULong
+    type AttrLabel TokenValueVOctalFieldInfo = "v_octal"
+    attrGet _ = tokenValueReadVOctal
+    attrSet _ = tokenValueWriteVOctal
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+tokenValueVOctal :: AttrLabelProxy "vOctal"
+tokenValueVOctal = AttrLabelProxy
+
+
+tokenValueReadVInt :: MonadIO m => TokenValue -> m CULong
+tokenValueReadVInt s = liftIO $ withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CULong
     return val
 
-tokenValueReadVInt64 :: TokenValue -> IO Word64
-tokenValueReadVInt64 s = withManagedPtr s $ \ptr -> do
+tokenValueWriteVInt :: MonadIO m => TokenValue -> CULong -> m ()
+tokenValueWriteVInt s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CULong)
+
+data TokenValueVIntFieldInfo
+instance AttrInfo TokenValueVIntFieldInfo where
+    type AttrAllowedOps TokenValueVIntFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TokenValueVIntFieldInfo = (~) CULong
+    type AttrBaseTypeConstraint TokenValueVIntFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVIntFieldInfo = CULong
+    type AttrLabel TokenValueVIntFieldInfo = "v_int"
+    attrGet _ = tokenValueReadVInt
+    attrSet _ = tokenValueWriteVInt
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+tokenValueVInt :: AttrLabelProxy "vInt"
+tokenValueVInt = AttrLabelProxy
+
+
+tokenValueReadVInt64 :: MonadIO m => TokenValue -> m Word64
+tokenValueReadVInt64 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Word64
     return val
 
-tokenValueReadVFloat :: TokenValue -> IO Double
-tokenValueReadVFloat s = withManagedPtr s $ \ptr -> do
+tokenValueWriteVInt64 :: MonadIO m => TokenValue -> Word64 -> m ()
+tokenValueWriteVInt64 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Word64)
+
+data TokenValueVInt64FieldInfo
+instance AttrInfo TokenValueVInt64FieldInfo where
+    type AttrAllowedOps TokenValueVInt64FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TokenValueVInt64FieldInfo = (~) Word64
+    type AttrBaseTypeConstraint TokenValueVInt64FieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVInt64FieldInfo = Word64
+    type AttrLabel TokenValueVInt64FieldInfo = "v_int64"
+    attrGet _ = tokenValueReadVInt64
+    attrSet _ = tokenValueWriteVInt64
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+tokenValueVInt64 :: AttrLabelProxy "vInt64"
+tokenValueVInt64 = AttrLabelProxy
+
+
+tokenValueReadVFloat :: MonadIO m => TokenValue -> m Double
+tokenValueReadVFloat s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-tokenValueReadVHex :: TokenValue -> IO Word64
-tokenValueReadVHex s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Word64
+tokenValueWriteVFloat :: MonadIO m => TokenValue -> Double -> m ()
+tokenValueWriteVFloat s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 0) (val' :: CDouble)
+
+data TokenValueVFloatFieldInfo
+instance AttrInfo TokenValueVFloatFieldInfo where
+    type AttrAllowedOps TokenValueVFloatFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TokenValueVFloatFieldInfo = (~) Double
+    type AttrBaseTypeConstraint TokenValueVFloatFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVFloatFieldInfo = Double
+    type AttrLabel TokenValueVFloatFieldInfo = "v_float"
+    attrGet _ = tokenValueReadVFloat
+    attrSet _ = tokenValueWriteVFloat
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+tokenValueVFloat :: AttrLabelProxy "vFloat"
+tokenValueVFloat = AttrLabelProxy
+
+
+tokenValueReadVHex :: MonadIO m => TokenValue -> m CULong
+tokenValueReadVHex s = liftIO $ withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CULong
     return val
 
-tokenValueReadVString :: TokenValue -> IO T.Text
-tokenValueReadVString s = withManagedPtr s $ \ptr -> do
+tokenValueWriteVHex :: MonadIO m => TokenValue -> CULong -> m ()
+tokenValueWriteVHex s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CULong)
+
+data TokenValueVHexFieldInfo
+instance AttrInfo TokenValueVHexFieldInfo where
+    type AttrAllowedOps TokenValueVHexFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TokenValueVHexFieldInfo = (~) CULong
+    type AttrBaseTypeConstraint TokenValueVHexFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVHexFieldInfo = CULong
+    type AttrLabel TokenValueVHexFieldInfo = "v_hex"
+    attrGet _ = tokenValueReadVHex
+    attrSet _ = tokenValueWriteVHex
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+tokenValueVHex :: AttrLabelProxy "vHex"
+tokenValueVHex = AttrLabelProxy
+
+
+tokenValueReadVString :: MonadIO m => TokenValue -> m (Maybe T.Text)
+tokenValueReadVString 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
 
-tokenValueReadVComment :: TokenValue -> IO T.Text
-tokenValueReadVComment s = withManagedPtr s $ \ptr -> do
+tokenValueWriteVString :: MonadIO m => TokenValue -> CString -> m ()
+tokenValueWriteVString s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+tokenValueClearVString :: MonadIO m => TokenValue -> m ()
+tokenValueClearVString s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data TokenValueVStringFieldInfo
+instance AttrInfo TokenValueVStringFieldInfo where
+    type AttrAllowedOps TokenValueVStringFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint TokenValueVStringFieldInfo = (~) CString
+    type AttrBaseTypeConstraint TokenValueVStringFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVStringFieldInfo = Maybe T.Text
+    type AttrLabel TokenValueVStringFieldInfo = "v_string"
+    attrGet _ = tokenValueReadVString
+    attrSet _ = tokenValueWriteVString
+    attrConstruct = undefined
+    attrClear _ = tokenValueClearVString
+
+tokenValueVString :: AttrLabelProxy "vString"
+tokenValueVString = AttrLabelProxy
+
+
+tokenValueReadVComment :: MonadIO m => TokenValue -> m (Maybe T.Text)
+tokenValueReadVComment 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
 
-tokenValueReadVChar :: TokenValue -> IO Word8
-tokenValueReadVChar s = withManagedPtr s $ \ptr -> do
+tokenValueWriteVComment :: MonadIO m => TokenValue -> CString -> m ()
+tokenValueWriteVComment s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+tokenValueClearVComment :: MonadIO m => TokenValue -> m ()
+tokenValueClearVComment s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data TokenValueVCommentFieldInfo
+instance AttrInfo TokenValueVCommentFieldInfo where
+    type AttrAllowedOps TokenValueVCommentFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint TokenValueVCommentFieldInfo = (~) CString
+    type AttrBaseTypeConstraint TokenValueVCommentFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVCommentFieldInfo = Maybe T.Text
+    type AttrLabel TokenValueVCommentFieldInfo = "v_comment"
+    attrGet _ = tokenValueReadVComment
+    attrSet _ = tokenValueWriteVComment
+    attrConstruct = undefined
+    attrClear _ = tokenValueClearVComment
+
+tokenValueVComment :: AttrLabelProxy "vComment"
+tokenValueVComment = AttrLabelProxy
+
+
+tokenValueReadVChar :: MonadIO m => TokenValue -> m Word8
+tokenValueReadVChar s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Word8
     return val
 
-tokenValueReadVError :: TokenValue -> IO Word32
-tokenValueReadVError s = withManagedPtr s $ \ptr -> do
+tokenValueWriteVChar :: MonadIO m => TokenValue -> Word8 -> m ()
+tokenValueWriteVChar s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Word8)
+
+data TokenValueVCharFieldInfo
+instance AttrInfo TokenValueVCharFieldInfo where
+    type AttrAllowedOps TokenValueVCharFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TokenValueVCharFieldInfo = (~) Word8
+    type AttrBaseTypeConstraint TokenValueVCharFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVCharFieldInfo = Word8
+    type AttrLabel TokenValueVCharFieldInfo = "v_char"
+    attrGet _ = tokenValueReadVChar
+    attrSet _ = tokenValueWriteVChar
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+tokenValueVChar :: AttrLabelProxy "vChar"
+tokenValueVChar = AttrLabelProxy
+
+
+tokenValueReadVError :: MonadIO m => TokenValue -> m Word32
+tokenValueReadVError s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Word32
     return val
+
+tokenValueWriteVError :: MonadIO m => TokenValue -> Word32 -> m ()
+tokenValueWriteVError s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Word32)
+
+data TokenValueVErrorFieldInfo
+instance AttrInfo TokenValueVErrorFieldInfo where
+    type AttrAllowedOps TokenValueVErrorFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TokenValueVErrorFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint TokenValueVErrorFieldInfo = (~) TokenValue
+    type AttrGetType TokenValueVErrorFieldInfo = Word32
+    type AttrLabel TokenValueVErrorFieldInfo = "v_error"
+    attrGet _ = tokenValueReadVError
+    attrSet _ = tokenValueWriteVError
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+tokenValueVError :: AttrLabelProxy "vError"
+tokenValueVError = AttrLabelProxy
+
+
+
+type instance AttributeList TokenValue = TokenValueAttributeList
+type TokenValueAttributeList = ('[ '("vSymbol", TokenValueVSymbolFieldInfo), '("vIdentifier", TokenValueVIdentifierFieldInfo), '("vBinary", TokenValueVBinaryFieldInfo), '("vOctal", TokenValueVOctalFieldInfo), '("vInt", TokenValueVIntFieldInfo), '("vInt64", TokenValueVInt64FieldInfo), '("vFloat", TokenValueVFloatFieldInfo), '("vHex", TokenValueVHexFieldInfo), '("vString", TokenValueVStringFieldInfo), '("vComment", TokenValueVCommentFieldInfo), '("vChar", TokenValueVCharFieldInfo), '("vError", TokenValueVErrorFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveTokenValueMethod (t :: Symbol) (o :: *) :: * where
     ResolveTokenValueMethod l o = MethodResolutionFailed l o
diff --git a/GI/GLib/Unions/TokenValue.hs-boot b/GI/GLib/Unions/TokenValue.hs-boot
--- a/GI/GLib/Unions/TokenValue.hs-boot
+++ b/GI/GLib/Unions/TokenValue.hs-boot
@@ -1,8 +1,8 @@
 module GI.GLib.Unions.TokenValue 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-glib.cabal b/gi-glib.cabal
--- a/gi-glib.cabal
+++ b/gi-glib.cabal
@@ -1,6 +1,6 @@
 -- Autogenerated, do not edit.
 name:               gi-glib
-version:            0.2.46.13
+version:            0.2.46.14
 synopsis:           GLib bindings
 description:        Bindings for GLib, 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.GLib.Types
@@ -96,7 +96,7 @@
                         GI.GLib.Unions.TokenValue
     pkgconfig-depends:  glib-2.0 >= 2.46
     build-depends: base >= 4.7 && <5,
-        haskell-gi-base >= 0.13 && < 1,
+        haskell-gi-base >= 0.14 && < 1,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
