diff --git a/GI/Poppler.hs b/GI/Poppler.hs
--- a/GI/Poppler.hs
+++ b/GI/Poppler.hs
@@ -32,9 +32,9 @@
 import GI.Poppler.Structs
 import GI.Poppler.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/Poppler/Callbacks.hs b/GI/Poppler/Callbacks.hs
--- a/GI/Poppler/Callbacks.hs
+++ b/GI/Poppler/Callbacks.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
diff --git a/GI/Poppler/Constants.hs b/GI/Poppler/Constants.hs
--- a/GI/Poppler/Constants.hs
+++ b/GI/Poppler/Constants.hs
@@ -25,9 +25,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Poppler/Enums.hs b/GI/Poppler/Enums.hs
--- a/GI/Poppler/Enums.hs
+++ b/GI/Poppler/Enums.hs
@@ -54,9 +54,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Poppler/Flags.hs b/GI/Poppler/Flags.hs
--- a/GI/Poppler/Flags.hs
+++ b/GI/Poppler/Flags.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
@@ -68,8 +68,8 @@
 foreign import ccall "poppler_viewer_preferences_get_type" c_poppler_viewer_preferences_get_type :: 
     IO GType
 
-instance BoxedEnum ViewerPreferences where
-    boxedEnumType _ = c_poppler_viewer_preferences_get_type
+instance BoxedFlags ViewerPreferences where
+    boxedFlagsType _ = c_poppler_viewer_preferences_get_type
 
 instance IsGFlag ViewerPreferences
 
@@ -93,8 +93,8 @@
 foreign import ccall "poppler_structure_get_text_flags_get_type" c_poppler_structure_get_text_flags_get_type :: 
     IO GType
 
-instance BoxedEnum StructureGetTextFlags where
-    boxedEnumType _ = c_poppler_structure_get_text_flags_get_type
+instance BoxedFlags StructureGetTextFlags where
+    boxedFlagsType _ = c_poppler_structure_get_text_flags_get_type
 
 instance IsGFlag StructureGetTextFlags
 
@@ -123,8 +123,8 @@
 foreign import ccall "poppler_print_flags_get_type" c_poppler_print_flags_get_type :: 
     IO GType
 
-instance BoxedEnum PrintFlags where
-    boxedEnumType _ = c_poppler_print_flags_get_type
+instance BoxedFlags PrintFlags where
+    boxedFlagsType _ = c_poppler_print_flags_get_type
 
 instance IsGFlag PrintFlags
 
@@ -169,8 +169,8 @@
 foreign import ccall "poppler_permissions_get_type" c_poppler_permissions_get_type :: 
     IO GType
 
-instance BoxedEnum Permissions where
-    boxedEnumType _ = c_poppler_permissions_get_type
+instance BoxedFlags Permissions where
+    boxedFlagsType _ = c_poppler_permissions_get_type
 
 instance IsGFlag Permissions
 
@@ -200,8 +200,8 @@
 foreign import ccall "poppler_find_flags_get_type" c_poppler_find_flags_get_type :: 
     IO GType
 
-instance BoxedEnum FindFlags where
-    boxedEnumType _ = c_poppler_find_flags_get_type
+instance BoxedFlags FindFlags where
+    boxedFlagsType _ = c_poppler_find_flags_get_type
 
 instance IsGFlag FindFlags
 
@@ -252,8 +252,8 @@
 foreign import ccall "poppler_annot_flag_get_type" c_poppler_annot_flag_get_type :: 
     IO GType
 
-instance BoxedEnum AnnotFlag where
-    boxedEnumType _ = c_poppler_annot_flag_get_type
+instance BoxedFlags AnnotFlag where
+    boxedFlagsType _ = c_poppler_annot_flag_get_type
 
 instance IsGFlag AnnotFlag
 
diff --git a/GI/Poppler/Functions.hs b/GI/Poppler/Functions.hs
--- a/GI/Poppler/Functions.hs
+++ b/GI/Poppler/Functions.hs
@@ -26,9 +26,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -39,7 +39,7 @@
 -- function poppler_get_version
 -- Args : []
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -60,7 +60,7 @@
 -- function poppler_get_backend
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "Backend"
+-- returnType : Just (TInterface "Poppler" "Backend")
 -- throws : False
 -- Skip return : False
 
@@ -78,22 +78,22 @@
 
 
 -- function poppler_date_parse
--- Args : [Arg {argCName = "date", argType = TBasicType TUTF8, 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 = "date", argType = TBasicType TUTF8, 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 TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_date_parse" poppler_date_parse :: 
     CString ->                              -- date : TBasicType TUTF8
-    Int64 ->                                -- timet : TBasicType TInt64
+    CLong ->                                -- timet : TBasicType TLong
     IO CInt
 
 
 dateParse ::
     (MonadIO m) =>
     T.Text                                  -- date
-    -> Int64                                -- timet
+    -> CLong                                -- timet
     -> m Bool                               -- result
 dateParse date timet = liftIO $ do
     date' <- textToCString date
diff --git a/GI/Poppler/Objects.hs b/GI/Poppler/Objects.hs
--- a/GI/Poppler/Objects.hs
+++ b/GI/Poppler/Objects.hs
@@ -54,9 +54,9 @@
 import GI.Poppler.Objects.Page
 import GI.Poppler.Objects.StructureElement
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/Annot.hs b/GI/Poppler/Objects/Annot.hs
--- a/GI/Poppler/Objects/Annot.hs
+++ b/GI/Poppler/Objects/Annot.hs
@@ -81,9 +81,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
@@ -168,7 +168,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotType"
+-- returnType : Just (TInterface "Poppler" "AnnotType")
 -- throws : False
 -- Skip return : False
 
@@ -196,7 +196,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Color"
+-- returnType : Just (TInterface "Poppler" "Color")
 -- throws : False
 -- Skip return : False
 
@@ -225,7 +225,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", 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,7 +255,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotFlag"
+-- returnType : Just (TInterface "Poppler" "AnnotFlag")
 -- throws : False
 -- Skip return : False
 
@@ -283,7 +283,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", 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
 
@@ -313,7 +313,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", 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
 
@@ -343,7 +343,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", 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
 
@@ -370,7 +370,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "poppler_rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -400,7 +400,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "poppler_color", argType = TInterface "Poppler" "Color", 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
 
@@ -435,7 +435,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "contents", 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
 
@@ -466,7 +466,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "Poppler" "AnnotFlag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -496,7 +496,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Annot", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "poppler_rect", argType = TInterface "Poppler" "Rectangle", direction = 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/Poppler/Objects/Annot.hs-boot b/GI/Poppler/Objects/Annot.hs-boot
--- a/GI/Poppler/Objects/Annot.hs-boot
+++ b/GI/Poppler/Objects/Annot.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.Annot where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/AnnotCircle.hs b/GI/Poppler/Objects/AnnotCircle.hs
--- a/GI/Poppler/Objects/AnnotCircle.hs
+++ b/GI/Poppler/Objects/AnnotCircle.hs
@@ -35,9 +35,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -138,7 +138,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "doc", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotCircle"
+-- returnType : Just (TInterface "Poppler" "AnnotCircle")
 -- throws : False
 -- Skip return : False
 
@@ -167,7 +167,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotCircle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Color"
+-- returnType : Just (TInterface "Poppler" "Color")
 -- throws : False
 -- Skip return : False
 
@@ -196,7 +196,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotCircle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "poppler_color", argType = TInterface "Poppler" "Color", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Poppler/Objects/AnnotCircle.hs-boot b/GI/Poppler/Objects/AnnotCircle.hs-boot
--- a/GI/Poppler/Objects/AnnotCircle.hs-boot
+++ b/GI/Poppler/Objects/AnnotCircle.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.AnnotCircle where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/AnnotFileAttachment.hs b/GI/Poppler/Objects/AnnotFileAttachment.hs
--- a/GI/Poppler/Objects/AnnotFileAttachment.hs
+++ b/GI/Poppler/Objects/AnnotFileAttachment.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
@@ -132,7 +132,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotFileAttachment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Attachment"
+-- returnType : Just (TInterface "Poppler" "Attachment")
 -- throws : False
 -- Skip return : False
 
@@ -161,7 +161,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotFileAttachment", 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/Poppler/Objects/AnnotFileAttachment.hs-boot b/GI/Poppler/Objects/AnnotFileAttachment.hs-boot
--- a/GI/Poppler/Objects/AnnotFileAttachment.hs-boot
+++ b/GI/Poppler/Objects/AnnotFileAttachment.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.AnnotFileAttachment where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/AnnotFreeText.hs b/GI/Poppler/Objects/AnnotFreeText.hs
--- a/GI/Poppler/Objects/AnnotFreeText.hs
+++ b/GI/Poppler/Objects/AnnotFreeText.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
@@ -134,7 +134,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotFreeText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotCalloutLine"
+-- returnType : Just (TInterface "Poppler" "AnnotCalloutLine")
 -- throws : False
 -- Skip return : False
 
@@ -163,7 +163,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotFreeText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotFreeTextQuadding"
+-- returnType : Just (TInterface "Poppler" "AnnotFreeTextQuadding")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Poppler/Objects/AnnotFreeText.hs-boot b/GI/Poppler/Objects/AnnotFreeText.hs-boot
--- a/GI/Poppler/Objects/AnnotFreeText.hs-boot
+++ b/GI/Poppler/Objects/AnnotFreeText.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.AnnotFreeText where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/AnnotLine.hs b/GI/Poppler/Objects/AnnotLine.hs
--- a/GI/Poppler/Objects/AnnotLine.hs
+++ b/GI/Poppler/Objects/AnnotLine.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
@@ -132,7 +132,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "doc", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start", argType = TInterface "Poppler" "Point", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TInterface "Poppler" "Point", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotLine"
+-- returnType : Just (TInterface "Poppler" "AnnotLine")
 -- throws : False
 -- Skip return : False
 
@@ -169,7 +169,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start", argType = TInterface "Poppler" "Point", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TInterface "Poppler" "Point", direction = 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/Poppler/Objects/AnnotLine.hs-boot b/GI/Poppler/Objects/AnnotLine.hs-boot
--- a/GI/Poppler/Objects/AnnotLine.hs-boot
+++ b/GI/Poppler/Objects/AnnotLine.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.AnnotLine where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/AnnotMarkup.hs b/GI/Poppler/Objects/AnnotMarkup.hs
--- a/GI/Poppler/Objects/AnnotMarkup.hs
+++ b/GI/Poppler/Objects/AnnotMarkup.hs
@@ -91,9 +91,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
@@ -193,7 +193,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", 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
 
@@ -222,7 +222,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotExternalDataType"
+-- returnType : Just (TInterface "Poppler" "AnnotExternalDataType")
 -- throws : False
 -- Skip return : False
 
@@ -250,7 +250,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", 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
 
@@ -280,7 +280,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", 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
 
@@ -308,7 +308,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", 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
 
@@ -336,7 +336,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "poppler_rect", argType = TInterface "Poppler" "Rectangle", 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
 
@@ -367,7 +367,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotMarkupReplyType"
+-- returnType : Just (TInterface "Poppler" "AnnotMarkupReplyType")
 -- throws : False
 -- Skip return : False
 
@@ -395,7 +395,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", 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
 
@@ -425,7 +425,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", 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
 
@@ -453,7 +453,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "label", 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
 
@@ -488,7 +488,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "opacity", 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
 
@@ -518,7 +518,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "popup_rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -549,7 +549,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_open", 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
 
@@ -579,7 +579,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMarkup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "poppler_rect", argType = TInterface "Poppler" "Rectangle", direction = 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/Poppler/Objects/AnnotMarkup.hs-boot b/GI/Poppler/Objects/AnnotMarkup.hs-boot
--- a/GI/Poppler/Objects/AnnotMarkup.hs-boot
+++ b/GI/Poppler/Objects/AnnotMarkup.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.AnnotMarkup where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/AnnotMovie.hs b/GI/Poppler/Objects/AnnotMovie.hs
--- a/GI/Poppler/Objects/AnnotMovie.hs
+++ b/GI/Poppler/Objects/AnnotMovie.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
@@ -120,7 +120,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMovie", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Movie"
+-- returnType : Just (TInterface "Poppler" "Movie")
 -- throws : False
 -- Skip return : False
 
@@ -149,7 +149,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMovie", 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/Poppler/Objects/AnnotMovie.hs-boot b/GI/Poppler/Objects/AnnotMovie.hs-boot
--- a/GI/Poppler/Objects/AnnotMovie.hs-boot
+++ b/GI/Poppler/Objects/AnnotMovie.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.AnnotMovie where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/AnnotScreen.hs b/GI/Poppler/Objects/AnnotScreen.hs
--- a/GI/Poppler/Objects/AnnotScreen.hs
+++ b/GI/Poppler/Objects/AnnotScreen.hs
@@ -26,9 +26,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -114,7 +114,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotScreen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Action"
+-- returnType : Just (TInterface "Poppler" "Action")
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Poppler/Objects/AnnotScreen.hs-boot b/GI/Poppler/Objects/AnnotScreen.hs-boot
--- a/GI/Poppler/Objects/AnnotScreen.hs-boot
+++ b/GI/Poppler/Objects/AnnotScreen.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.AnnotScreen where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/AnnotSquare.hs b/GI/Poppler/Objects/AnnotSquare.hs
--- a/GI/Poppler/Objects/AnnotSquare.hs
+++ b/GI/Poppler/Objects/AnnotSquare.hs
@@ -35,9 +35,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -138,7 +138,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "doc", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotSquare"
+-- returnType : Just (TInterface "Poppler" "AnnotSquare")
 -- throws : False
 -- Skip return : False
 
@@ -167,7 +167,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotSquare", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Color"
+-- returnType : Just (TInterface "Poppler" "Color")
 -- throws : False
 -- Skip return : False
 
@@ -196,7 +196,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotSquare", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "poppler_color", argType = TInterface "Poppler" "Color", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Poppler/Objects/AnnotSquare.hs-boot b/GI/Poppler/Objects/AnnotSquare.hs-boot
--- a/GI/Poppler/Objects/AnnotSquare.hs-boot
+++ b/GI/Poppler/Objects/AnnotSquare.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.AnnotSquare where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/AnnotText.hs b/GI/Poppler/Objects/AnnotText.hs
--- a/GI/Poppler/Objects/AnnotText.hs
+++ b/GI/Poppler/Objects/AnnotText.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
@@ -156,7 +156,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "doc", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotText"
+-- returnType : Just (TInterface "Poppler" "AnnotText")
 -- throws : False
 -- Skip return : False
 
@@ -185,7 +185,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotText", 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
 
@@ -215,7 +215,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotText", 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
 
@@ -243,7 +243,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotTextState"
+-- returnType : Just (TInterface "Poppler" "AnnotTextState")
 -- throws : False
 -- Skip return : False
 
@@ -271,7 +271,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "icon", 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
 
@@ -302,7 +302,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotText", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_open", 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/Poppler/Objects/AnnotText.hs-boot b/GI/Poppler/Objects/AnnotText.hs-boot
--- a/GI/Poppler/Objects/AnnotText.hs-boot
+++ b/GI/Poppler/Objects/AnnotText.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.AnnotText where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/AnnotTextMarkup.hs b/GI/Poppler/Objects/AnnotTextMarkup.hs
--- a/GI/Poppler/Objects/AnnotTextMarkup.hs
+++ b/GI/Poppler/Objects/AnnotTextMarkup.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
@@ -150,7 +150,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "doc", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quadrilaterals", argType = TGArray (TInterface "Poppler" "Quadrilateral"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotTextMarkup"
+-- returnType : Just (TInterface "Poppler" "AnnotTextMarkup")
 -- throws : False
 -- Skip return : False
 
@@ -185,7 +185,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "doc", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quadrilaterals", argType = TGArray (TInterface "Poppler" "Quadrilateral"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotTextMarkup"
+-- returnType : Just (TInterface "Poppler" "AnnotTextMarkup")
 -- throws : False
 -- Skip return : False
 
@@ -220,7 +220,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "doc", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quadrilaterals", argType = TGArray (TInterface "Poppler" "Quadrilateral"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotTextMarkup"
+-- returnType : Just (TInterface "Poppler" "AnnotTextMarkup")
 -- throws : False
 -- Skip return : False
 
@@ -255,7 +255,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "doc", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quadrilaterals", argType = TGArray (TInterface "Poppler" "Quadrilateral"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotTextMarkup"
+-- returnType : Just (TInterface "Poppler" "AnnotTextMarkup")
 -- throws : False
 -- Skip return : False
 
@@ -290,7 +290,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotTextMarkup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGArray (TInterface "Poppler" "Quadrilateral")
+-- returnType : Just (TGArray (TInterface "Poppler" "Quadrilateral"))
 -- throws : False
 -- Skip return : False
 
@@ -321,7 +321,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotTextMarkup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quadrilaterals", argType = TGArray (TInterface "Poppler" "Quadrilateral"), direction = 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/Poppler/Objects/AnnotTextMarkup.hs-boot b/GI/Poppler/Objects/AnnotTextMarkup.hs-boot
--- a/GI/Poppler/Objects/AnnotTextMarkup.hs-boot
+++ b/GI/Poppler/Objects/AnnotTextMarkup.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.AnnotTextMarkup where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/Attachment.hs b/GI/Poppler/Objects/Attachment.hs
--- a/GI/Poppler/Objects/Attachment.hs
+++ b/GI/Poppler/Objects/Attachment.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
@@ -108,7 +108,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Attachment", 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
 
@@ -142,16 +142,16 @@
 
 -- method Attachment::save_to_callback
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Attachment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "save_func", argType = TInterface "Poppler" "AttachmentSaveFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Attachment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "save_func", argType = TInterface "Poppler" "AttachmentSaveFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "poppler_attachment_save_to_callback" poppler_attachment_save_to_callback :: 
     Ptr Attachment ->                       -- _obj : TInterface "Poppler" "Attachment"
     FunPtr AttachmentSaveFuncC ->           -- save_func : TInterface "Poppler" "AttachmentSaveFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     Ptr (Ptr GError) ->                     -- error
     IO CInt
 
diff --git a/GI/Poppler/Objects/Attachment.hs-boot b/GI/Poppler/Objects/Attachment.hs-boot
--- a/GI/Poppler/Objects/Attachment.hs-boot
+++ b/GI/Poppler/Objects/Attachment.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.Attachment where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/Document.hs b/GI/Poppler/Objects/Document.hs
--- a/GI/Poppler/Objects/Document.hs
+++ b/GI/Poppler/Objects/Document.hs
@@ -168,86 +168,103 @@
  -- * Properties
 -- ** Author
     DocumentAuthorPropertyInfo              ,
+    documentAuthor                          ,
     getDocumentAuthor                       ,
 
 
 -- ** CreationDate
     DocumentCreationDatePropertyInfo        ,
+    documentCreationDate                    ,
     getDocumentCreationDate                 ,
 
 
 -- ** Creator
     DocumentCreatorPropertyInfo             ,
+    documentCreator                         ,
     getDocumentCreator                      ,
 
 
 -- ** Format
     DocumentFormatPropertyInfo              ,
+    documentFormat                          ,
     getDocumentFormat                       ,
 
 
 -- ** FormatMajor
     DocumentFormatMajorPropertyInfo         ,
+    documentFormatMajor                     ,
     getDocumentFormatMajor                  ,
 
 
 -- ** FormatMinor
     DocumentFormatMinorPropertyInfo         ,
+    documentFormatMinor                     ,
     getDocumentFormatMinor                  ,
 
 
 -- ** Keywords
     DocumentKeywordsPropertyInfo            ,
+    documentKeywords                        ,
     getDocumentKeywords                     ,
 
 
 -- ** Linearized
     DocumentLinearizedPropertyInfo          ,
+    documentLinearized                      ,
     getDocumentLinearized                   ,
 
 
 -- ** Metadata
     DocumentMetadataPropertyInfo            ,
+    documentMetadata                        ,
     getDocumentMetadata                     ,
 
 
 -- ** ModDate
     DocumentModDatePropertyInfo             ,
+    documentModDate                         ,
     getDocumentModDate                      ,
 
 
 -- ** PageLayout
     DocumentPageLayoutPropertyInfo          ,
+    documentPageLayout                      ,
     getDocumentPageLayout                   ,
 
 
 -- ** PageMode
     DocumentPageModePropertyInfo            ,
+    documentPageMode                        ,
     getDocumentPageMode                     ,
 
 
 -- ** Permissions
     DocumentPermissionsPropertyInfo         ,
+    documentPermissions                     ,
     getDocumentPermissions                  ,
 
 
 -- ** Producer
     DocumentProducerPropertyInfo            ,
+    documentProducer                        ,
     getDocumentProducer                     ,
 
 
 -- ** Subject
     DocumentSubjectPropertyInfo             ,
+    documentSubject                         ,
     getDocumentSubject                      ,
 
 
 -- ** Title
     DocumentTitlePropertyInfo               ,
+    documentTitle                           ,
     getDocumentTitle                        ,
 
 
 -- ** ViewerPreferences
     DocumentViewerPreferencesPropertyInfo   ,
+    documentViewerPreferences               ,
     getDocumentViewerPreferences            ,
 
 
@@ -255,9 +272,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
@@ -350,27 +367,30 @@
 -- VVV Prop "author"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getDocumentAuthor :: (MonadIO m, DocumentK o) => o -> m T.Text
+getDocumentAuthor :: (MonadIO m, DocumentK o) => o -> m (Maybe T.Text)
 getDocumentAuthor obj = liftIO $ getObjectPropertyString obj "author"
 
 data DocumentAuthorPropertyInfo
 instance AttrInfo DocumentAuthorPropertyInfo where
-    type AttrAllowedOps DocumentAuthorPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps DocumentAuthorPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint DocumentAuthorPropertyInfo = (~) ()
     type AttrBaseTypeConstraint DocumentAuthorPropertyInfo = DocumentK
-    type AttrGetType DocumentAuthorPropertyInfo = T.Text
+    type AttrGetType DocumentAuthorPropertyInfo = (Maybe T.Text)
     type AttrLabel DocumentAuthorPropertyInfo = "author"
     attrGet _ = getDocumentAuthor
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "creation-date"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getDocumentCreationDate :: (MonadIO m, DocumentK o) => o -> m Int32
-getDocumentCreationDate obj = liftIO $ getObjectPropertyCInt obj "creation-date"
+getDocumentCreationDate obj = liftIO $ getObjectPropertyInt32 obj "creation-date"
 
 data DocumentCreationDatePropertyInfo
 instance AttrInfo DocumentCreationDatePropertyInfo where
@@ -382,49 +402,55 @@
     attrGet _ = getDocumentCreationDate
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "creator"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getDocumentCreator :: (MonadIO m, DocumentK o) => o -> m T.Text
+getDocumentCreator :: (MonadIO m, DocumentK o) => o -> m (Maybe T.Text)
 getDocumentCreator obj = liftIO $ getObjectPropertyString obj "creator"
 
 data DocumentCreatorPropertyInfo
 instance AttrInfo DocumentCreatorPropertyInfo where
-    type AttrAllowedOps DocumentCreatorPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps DocumentCreatorPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint DocumentCreatorPropertyInfo = (~) ()
     type AttrBaseTypeConstraint DocumentCreatorPropertyInfo = DocumentK
-    type AttrGetType DocumentCreatorPropertyInfo = T.Text
+    type AttrGetType DocumentCreatorPropertyInfo = (Maybe T.Text)
     type AttrLabel DocumentCreatorPropertyInfo = "creator"
     attrGet _ = getDocumentCreator
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "format"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getDocumentFormat :: (MonadIO m, DocumentK o) => o -> m T.Text
+getDocumentFormat :: (MonadIO m, DocumentK o) => o -> m (Maybe T.Text)
 getDocumentFormat obj = liftIO $ getObjectPropertyString obj "format"
 
 data DocumentFormatPropertyInfo
 instance AttrInfo DocumentFormatPropertyInfo where
-    type AttrAllowedOps DocumentFormatPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps DocumentFormatPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint DocumentFormatPropertyInfo = (~) ()
     type AttrBaseTypeConstraint DocumentFormatPropertyInfo = DocumentK
-    type AttrGetType DocumentFormatPropertyInfo = T.Text
+    type AttrGetType DocumentFormatPropertyInfo = (Maybe T.Text)
     type AttrLabel DocumentFormatPropertyInfo = "format"
     attrGet _ = getDocumentFormat
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "format-major"
-   -- Type: TBasicType TUInt32
+   -- Type: TBasicType TUInt
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getDocumentFormatMajor :: (MonadIO m, DocumentK o) => o -> m Word32
-getDocumentFormatMajor obj = liftIO $ getObjectPropertyCUInt obj "format-major"
+getDocumentFormatMajor obj = liftIO $ getObjectPropertyUInt32 obj "format-major"
 
 data DocumentFormatMajorPropertyInfo
 instance AttrInfo DocumentFormatMajorPropertyInfo where
@@ -436,13 +462,15 @@
     attrGet _ = getDocumentFormatMajor
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "format-minor"
-   -- Type: TBasicType TUInt32
+   -- Type: TBasicType TUInt
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getDocumentFormatMinor :: (MonadIO m, DocumentK o) => o -> m Word32
-getDocumentFormatMinor obj = liftIO $ getObjectPropertyCUInt obj "format-minor"
+getDocumentFormatMinor obj = liftIO $ getObjectPropertyUInt32 obj "format-minor"
 
 data DocumentFormatMinorPropertyInfo
 instance AttrInfo DocumentFormatMinorPropertyInfo where
@@ -454,28 +482,32 @@
     attrGet _ = getDocumentFormatMinor
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "keywords"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getDocumentKeywords :: (MonadIO m, DocumentK o) => o -> m T.Text
+getDocumentKeywords :: (MonadIO m, DocumentK o) => o -> m (Maybe T.Text)
 getDocumentKeywords obj = liftIO $ getObjectPropertyString obj "keywords"
 
 data DocumentKeywordsPropertyInfo
 instance AttrInfo DocumentKeywordsPropertyInfo where
-    type AttrAllowedOps DocumentKeywordsPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps DocumentKeywordsPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint DocumentKeywordsPropertyInfo = (~) ()
     type AttrBaseTypeConstraint DocumentKeywordsPropertyInfo = DocumentK
-    type AttrGetType DocumentKeywordsPropertyInfo = T.Text
+    type AttrGetType DocumentKeywordsPropertyInfo = (Maybe T.Text)
     type AttrLabel DocumentKeywordsPropertyInfo = "keywords"
     attrGet _ = getDocumentKeywords
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "linearized"
    -- Type: TBasicType TBoolean
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getDocumentLinearized :: (MonadIO m, DocumentK o) => o -> m Bool
 getDocumentLinearized obj = liftIO $ getObjectPropertyBool obj "linearized"
@@ -490,31 +522,35 @@
     attrGet _ = getDocumentLinearized
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "metadata"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getDocumentMetadata :: (MonadIO m, DocumentK o) => o -> m T.Text
+getDocumentMetadata :: (MonadIO m, DocumentK o) => o -> m (Maybe T.Text)
 getDocumentMetadata obj = liftIO $ getObjectPropertyString obj "metadata"
 
 data DocumentMetadataPropertyInfo
 instance AttrInfo DocumentMetadataPropertyInfo where
-    type AttrAllowedOps DocumentMetadataPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps DocumentMetadataPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint DocumentMetadataPropertyInfo = (~) ()
     type AttrBaseTypeConstraint DocumentMetadataPropertyInfo = DocumentK
-    type AttrGetType DocumentMetadataPropertyInfo = T.Text
+    type AttrGetType DocumentMetadataPropertyInfo = (Maybe T.Text)
     type AttrLabel DocumentMetadataPropertyInfo = "metadata"
     attrGet _ = getDocumentMetadata
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "mod-date"
-   -- Type: TBasicType TInt32
+   -- Type: TBasicType TInt
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getDocumentModDate :: (MonadIO m, DocumentK o) => o -> m Int32
-getDocumentModDate obj = liftIO $ getObjectPropertyCInt obj "mod-date"
+getDocumentModDate obj = liftIO $ getObjectPropertyInt32 obj "mod-date"
 
 data DocumentModDatePropertyInfo
 instance AttrInfo DocumentModDatePropertyInfo where
@@ -526,10 +562,12 @@
     attrGet _ = getDocumentModDate
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "page-layout"
    -- Type: TInterface "Poppler" "PageLayout"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Just False,Nothing)
 
 getDocumentPageLayout :: (MonadIO m, DocumentK o) => o -> m PageLayout
 getDocumentPageLayout obj = liftIO $ getObjectPropertyEnum obj "page-layout"
@@ -544,10 +582,12 @@
     attrGet _ = getDocumentPageLayout
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "page-mode"
    -- Type: TInterface "Poppler" "PageMode"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Just False,Nothing)
 
 getDocumentPageMode :: (MonadIO m, DocumentK o) => o -> m PageMode
 getDocumentPageMode obj = liftIO $ getObjectPropertyEnum obj "page-mode"
@@ -562,10 +602,12 @@
     attrGet _ = getDocumentPageMode
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "permissions"
    -- Type: TInterface "Poppler" "Permissions"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Just False,Nothing)
 
 getDocumentPermissions :: (MonadIO m, DocumentK o) => o -> m [Permissions]
 getDocumentPermissions obj = liftIO $ getObjectPropertyFlags obj "permissions"
@@ -580,64 +622,72 @@
     attrGet _ = getDocumentPermissions
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "producer"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getDocumentProducer :: (MonadIO m, DocumentK o) => o -> m T.Text
+getDocumentProducer :: (MonadIO m, DocumentK o) => o -> m (Maybe T.Text)
 getDocumentProducer obj = liftIO $ getObjectPropertyString obj "producer"
 
 data DocumentProducerPropertyInfo
 instance AttrInfo DocumentProducerPropertyInfo where
-    type AttrAllowedOps DocumentProducerPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps DocumentProducerPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint DocumentProducerPropertyInfo = (~) ()
     type AttrBaseTypeConstraint DocumentProducerPropertyInfo = DocumentK
-    type AttrGetType DocumentProducerPropertyInfo = T.Text
+    type AttrGetType DocumentProducerPropertyInfo = (Maybe T.Text)
     type AttrLabel DocumentProducerPropertyInfo = "producer"
     attrGet _ = getDocumentProducer
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "subject"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getDocumentSubject :: (MonadIO m, DocumentK o) => o -> m T.Text
+getDocumentSubject :: (MonadIO m, DocumentK o) => o -> m (Maybe T.Text)
 getDocumentSubject obj = liftIO $ getObjectPropertyString obj "subject"
 
 data DocumentSubjectPropertyInfo
 instance AttrInfo DocumentSubjectPropertyInfo where
-    type AttrAllowedOps DocumentSubjectPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps DocumentSubjectPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint DocumentSubjectPropertyInfo = (~) ()
     type AttrBaseTypeConstraint DocumentSubjectPropertyInfo = DocumentK
-    type AttrGetType DocumentSubjectPropertyInfo = T.Text
+    type AttrGetType DocumentSubjectPropertyInfo = (Maybe T.Text)
     type AttrLabel DocumentSubjectPropertyInfo = "subject"
     attrGet _ = getDocumentSubject
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "title"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getDocumentTitle :: (MonadIO m, DocumentK o) => o -> m T.Text
+getDocumentTitle :: (MonadIO m, DocumentK o) => o -> m (Maybe T.Text)
 getDocumentTitle obj = liftIO $ getObjectPropertyString obj "title"
 
 data DocumentTitlePropertyInfo
 instance AttrInfo DocumentTitlePropertyInfo where
-    type AttrAllowedOps DocumentTitlePropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps DocumentTitlePropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint DocumentTitlePropertyInfo = (~) ()
     type AttrBaseTypeConstraint DocumentTitlePropertyInfo = DocumentK
-    type AttrGetType DocumentTitlePropertyInfo = T.Text
+    type AttrGetType DocumentTitlePropertyInfo = (Maybe T.Text)
     type AttrLabel DocumentTitlePropertyInfo = "title"
     attrGet _ = getDocumentTitle
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 -- VVV Prop "viewer-preferences"
    -- Type: TInterface "Poppler" "ViewerPreferences"
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
 getDocumentViewerPreferences :: (MonadIO m, DocumentK o) => o -> m [ViewerPreferences]
 getDocumentViewerPreferences obj = liftIO $ getObjectPropertyFlags obj "viewer-preferences"
@@ -652,24 +702,76 @@
     attrGet _ = getDocumentViewerPreferences
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 type instance AttributeList Document = DocumentAttributeList
 type DocumentAttributeList = ('[ '("author", DocumentAuthorPropertyInfo), '("creationDate", DocumentCreationDatePropertyInfo), '("creator", DocumentCreatorPropertyInfo), '("format", DocumentFormatPropertyInfo), '("formatMajor", DocumentFormatMajorPropertyInfo), '("formatMinor", DocumentFormatMinorPropertyInfo), '("keywords", DocumentKeywordsPropertyInfo), '("linearized", DocumentLinearizedPropertyInfo), '("metadata", DocumentMetadataPropertyInfo), '("modDate", DocumentModDatePropertyInfo), '("pageLayout", DocumentPageLayoutPropertyInfo), '("pageMode", DocumentPageModePropertyInfo), '("permissions", DocumentPermissionsPropertyInfo), '("producer", DocumentProducerPropertyInfo), '("subject", DocumentSubjectPropertyInfo), '("title", DocumentTitlePropertyInfo), '("viewerPreferences", DocumentViewerPreferencesPropertyInfo)] :: [(Symbol, *)])
 
+documentAuthor :: AttrLabelProxy "author"
+documentAuthor = AttrLabelProxy
+
+documentCreationDate :: AttrLabelProxy "creationDate"
+documentCreationDate = AttrLabelProxy
+
+documentCreator :: AttrLabelProxy "creator"
+documentCreator = AttrLabelProxy
+
+documentFormat :: AttrLabelProxy "format"
+documentFormat = AttrLabelProxy
+
+documentFormatMajor :: AttrLabelProxy "formatMajor"
+documentFormatMajor = AttrLabelProxy
+
+documentFormatMinor :: AttrLabelProxy "formatMinor"
+documentFormatMinor = AttrLabelProxy
+
+documentKeywords :: AttrLabelProxy "keywords"
+documentKeywords = AttrLabelProxy
+
+documentLinearized :: AttrLabelProxy "linearized"
+documentLinearized = AttrLabelProxy
+
+documentMetadata :: AttrLabelProxy "metadata"
+documentMetadata = AttrLabelProxy
+
+documentModDate :: AttrLabelProxy "modDate"
+documentModDate = AttrLabelProxy
+
+documentPageLayout :: AttrLabelProxy "pageLayout"
+documentPageLayout = AttrLabelProxy
+
+documentPageMode :: AttrLabelProxy "pageMode"
+documentPageMode = AttrLabelProxy
+
+documentPermissions :: AttrLabelProxy "permissions"
+documentPermissions = AttrLabelProxy
+
+documentProducer :: AttrLabelProxy "producer"
+documentProducer = AttrLabelProxy
+
+documentSubject :: AttrLabelProxy "subject"
+documentSubject = AttrLabelProxy
+
+documentTitle :: AttrLabelProxy "title"
+documentTitle = AttrLabelProxy
+
+documentViewerPreferences :: AttrLabelProxy "viewerPreferences"
+documentViewerPreferences = AttrLabelProxy
+
 type instance SignalList Document = DocumentSignalList
 type DocumentSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method Document::new_from_data
 -- method type : Constructor
--- Args : [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 TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [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 TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Document"
+-- returnType : Just (TInterface "Poppler" "Document")
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "poppler_document_new_from_data" poppler_document_new_from_data :: 
     CString ->                              -- data : TBasicType TUTF8
-    Int32 ->                                -- length : TBasicType TInt32
+    Int32 ->                                -- length : TBasicType TInt
     CString ->                              -- password : TBasicType TUTF8
     Ptr (Ptr GError) ->                     -- error
     IO (Ptr Document)
@@ -704,7 +806,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Document"
+-- returnType : Just (TInterface "Poppler" "Document")
 -- throws : True
 -- Skip return : False
 
@@ -743,7 +845,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "file", argType = TInterface "Gio" "File", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "password", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Document"
+-- returnType : Just (TInterface "Poppler" "Document")
 -- throws : True
 -- Skip return : False
 
@@ -789,7 +891,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "stream", argType = TInterface "Gio" "InputStream", 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},Arg {argCName = "password", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Document"
+-- returnType : Just (TInterface "Poppler" "Document")
 -- throws : True
 -- Skip return : False
 
@@ -837,7 +939,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "link_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Dest"
+-- returnType : Just (TInterface "Poppler" "Dest")
 -- throws : False
 -- Skip return : False
 
@@ -870,7 +972,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGList (TInterface "Poppler" "Attachment")
+-- returnType : Just (TGList (TInterface "Poppler" "Attachment"))
 -- throws : False
 -- Skip return : False
 
@@ -886,7 +988,6 @@
 documentGetAttachments _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- poppler_document_get_attachments _obj'
-    checkUnexpectedReturnNULL "poppler_document_get_attachments" result
     result' <- unpackGList result
     result'' <- mapM (wrapObject Attachment) result'
     g_list_free result
@@ -901,7 +1002,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -931,19 +1032,19 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt64
+-- returnType : Just (TBasicType TLong)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_document_get_creation_date" poppler_document_get_creation_date :: 
     Ptr Document ->                         -- _obj : TInterface "Poppler" "Document"
-    IO Int64
+    IO CLong
 
 
 documentGetCreationDate ::
     (MonadIO m, DocumentK a) =>
     a                                       -- _obj
-    -> m Int64                              -- result
+    -> m CLong                              -- result
 documentGetCreationDate _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- poppler_document_get_creation_date _obj'
@@ -951,14 +1052,14 @@
     return result
 
 data DocumentGetCreationDateMethodInfo
-instance (signature ~ (m Int64), MonadIO m, DocumentK a) => MethodInfo DocumentGetCreationDateMethodInfo a signature where
+instance (signature ~ (m CLong), MonadIO m, DocumentK a) => MethodInfo DocumentGetCreationDateMethodInfo a signature where
     overloadedMethod _ = documentGetCreationDate
 
 -- method Document::get_creator
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -986,15 +1087,15 @@
 
 -- method Document::get_form_field
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "id", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "id", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "FormField"
+-- returnType : Just (TInterface "Poppler" "FormField")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_document_get_form_field" poppler_document_get_form_field :: 
     Ptr Document ->                         -- _obj : TInterface "Poppler" "Document"
-    Int32 ->                                -- id : TBasicType TInt32
+    Int32 ->                                -- id : TBasicType TInt
     IO (Ptr FormField)
 
 
@@ -1019,7 +1120,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "permanent_id", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "update_id", 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
 
@@ -1059,7 +1160,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -1089,7 +1190,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -1119,19 +1220,19 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt64
+-- returnType : Just (TBasicType TLong)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_document_get_modification_date" poppler_document_get_modification_date :: 
     Ptr Document ->                         -- _obj : TInterface "Poppler" "Document"
-    IO Int64
+    IO CLong
 
 
 documentGetModificationDate ::
     (MonadIO m, DocumentK a) =>
     a                                       -- _obj
-    -> m Int64                              -- result
+    -> m CLong                              -- result
 documentGetModificationDate _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- poppler_document_get_modification_date _obj'
@@ -1139,14 +1240,14 @@
     return result
 
 data DocumentGetModificationDateMethodInfo
-instance (signature ~ (m Int64), MonadIO m, DocumentK a) => MethodInfo DocumentGetModificationDateMethodInfo a signature where
+instance (signature ~ (m CLong), MonadIO m, DocumentK a) => MethodInfo DocumentGetModificationDateMethodInfo a signature where
     overloadedMethod _ = documentGetModificationDate
 
 -- method Document::get_n_attachments
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", 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
 
@@ -1173,7 +1274,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TInt32
+-- returnType : Just (TBasicType TInt)
 -- throws : False
 -- Skip return : False
 
@@ -1198,15 +1299,15 @@
 
 -- method Document::get_page
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Page"
+-- returnType : Just (TInterface "Poppler" "Page")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_document_get_page" poppler_document_get_page :: 
     Ptr Document ->                         -- _obj : TInterface "Poppler" "Document"
-    Int32 ->                                -- index : TBasicType TInt32
+    Int32 ->                                -- index : TBasicType TInt
     IO (Ptr Page)
 
 
@@ -1231,7 +1332,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Page"
+-- returnType : Just (TInterface "Poppler" "Page")
 -- throws : False
 -- Skip return : False
 
@@ -1264,7 +1365,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "PageLayout"
+-- returnType : Just (TInterface "Poppler" "PageLayout")
 -- throws : False
 -- Skip return : False
 
@@ -1292,7 +1393,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "PageMode"
+-- returnType : Just (TInterface "Poppler" "PageMode")
 -- throws : False
 -- Skip return : False
 
@@ -1318,16 +1419,16 @@
 
 -- method Document::get_pdf_version
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "major_version", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "minor_version", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "major_version", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "minor_version", argType = TBasicType TUInt, 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 "poppler_document_get_pdf_version" poppler_document_get_pdf_version :: 
     Ptr Document ->                         -- _obj : TInterface "Poppler" "Document"
-    Ptr Word32 ->                           -- major_version : TBasicType TUInt32
-    Ptr Word32 ->                           -- minor_version : TBasicType TUInt32
+    Ptr Word32 ->                           -- major_version : TBasicType TUInt
+    Ptr Word32 ->                           -- minor_version : TBasicType TUInt
     IO ()
 
 
@@ -1355,7 +1456,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -1385,7 +1486,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Permissions"
+-- returnType : Just (TInterface "Poppler" "Permissions")
 -- throws : False
 -- Skip return : False
 
@@ -1413,7 +1514,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -1443,7 +1544,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -1473,7 +1574,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
@@ -1503,7 +1604,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", 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
 
@@ -1531,7 +1632,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", 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
 
@@ -1559,7 +1660,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", 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
 
@@ -1595,7 +1696,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Document", 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
 
diff --git a/GI/Poppler/Objects/Document.hs-boot b/GI/Poppler/Objects/Document.hs-boot
--- a/GI/Poppler/Objects/Document.hs-boot
+++ b/GI/Poppler/Objects/Document.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.Document where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Poppler/Objects/FontInfo.hs b/GI/Poppler/Objects/FontInfo.hs
--- a/GI/Poppler/Objects/FontInfo.hs
+++ b/GI/Poppler/Objects/FontInfo.hs
@@ -35,9 +35,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -112,7 +112,7 @@
 -- method type : Constructor
 -- Args : [Arg {argCName = "document", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "FontInfo"
+-- returnType : Just (TInterface "Poppler" "FontInfo")
 -- throws : False
 -- Skip return : False
 
@@ -137,7 +137,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -162,15 +162,15 @@
 
 -- method FontInfo::scan
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_pages", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Poppler" "FontsIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_pages", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Poppler" "FontsIter", 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 "poppler_font_info_scan" poppler_font_info_scan :: 
     Ptr FontInfo ->                         -- _obj : TInterface "Poppler" "FontInfo"
-    Int32 ->                                -- n_pages : TBasicType TInt32
+    Int32 ->                                -- n_pages : TBasicType TInt
     Ptr (Ptr FontsIter) ->                  -- iter : TInterface "Poppler" "FontsIter"
     IO CInt
 
diff --git a/GI/Poppler/Objects/FontInfo.hs-boot b/GI/Poppler/Objects/FontInfo.hs-boot
--- a/GI/Poppler/Objects/FontInfo.hs-boot
+++ b/GI/Poppler/Objects/FontInfo.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.FontInfo where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/FormField.hs b/GI/Poppler/Objects/FormField.hs
--- a/GI/Poppler/Objects/FormField.hs
+++ b/GI/Poppler/Objects/FormField.hs
@@ -181,9 +181,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
@@ -288,7 +288,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "FormButtonType"
+-- returnType : Just (TInterface "Poppler" "FormButtonType")
 -- throws : False
 -- Skip return : False
 
@@ -316,7 +316,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -344,7 +344,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "state", 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
 
@@ -374,7 +374,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -402,7 +402,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -430,7 +430,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -458,7 +458,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "FormChoiceType"
+-- returnType : Just (TInterface "Poppler" "FormChoiceType")
 -- throws : False
 -- Skip return : False
 
@@ -484,15 +484,15 @@
 
 -- method FormField::choice_get_item
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TUTF8
+-- returnType : Just (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_form_field_choice_get_item" poppler_form_field_choice_get_item :: 
     Ptr FormField ->                        -- _obj : TInterface "Poppler" "FormField"
-    Int32 ->                                -- index : TBasicType TInt32
+    Int32 ->                                -- index : TBasicType TInt
     IO CString
 
 
@@ -518,7 +518,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -545,7 +545,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -575,7 +575,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -601,15 +601,15 @@
 
 -- method FormField::choice_is_item_selected
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_form_field_choice_is_item_selected" poppler_form_field_choice_is_item_selected :: 
     Ptr FormField ->                        -- _obj : TInterface "Poppler" "FormField"
-    Int32 ->                                -- index : TBasicType TInt32
+    Int32 ->                                -- index : TBasicType TInt
     IO CInt
 
 
@@ -631,15 +631,15 @@
 
 -- method FormField::choice_select_item
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_form_field_choice_select_item" poppler_form_field_choice_select_item :: 
     Ptr FormField ->                        -- _obj : TInterface "Poppler" "FormField"
-    Int32 ->                                -- index : TBasicType TInt32
+    Int32 ->                                -- index : TBasicType TInt
     IO ()
 
 
@@ -662,7 +662,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -691,15 +691,15 @@
 
 -- method FormField::choice_toggle_item
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_form_field_choice_toggle_item" poppler_form_field_choice_toggle_item :: 
     Ptr FormField ->                        -- _obj : TInterface "Poppler" "FormField"
-    Int32 ->                                -- index : TBasicType TInt32
+    Int32 ->                                -- index : TBasicType TInt
     IO ()
 
 
@@ -722,7 +722,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -749,7 +749,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Action"
+-- returnType : Just (TInterface "Poppler" "Action")
 -- throws : False
 -- Skip return : False
 
@@ -778,7 +778,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "FormFieldType"
+-- returnType : Just (TInterface "Poppler" "FormFieldType")
 -- throws : False
 -- Skip return : False
 
@@ -806,7 +806,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -834,7 +834,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -861,7 +861,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -891,7 +891,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -921,7 +921,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -951,7 +951,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -979,7 +979,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -1007,7 +1007,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -1035,7 +1035,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -1062,7 +1062,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -1092,7 +1092,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "FormTextType"
+-- returnType : Just (TInterface "Poppler" "FormTextType")
 -- throws : False
 -- Skip return : False
 
@@ -1120,7 +1120,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -1148,7 +1148,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", 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
 
@@ -1176,7 +1176,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormField", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Poppler/Objects/FormField.hs-boot b/GI/Poppler/Objects/FormField.hs-boot
--- a/GI/Poppler/Objects/FormField.hs-boot
+++ b/GI/Poppler/Objects/FormField.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.FormField where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/Layer.hs b/GI/Poppler/Objects/Layer.hs
--- a/GI/Poppler/Objects/Layer.hs
+++ b/GI/Poppler/Objects/Layer.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
@@ -132,7 +132,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Layer", 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
 
@@ -159,7 +159,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Layer", 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
 
@@ -188,7 +188,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Layer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -215,7 +215,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Layer", 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
 
@@ -243,7 +243,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Layer", 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
 
@@ -271,7 +271,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Layer", direction = 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/Poppler/Objects/Layer.hs-boot b/GI/Poppler/Objects/Layer.hs-boot
--- a/GI/Poppler/Objects/Layer.hs-boot
+++ b/GI/Poppler/Objects/Layer.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.Layer where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/Media.hs b/GI/Poppler/Objects/Media.hs
--- a/GI/Poppler/Objects/Media.hs
+++ b/GI/Poppler/Objects/Media.hs
@@ -46,9 +46,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -126,7 +126,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Media", 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
 
@@ -155,7 +155,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Media", 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
 
@@ -184,7 +184,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Media", 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
 
@@ -212,7 +212,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Media", 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
 
@@ -246,16 +246,16 @@
 
 -- method Media::save_to_callback
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Media", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "save_func", argType = TInterface "Poppler" "MediaSaveFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Media", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "save_func", argType = TInterface "Poppler" "MediaSaveFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TBoolean
+-- returnType : Just (TBasicType TBoolean)
 -- throws : True
 -- Skip return : False
 
 foreign import ccall "poppler_media_save_to_callback" poppler_media_save_to_callback :: 
     Ptr Media ->                            -- _obj : TInterface "Poppler" "Media"
     FunPtr MediaSaveFuncC ->                -- save_func : TInterface "Poppler" "MediaSaveFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr () ->                               -- user_data : TBasicType TPtr
     Ptr (Ptr GError) ->                     -- error
     IO CInt
 
diff --git a/GI/Poppler/Objects/Media.hs-boot b/GI/Poppler/Objects/Media.hs-boot
--- a/GI/Poppler/Objects/Media.hs-boot
+++ b/GI/Poppler/Objects/Media.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.Media where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/Movie.hs b/GI/Poppler/Objects/Movie.hs
--- a/GI/Poppler/Objects/Movie.hs
+++ b/GI/Poppler/Objects/Movie.hs
@@ -36,9 +36,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -114,7 +114,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Movie", 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
 
@@ -143,7 +143,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Movie", 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
 
@@ -171,7 +171,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Movie", 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/Poppler/Objects/Movie.hs-boot b/GI/Poppler/Objects/Movie.hs-boot
--- a/GI/Poppler/Objects/Movie.hs-boot
+++ b/GI/Poppler/Objects/Movie.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.Movie where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/PSFile.hs b/GI/Poppler/Objects/PSFile.hs
--- a/GI/Poppler/Objects/PSFile.hs
+++ b/GI/Poppler/Objects/PSFile.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
@@ -116,17 +116,17 @@
 
 -- method PSFile::new
 -- method type : Constructor
--- Args : [Arg {argCName = "document", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "first_page", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_pages", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "document", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "first_page", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_pages", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "PSFile"
+-- returnType : Just (TInterface "Poppler" "PSFile")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_ps_file_new" poppler_ps_file_new :: 
     Ptr Document ->                         -- document : TInterface "Poppler" "Document"
     CString ->                              -- filename : TBasicType TUTF8
-    Int32 ->                                -- first_page : TBasicType TInt32
-    Int32 ->                                -- n_pages : TBasicType TInt32
+    Int32 ->                                -- first_page : TBasicType TInt
+    Int32 ->                                -- n_pages : TBasicType TInt
     IO (Ptr PSFile)
 
 
@@ -151,7 +151,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "PSFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -178,7 +178,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "PSFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "duplex", 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
 
@@ -208,7 +208,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "PSFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
diff --git a/GI/Poppler/Objects/PSFile.hs-boot b/GI/Poppler/Objects/PSFile.hs-boot
--- a/GI/Poppler/Objects/PSFile.hs-boot
+++ b/GI/Poppler/Objects/PSFile.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.PSFile where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/Page.hs b/GI/Poppler/Objects/Page.hs
--- a/GI/Poppler/Objects/Page.hs
+++ b/GI/Poppler/Objects/Page.hs
@@ -202,15 +202,16 @@
 -- ** Label
     PageLabelPropertyInfo                   ,
     getPageLabel                            ,
+    pageLabel                               ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -308,24 +309,29 @@
 -- VVV Prop "label"
    -- Type: TBasicType TUTF8
    -- Flags: [PropertyReadable]
+   -- Nullable: (Nothing,Nothing)
 
-getPageLabel :: (MonadIO m, PageK o) => o -> m T.Text
+getPageLabel :: (MonadIO m, PageK o) => o -> m (Maybe T.Text)
 getPageLabel obj = liftIO $ getObjectPropertyString obj "label"
 
 data PageLabelPropertyInfo
 instance AttrInfo PageLabelPropertyInfo where
-    type AttrAllowedOps PageLabelPropertyInfo = '[ 'AttrGet]
+    type AttrAllowedOps PageLabelPropertyInfo = '[ 'AttrGet, 'AttrClear]
     type AttrSetTypeConstraint PageLabelPropertyInfo = (~) ()
     type AttrBaseTypeConstraint PageLabelPropertyInfo = PageK
-    type AttrGetType PageLabelPropertyInfo = T.Text
+    type AttrGetType PageLabelPropertyInfo = (Maybe T.Text)
     type AttrLabel PageLabelPropertyInfo = "label"
     attrGet _ = getPageLabel
     attrSet _ = undefined
     attrConstruct _ = undefined
+    attrClear _ = undefined
 
 type instance AttributeList Page = PageAttributeList
 type PageAttributeList = ('[ '("label", PageLabelPropertyInfo)] :: [(Symbol, *)])
 
+pageLabel :: AttrLabelProxy "label"
+pageLabel = AttrLabelProxy
+
 type instance SignalList Page = PageSignalList
 type PageSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
@@ -333,7 +339,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "annot", argType = TInterface "Poppler" "Annot", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -364,7 +370,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGList (TInterface "Poppler" "Rectangle")
+-- returnType : Just (TGList (TInterface "Poppler" "Rectangle"))
 -- throws : False
 -- Skip return : False
 
@@ -383,7 +389,6 @@
     let _obj' = unsafeManagedPtrCastPtr _obj
     text' <- textToCString text
     result <- poppler_page_find_text _obj' text'
-    checkUnexpectedReturnNULL "poppler_page_find_text" result
     result' <- unpackGList result
     result'' <- mapM (wrapBoxed Rectangle) result'
     g_list_free result
@@ -399,7 +404,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", 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 = "options", argType = TInterface "Poppler" "FindFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGList (TInterface "Poppler" "Rectangle")
+-- returnType : Just (TGList (TInterface "Poppler" "Rectangle"))
 -- throws : False
 -- Skip return : False
 
@@ -421,7 +426,6 @@
     text' <- textToCString text
     let options' = gflagsToWord options
     result <- poppler_page_find_text_with_options _obj' text' options'
-    checkUnexpectedReturnNULL "poppler_page_find_text_with_options" result
     result' <- unpackGList result
     result'' <- mapM (wrapBoxed Rectangle) result'
     g_list_free result
@@ -437,7 +441,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGList (TInterface "Poppler" "AnnotMapping")
+-- returnType : Just (TGList (TInterface "Poppler" "AnnotMapping"))
 -- throws : False
 -- Skip return : False
 
@@ -453,7 +457,6 @@
 pageGetAnnotMapping _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- poppler_page_get_annot_mapping _obj'
-    checkUnexpectedReturnNULL "poppler_page_get_annot_mapping" result
     result' <- unpackGList result
     result'' <- mapM (wrapBoxed AnnotMapping) result'
     g_list_free result
@@ -468,7 +471,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Poppler" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -498,7 +501,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", 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
 
@@ -526,7 +529,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGList (TInterface "Poppler" "FormFieldMapping")
+-- returnType : Just (TGList (TInterface "Poppler" "FormFieldMapping"))
 -- throws : False
 -- Skip return : False
 
@@ -542,7 +545,6 @@
 pageGetFormFieldMapping _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- poppler_page_get_form_field_mapping _obj'
-    checkUnexpectedReturnNULL "poppler_page_get_form_field_mapping" result
     result' <- unpackGList result
     result'' <- mapM (wrapBoxed FormFieldMapping) result'
     g_list_free result
@@ -555,15 +557,15 @@
 
 -- method Page::get_image
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "image_id", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "image_id", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "cairo" "Surface"
+-- returnType : Just (TInterface "cairo" "Surface")
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_page_get_image" poppler_page_get_image :: 
     Ptr Page ->                             -- _obj : TInterface "Poppler" "Page"
-    Int32 ->                                -- image_id : TBasicType TInt32
+    Int32 ->                                -- image_id : TBasicType TInt
     IO (Ptr Cairo.Surface)
 
 
@@ -588,7 +590,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGList (TInterface "Poppler" "ImageMapping")
+-- returnType : Just (TGList (TInterface "Poppler" "ImageMapping"))
 -- throws : False
 -- Skip return : False
 
@@ -604,7 +606,6 @@
 pageGetImageMapping _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- poppler_page_get_image_mapping _obj'
-    checkUnexpectedReturnNULL "poppler_page_get_image_mapping" result
     result' <- unpackGList result
     result'' <- mapM (wrapBoxed ImageMapping) result'
     g_list_free result
@@ -619,7 +620,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", 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
 
@@ -646,7 +647,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", 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
 
@@ -676,7 +677,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGList (TInterface "Poppler" "LinkMapping")
+-- returnType : Just (TGList (TInterface "Poppler" "LinkMapping"))
 -- throws : False
 -- Skip return : False
 
@@ -692,7 +693,6 @@
 pageGetLinkMapping _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- poppler_page_get_link_mapping _obj'
-    checkUnexpectedReturnNULL "poppler_page_get_link_mapping" result
     result' <- unpackGList result
     result'' <- mapM (wrapBoxed LinkMapping) result'
     g_list_free result
@@ -707,7 +707,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scale", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "style", argType = TInterface "Poppler" "SelectionStyle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "cairo" "Region"
+-- returnType : Just (TInterface "cairo" "Region")
 -- throws : False
 -- Skip return : False
 
@@ -746,7 +746,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "style", argType = TInterface "Poppler" "SelectionStyle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Poppler" "Rectangle", 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
 
@@ -783,7 +783,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scale", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "style", argType = TInterface "Poppler" "SelectionStyle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGList (TInterface "Poppler" "Rectangle")
+-- returnType : Just (TGList (TInterface "Poppler" "Rectangle"))
 -- throws : False
 -- Skip return : False
 
@@ -808,7 +808,6 @@
     let style' = (fromIntegral . fromEnum) style
     let selection' = unsafeManagedPtrGetPtr selection
     result <- poppler_page_get_selection_region _obj' scale' style' selection'
-    checkUnexpectedReturnNULL "poppler_page_get_selection_region" result
     result' <- unpackGList result
     result'' <- mapM (wrapBoxed Rectangle) result'
     g_list_free result
@@ -824,7 +823,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "height", argType = TBasicType TDouble, 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
 
@@ -861,7 +860,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", 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
 
@@ -891,7 +890,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGList (TInterface "Poppler" "TextAttributes")
+-- returnType : Just (TGList (TInterface "Poppler" "TextAttributes"))
 -- throws : False
 -- Skip return : False
 
@@ -907,7 +906,6 @@
 pageGetTextAttributes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- poppler_page_get_text_attributes _obj'
-    checkUnexpectedReturnNULL "poppler_page_get_text_attributes" result
     result' <- unpackGList result
     result'' <- mapM (wrapBoxed TextAttributes) result'
     g_list_free result
@@ -922,7 +920,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "area", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TGList (TInterface "Poppler" "TextAttributes")
+-- returnType : Just (TGList (TInterface "Poppler" "TextAttributes"))
 -- throws : False
 -- Skip return : False
 
@@ -941,7 +939,6 @@
     let _obj' = unsafeManagedPtrCastPtr _obj
     let area' = unsafeManagedPtrGetPtr area
     result <- poppler_page_get_text_attributes_for_area _obj' area'
-    checkUnexpectedReturnNULL "poppler_page_get_text_attributes_for_area" result
     result' <- unpackGList result
     result'' <- mapM (wrapBoxed TextAttributes) result'
     g_list_free result
@@ -957,7 +954,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "area", argType = TInterface "Poppler" "Rectangle", 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
 
@@ -989,16 +986,16 @@
 
 -- method Page::get_text_layout
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rectangles", argType = TCArray False (-1) 2 (TInterface "Poppler" "Rectangle"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferContainer},Arg {argCName = "n_rectangles", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : [Arg {argCName = "n_rectangles", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TBasicType TBoolean
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rectangles", argType = TCArray False (-1) 2 (TInterface "Poppler" "Rectangle"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferContainer},Arg {argCName = "n_rectangles", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_rectangles", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_page_get_text_layout" poppler_page_get_text_layout :: 
     Ptr Page ->                             -- _obj : TInterface "Poppler" "Page"
     Ptr (Ptr Rectangle) ->                  -- rectangles : TCArray False (-1) 2 (TInterface "Poppler" "Rectangle")
-    Ptr Word32 ->                           -- n_rectangles : TBasicType TUInt32
+    Ptr Word32 ->                           -- n_rectangles : TBasicType TUInt
     IO CInt
 
 
@@ -1028,9 +1025,9 @@
 
 -- method Page::get_text_layout_for_area
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "area", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rectangles", argType = TCArray False (-1) 3 (TInterface "Poppler" "Rectangle"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferContainer},Arg {argCName = "n_rectangles", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : [Arg {argCName = "n_rectangles", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TBasicType TBoolean
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "area", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rectangles", argType = TCArray False (-1) 3 (TInterface "Poppler" "Rectangle"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferContainer},Arg {argCName = "n_rectangles", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_rectangles", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : Just (TBasicType TBoolean)
 -- throws : False
 -- Skip return : False
 
@@ -1038,7 +1035,7 @@
     Ptr Page ->                             -- _obj : TInterface "Poppler" "Page"
     Ptr Rectangle ->                        -- area : TInterface "Poppler" "Rectangle"
     Ptr (Ptr Rectangle) ->                  -- rectangles : TCArray False (-1) 3 (TInterface "Poppler" "Rectangle")
-    Ptr Word32 ->                           -- n_rectangles : TBasicType TUInt32
+    Ptr Word32 ->                           -- n_rectangles : TBasicType TUInt
     IO CInt
 
 
@@ -1073,7 +1070,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "cairo" "Surface"
+-- returnType : Just (TInterface "cairo" "Surface")
 -- throws : False
 -- Skip return : False
 
@@ -1100,16 +1097,16 @@
 
 -- method Page::get_thumbnail_size
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "height", 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 "poppler_page_get_thumbnail_size" poppler_page_get_thumbnail_size :: 
     Ptr Page ->                             -- _obj : TInterface "Poppler" "Page"
-    Ptr Int32 ->                            -- width : TBasicType TInt32
-    Ptr Int32 ->                            -- height : TBasicType TInt32
+    Ptr Int32 ->                            -- width : TBasicType TInt
+    Ptr Int32 ->                            -- height : TBasicType TInt
     IO CInt
 
 
@@ -1138,7 +1135,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "PageTransition"
+-- returnType : Just (TInterface "Poppler" "PageTransition")
 -- throws : False
 -- Skip return : False
 
@@ -1167,7 +1164,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "annot", argType = TInterface "Poppler" "Annot", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1198,7 +1195,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cairo", argType = TInterface "cairo" "Context", direction = 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 +1226,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cairo", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1260,7 +1257,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cairo", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface "Poppler" "PrintFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1294,7 +1291,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cairo", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "old_selection", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "style", argType = TInterface "Poppler" "SelectionStyle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "glyph_color", argType = TInterface "Poppler" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "background_color", argType = TInterface "Poppler" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1344,7 +1341,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Page", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ps_file", argType = TInterface "Poppler" "PSFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1375,7 +1372,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "list", argType = TGList (TInterface "Poppler" "AnnotMapping"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1400,7 +1397,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "list", argType = TGList (TInterface "Poppler" "FormFieldMapping"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1425,7 +1422,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "list", argType = TGList (TInterface "Poppler" "ImageMapping"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1450,7 +1447,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "list", argType = TGList (TInterface "Poppler" "LinkMapping"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1475,7 +1472,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "list", argType = TGList (TInterface "Poppler" "TextAttributes"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -1500,7 +1497,7 @@
 -- method type : MemberFunction
 -- Args : [Arg {argCName = "region", argType = TGList (TInterface "Poppler" "Rectangle"), direction = 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/Poppler/Objects/Page.hs-boot b/GI/Poppler/Objects/Page.hs-boot
--- a/GI/Poppler/Objects/Page.hs-boot
+++ b/GI/Poppler/Objects/Page.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.Page where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Objects/StructureElement.hs b/GI/Poppler/Objects/StructureElement.hs
--- a/GI/Poppler/Objects/StructureElement.hs
+++ b/GI/Poppler/Objects/StructureElement.hs
@@ -296,9 +296,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
@@ -426,7 +426,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -456,7 +456,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -486,7 +486,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -516,7 +516,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TInterface "Poppler" "Color", 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
 
@@ -547,7 +547,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -575,7 +575,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureBlockAlign"
+-- returnType : Just (TInterface "Poppler" "StructureBlockAlign")
 -- throws : False
 -- Skip return : False
 
@@ -603,7 +603,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "colors", argType = TCArray False 4 (-1) (TInterface "Poppler" "Color"), 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
 
@@ -639,7 +639,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "border_styles", argType = TCArray False 4 (-1) (TInterface "Poppler" "StructureBorderStyle"), 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
 
@@ -673,7 +673,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "border_thicknesses", argType = TCArray False 4 (-1) (TBasicType TDouble), 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
 
@@ -707,7 +707,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bounding_box", argType = TInterface "Poppler" "Rectangle", 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
 
@@ -738,7 +738,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TInterface "Poppler" "Color", 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
 
@@ -769,7 +769,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -794,15 +794,15 @@
 
 -- method StructureElement::get_column_gaps
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : [Arg {argCName = "n_values", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TCArray False (-1) 1 (TBasicType TDouble)
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_values", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : Just (TCArray False (-1) 1 (TBasicType TDouble))
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_structure_element_get_column_gaps" poppler_structure_element_get_column_gaps :: 
     Ptr StructureElement ->                 -- _obj : TInterface "Poppler" "StructureElement"
-    Ptr Word32 ->                           -- n_values : TBasicType TUInt32
+    Ptr Word32 ->                           -- n_values : TBasicType TUInt
     IO (Ptr CDouble)
 
 
@@ -828,15 +828,15 @@
 
 -- method StructureElement::get_column_widths
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : [Arg {argCName = "n_values", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TCArray False (-1) 1 (TBasicType TDouble)
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_values", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : Just (TCArray False (-1) 1 (TBasicType TDouble))
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_structure_element_get_column_widths" poppler_structure_element_get_column_widths :: 
     Ptr StructureElement ->                 -- _obj : TInterface "Poppler" "StructureElement"
-    Ptr Word32 ->                           -- n_values : TBasicType TUInt32
+    Ptr Word32 ->                           -- n_values : TBasicType TUInt
     IO (Ptr CDouble)
 
 
@@ -864,7 +864,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -892,7 +892,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -922,7 +922,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureFormRole"
+-- returnType : Just (TInterface "Poppler" "StructureFormRole")
 -- throws : False
 -- Skip return : False
 
@@ -950,7 +950,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureFormState"
+-- returnType : Just (TInterface "Poppler" "StructureFormState")
 -- throws : False
 -- Skip return : False
 
@@ -978,7 +978,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureGlyphOrientation"
+-- returnType : Just (TInterface "Poppler" "StructureGlyphOrientation")
 -- throws : False
 -- Skip return : False
 
@@ -1006,7 +1006,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1034,7 +1034,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1064,7 +1064,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureInlineAlign"
+-- returnType : Just (TInterface "Poppler" "StructureInlineAlign")
 -- throws : False
 -- Skip return : False
 
@@ -1092,7 +1092,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureElementKind"
+-- returnType : Just (TInterface "Poppler" "StructureElementKind")
 -- throws : False
 -- Skip return : False
 
@@ -1120,7 +1120,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1150,7 +1150,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1178,7 +1178,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureListNumbering"
+-- returnType : Just (TInterface "Poppler" "StructureListNumbering")
 -- throws : False
 -- Skip return : False
 
@@ -1206,7 +1206,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "paddings", argType = TCArray False 4 (-1) (TBasicType TDouble), 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
 
@@ -1239,7 +1239,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1266,7 +1266,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructurePlacement"
+-- returnType : Just (TInterface "Poppler" "StructurePlacement")
 -- throws : False
 -- Skip return : False
 
@@ -1294,7 +1294,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureRubyAlign"
+-- returnType : Just (TInterface "Poppler" "StructureRubyAlign")
 -- throws : False
 -- Skip return : False
 
@@ -1322,7 +1322,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureRubyPosition"
+-- returnType : Just (TInterface "Poppler" "StructureRubyPosition")
 -- throws : False
 -- Skip return : False
 
@@ -1350,7 +1350,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1378,7 +1378,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1406,7 +1406,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1434,7 +1434,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "border_styles", argType = TCArray False 4 (-1) (TInterface "Poppler" "StructureBorderStyle"), 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
 
@@ -1468,7 +1468,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1495,7 +1495,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1526,7 +1526,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "paddings", argType = TCArray False 4 (-1) (TBasicType TDouble), 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
 
@@ -1559,7 +1559,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1586,7 +1586,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureTableScope"
+-- returnType : Just (TInterface "Poppler" "StructureTableScope")
 -- throws : False
 -- Skip return : False
 
@@ -1614,7 +1614,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1644,7 +1644,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "Poppler" "StructureGetTextFlags", 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
 
@@ -1677,7 +1677,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureTextAlign"
+-- returnType : Just (TInterface "Poppler" "StructureTextAlign")
 -- throws : False
 -- Skip return : False
 
@@ -1705,7 +1705,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TInterface "Poppler" "Color", 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
 
@@ -1736,7 +1736,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1764,7 +1764,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureTextDecoration"
+-- returnType : Just (TInterface "Poppler" "StructureTextDecoration")
 -- throws : False
 -- Skip return : False
 
@@ -1792,7 +1792,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1818,15 +1818,15 @@
 
 -- method StructureElement::get_text_spans
 -- method type : OrdinaryMethod
--- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_text_spans", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- Lengths : [Arg {argCName = "n_text_spans", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
--- returnType : TCArray False (-1) 1 (TInterface "Poppler" "TextSpan")
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_text_spans", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_text_spans", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : Just (TCArray False (-1) 1 (TInterface "Poppler" "TextSpan"))
 -- throws : False
 -- Skip return : False
 
 foreign import ccall "poppler_structure_element_get_text_spans" poppler_structure_element_get_text_spans :: 
     Ptr StructureElement ->                 -- _obj : TInterface "Poppler" "StructureElement"
-    Ptr Word32 ->                           -- n_text_spans : TBasicType TUInt32
+    Ptr Word32 ->                           -- n_text_spans : TBasicType TUInt
     IO (Ptr (Ptr TextSpan))
 
 
@@ -1855,7 +1855,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1885,7 +1885,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1913,7 +1913,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureWritingMode"
+-- returnType : Just (TInterface "Poppler" "StructureWritingMode")
 -- throws : False
 -- Skip return : False
 
@@ -1941,7 +1941,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1969,7 +1969,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -1997,7 +1997,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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
 
@@ -2025,7 +2025,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElement", 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/Poppler/Objects/StructureElement.hs-boot b/GI/Poppler/Objects/StructureElement.hs-boot
--- a/GI/Poppler/Objects/StructureElement.hs-boot
+++ b/GI/Poppler/Objects/StructureElement.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Objects.StructureElement where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs.hs b/GI/Poppler/Structs.hs
--- a/GI/Poppler/Structs.hs
+++ b/GI/Poppler/Structs.hs
@@ -68,9 +68,9 @@
 import GI.Poppler.Structs.TextAttributes
 import GI.Poppler.Structs.TextSpan
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionAny.hs b/GI/Poppler/Structs/ActionAny.hs
--- a/GI/Poppler/Structs/ActionAny.hs
+++ b/GI/Poppler/Structs/ActionAny.hs
@@ -17,20 +17,25 @@
 
  -- * Properties
 -- ** Title
+    actionAnyClearTitle                     ,
     actionAnyReadTitle                      ,
+    actionAnyTitle                          ,
+    actionAnyWriteTitle                     ,
 
 
 -- ** Type
     actionAnyReadType                       ,
+    actionAnyType                           ,
+    actionAnyWriteType                      ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -43,20 +48,78 @@
 newZeroActionAny :: MonadIO m => m ActionAny
 newZeroActionAny = liftIO $ callocBytes 16 >>= wrapPtr ActionAny
 
+instance tag ~ 'AttrSet => Constructible ActionAny tag where
+    new _ attrs = do
+        o <- newZeroActionAny
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionAny :: Maybe ActionAny
 noActionAny = Nothing
 
-actionAnyReadType :: ActionAny -> IO ActionType
-actionAnyReadType s = withManagedPtr s $ \ptr -> do
+actionAnyReadType :: MonadIO m => ActionAny -> m ActionType
+actionAnyReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionAnyReadTitle :: ActionAny -> IO T.Text
-actionAnyReadTitle s = withManagedPtr s $ \ptr -> do
+actionAnyWriteType :: MonadIO m => ActionAny -> ActionType -> m ()
+actionAnyWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionAnyTypeFieldInfo
+instance AttrInfo ActionAnyTypeFieldInfo where
+    type AttrAllowedOps ActionAnyTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionAnyTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionAnyTypeFieldInfo = (~) ActionAny
+    type AttrGetType ActionAnyTypeFieldInfo = ActionType
+    type AttrLabel ActionAnyTypeFieldInfo = "type"
+    attrGet _ = actionAnyReadType
+    attrSet _ = actionAnyWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionAnyType :: AttrLabelProxy "type"
+actionAnyType = AttrLabelProxy
+
+
+actionAnyReadTitle :: MonadIO m => ActionAny -> m (Maybe T.Text)
+actionAnyReadTitle 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
+
+actionAnyWriteTitle :: MonadIO m => ActionAny -> CString -> m ()
+actionAnyWriteTitle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+actionAnyClearTitle :: MonadIO m => ActionAny -> m ()
+actionAnyClearTitle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ActionAnyTitleFieldInfo
+instance AttrInfo ActionAnyTitleFieldInfo where
+    type AttrAllowedOps ActionAnyTitleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionAnyTitleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionAnyTitleFieldInfo = (~) ActionAny
+    type AttrGetType ActionAnyTitleFieldInfo = Maybe T.Text
+    type AttrLabel ActionAnyTitleFieldInfo = "title"
+    attrGet _ = actionAnyReadTitle
+    attrSet _ = actionAnyWriteTitle
+    attrConstruct = undefined
+    attrClear _ = actionAnyClearTitle
+
+actionAnyTitle :: AttrLabelProxy "title"
+actionAnyTitle = AttrLabelProxy
+
+
+
+type instance AttributeList ActionAny = ActionAnyAttributeList
+type ActionAnyAttributeList = ('[ '("type", ActionAnyTypeFieldInfo), '("title", ActionAnyTitleFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionAnyMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionAnyMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionAny.hs-boot b/GI/Poppler/Structs/ActionAny.hs-boot
--- a/GI/Poppler/Structs/ActionAny.hs-boot
+++ b/GI/Poppler/Structs/ActionAny.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionAny where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionGotoDest.hs b/GI/Poppler/Structs/ActionGotoDest.hs
--- a/GI/Poppler/Structs/ActionGotoDest.hs
+++ b/GI/Poppler/Structs/ActionGotoDest.hs
@@ -17,24 +17,32 @@
 
  -- * Properties
 -- ** Dest
+    actionGotoDestClearDest                 ,
+    actionGotoDestDest                      ,
     actionGotoDestReadDest                  ,
+    actionGotoDestWriteDest                 ,
 
 
 -- ** Title
+    actionGotoDestClearTitle                ,
     actionGotoDestReadTitle                 ,
+    actionGotoDestTitle                     ,
+    actionGotoDestWriteTitle                ,
 
 
 -- ** Type
     actionGotoDestReadType                  ,
+    actionGotoDestType                      ,
+    actionGotoDestWriteType                 ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -47,26 +55,110 @@
 newZeroActionGotoDest :: MonadIO m => m ActionGotoDest
 newZeroActionGotoDest = liftIO $ callocBytes 24 >>= wrapPtr ActionGotoDest
 
+instance tag ~ 'AttrSet => Constructible ActionGotoDest tag where
+    new _ attrs = do
+        o <- newZeroActionGotoDest
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionGotoDest :: Maybe ActionGotoDest
 noActionGotoDest = Nothing
 
-actionGotoDestReadType :: ActionGotoDest -> IO ActionType
-actionGotoDestReadType s = withManagedPtr s $ \ptr -> do
+actionGotoDestReadType :: MonadIO m => ActionGotoDest -> m ActionType
+actionGotoDestReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionGotoDestReadTitle :: ActionGotoDest -> IO T.Text
-actionGotoDestReadTitle s = withManagedPtr s $ \ptr -> do
+actionGotoDestWriteType :: MonadIO m => ActionGotoDest -> ActionType -> m ()
+actionGotoDestWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionGotoDestTypeFieldInfo
+instance AttrInfo ActionGotoDestTypeFieldInfo where
+    type AttrAllowedOps ActionGotoDestTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionGotoDestTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionGotoDestTypeFieldInfo = (~) ActionGotoDest
+    type AttrGetType ActionGotoDestTypeFieldInfo = ActionType
+    type AttrLabel ActionGotoDestTypeFieldInfo = "type"
+    attrGet _ = actionGotoDestReadType
+    attrSet _ = actionGotoDestWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionGotoDestType :: AttrLabelProxy "type"
+actionGotoDestType = AttrLabelProxy
+
+
+actionGotoDestReadTitle :: MonadIO m => ActionGotoDest -> m (Maybe T.Text)
+actionGotoDestReadTitle 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
 
-actionGotoDestReadDest :: ActionGotoDest -> IO Dest
-actionGotoDestReadDest s = withManagedPtr s $ \ptr -> do
+actionGotoDestWriteTitle :: MonadIO m => ActionGotoDest -> CString -> m ()
+actionGotoDestWriteTitle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+actionGotoDestClearTitle :: MonadIO m => ActionGotoDest -> m ()
+actionGotoDestClearTitle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ActionGotoDestTitleFieldInfo
+instance AttrInfo ActionGotoDestTitleFieldInfo where
+    type AttrAllowedOps ActionGotoDestTitleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionGotoDestTitleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionGotoDestTitleFieldInfo = (~) ActionGotoDest
+    type AttrGetType ActionGotoDestTitleFieldInfo = Maybe T.Text
+    type AttrLabel ActionGotoDestTitleFieldInfo = "title"
+    attrGet _ = actionGotoDestReadTitle
+    attrSet _ = actionGotoDestWriteTitle
+    attrConstruct = undefined
+    attrClear _ = actionGotoDestClearTitle
+
+actionGotoDestTitle :: AttrLabelProxy "title"
+actionGotoDestTitle = AttrLabelProxy
+
+
+actionGotoDestReadDest :: MonadIO m => ActionGotoDest -> m (Maybe Dest)
+actionGotoDestReadDest s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO (Ptr Dest)
-    val' <- (newBoxed Dest) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Dest) val'
+        return val''
+    return result
+
+actionGotoDestWriteDest :: MonadIO m => ActionGotoDest -> Ptr Dest -> m ()
+actionGotoDestWriteDest s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Ptr Dest)
+
+actionGotoDestClearDest :: MonadIO m => ActionGotoDest -> m ()
+actionGotoDestClearDest s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: Ptr Dest)
+
+data ActionGotoDestDestFieldInfo
+instance AttrInfo ActionGotoDestDestFieldInfo where
+    type AttrAllowedOps ActionGotoDestDestFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionGotoDestDestFieldInfo = (~) (Ptr Dest)
+    type AttrBaseTypeConstraint ActionGotoDestDestFieldInfo = (~) ActionGotoDest
+    type AttrGetType ActionGotoDestDestFieldInfo = Maybe Dest
+    type AttrLabel ActionGotoDestDestFieldInfo = "dest"
+    attrGet _ = actionGotoDestReadDest
+    attrSet _ = actionGotoDestWriteDest
+    attrConstruct = undefined
+    attrClear _ = actionGotoDestClearDest
+
+actionGotoDestDest :: AttrLabelProxy "dest"
+actionGotoDestDest = AttrLabelProxy
+
+
+
+type instance AttributeList ActionGotoDest = ActionGotoDestAttributeList
+type ActionGotoDestAttributeList = ('[ '("type", ActionGotoDestTypeFieldInfo), '("title", ActionGotoDestTitleFieldInfo), '("dest", ActionGotoDestDestFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionGotoDestMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionGotoDestMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionGotoDest.hs-boot b/GI/Poppler/Structs/ActionGotoDest.hs-boot
--- a/GI/Poppler/Structs/ActionGotoDest.hs-boot
+++ b/GI/Poppler/Structs/ActionGotoDest.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionGotoDest where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionGotoRemote.hs b/GI/Poppler/Structs/ActionGotoRemote.hs
--- a/GI/Poppler/Structs/ActionGotoRemote.hs
+++ b/GI/Poppler/Structs/ActionGotoRemote.hs
@@ -17,28 +17,39 @@
 
  -- * Properties
 -- ** Dest
+    actionGotoRemoteClearDest               ,
+    actionGotoRemoteDest                    ,
     actionGotoRemoteReadDest                ,
+    actionGotoRemoteWriteDest               ,
 
 
 -- ** FileName
+    actionGotoRemoteClearFileName           ,
+    actionGotoRemoteFileName                ,
     actionGotoRemoteReadFileName            ,
+    actionGotoRemoteWriteFileName           ,
 
 
 -- ** Title
+    actionGotoRemoteClearTitle              ,
     actionGotoRemoteReadTitle               ,
+    actionGotoRemoteTitle                   ,
+    actionGotoRemoteWriteTitle              ,
 
 
 -- ** Type
     actionGotoRemoteReadType                ,
+    actionGotoRemoteType                    ,
+    actionGotoRemoteWriteType               ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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,32 +62,142 @@
 newZeroActionGotoRemote :: MonadIO m => m ActionGotoRemote
 newZeroActionGotoRemote = liftIO $ callocBytes 32 >>= wrapPtr ActionGotoRemote
 
+instance tag ~ 'AttrSet => Constructible ActionGotoRemote tag where
+    new _ attrs = do
+        o <- newZeroActionGotoRemote
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionGotoRemote :: Maybe ActionGotoRemote
 noActionGotoRemote = Nothing
 
-actionGotoRemoteReadType :: ActionGotoRemote -> IO ActionType
-actionGotoRemoteReadType s = withManagedPtr s $ \ptr -> do
+actionGotoRemoteReadType :: MonadIO m => ActionGotoRemote -> m ActionType
+actionGotoRemoteReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionGotoRemoteReadTitle :: ActionGotoRemote -> IO T.Text
-actionGotoRemoteReadTitle s = withManagedPtr s $ \ptr -> do
+actionGotoRemoteWriteType :: MonadIO m => ActionGotoRemote -> ActionType -> m ()
+actionGotoRemoteWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionGotoRemoteTypeFieldInfo
+instance AttrInfo ActionGotoRemoteTypeFieldInfo where
+    type AttrAllowedOps ActionGotoRemoteTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionGotoRemoteTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionGotoRemoteTypeFieldInfo = (~) ActionGotoRemote
+    type AttrGetType ActionGotoRemoteTypeFieldInfo = ActionType
+    type AttrLabel ActionGotoRemoteTypeFieldInfo = "type"
+    attrGet _ = actionGotoRemoteReadType
+    attrSet _ = actionGotoRemoteWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionGotoRemoteType :: AttrLabelProxy "type"
+actionGotoRemoteType = AttrLabelProxy
+
+
+actionGotoRemoteReadTitle :: MonadIO m => ActionGotoRemote -> m (Maybe T.Text)
+actionGotoRemoteReadTitle 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
 
-actionGotoRemoteReadFileName :: ActionGotoRemote -> IO T.Text
-actionGotoRemoteReadFileName s = withManagedPtr s $ \ptr -> do
+actionGotoRemoteWriteTitle :: MonadIO m => ActionGotoRemote -> CString -> m ()
+actionGotoRemoteWriteTitle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+actionGotoRemoteClearTitle :: MonadIO m => ActionGotoRemote -> m ()
+actionGotoRemoteClearTitle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ActionGotoRemoteTitleFieldInfo
+instance AttrInfo ActionGotoRemoteTitleFieldInfo where
+    type AttrAllowedOps ActionGotoRemoteTitleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionGotoRemoteTitleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionGotoRemoteTitleFieldInfo = (~) ActionGotoRemote
+    type AttrGetType ActionGotoRemoteTitleFieldInfo = Maybe T.Text
+    type AttrLabel ActionGotoRemoteTitleFieldInfo = "title"
+    attrGet _ = actionGotoRemoteReadTitle
+    attrSet _ = actionGotoRemoteWriteTitle
+    attrConstruct = undefined
+    attrClear _ = actionGotoRemoteClearTitle
+
+actionGotoRemoteTitle :: AttrLabelProxy "title"
+actionGotoRemoteTitle = AttrLabelProxy
+
+
+actionGotoRemoteReadFileName :: MonadIO m => ActionGotoRemote -> m (Maybe T.Text)
+actionGotoRemoteReadFileName 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
 
-actionGotoRemoteReadDest :: ActionGotoRemote -> IO Dest
-actionGotoRemoteReadDest s = withManagedPtr s $ \ptr -> do
+actionGotoRemoteWriteFileName :: MonadIO m => ActionGotoRemote -> CString -> m ()
+actionGotoRemoteWriteFileName s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: CString)
+
+actionGotoRemoteClearFileName :: MonadIO m => ActionGotoRemote -> m ()
+actionGotoRemoteClearFileName s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: CString)
+
+data ActionGotoRemoteFileNameFieldInfo
+instance AttrInfo ActionGotoRemoteFileNameFieldInfo where
+    type AttrAllowedOps ActionGotoRemoteFileNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionGotoRemoteFileNameFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionGotoRemoteFileNameFieldInfo = (~) ActionGotoRemote
+    type AttrGetType ActionGotoRemoteFileNameFieldInfo = Maybe T.Text
+    type AttrLabel ActionGotoRemoteFileNameFieldInfo = "file_name"
+    attrGet _ = actionGotoRemoteReadFileName
+    attrSet _ = actionGotoRemoteWriteFileName
+    attrConstruct = undefined
+    attrClear _ = actionGotoRemoteClearFileName
+
+actionGotoRemoteFileName :: AttrLabelProxy "fileName"
+actionGotoRemoteFileName = AttrLabelProxy
+
+
+actionGotoRemoteReadDest :: MonadIO m => ActionGotoRemote -> m (Maybe Dest)
+actionGotoRemoteReadDest s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO (Ptr Dest)
-    val' <- (newBoxed Dest) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Dest) val'
+        return val''
+    return result
+
+actionGotoRemoteWriteDest :: MonadIO m => ActionGotoRemote -> Ptr Dest -> m ()
+actionGotoRemoteWriteDest s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: Ptr Dest)
+
+actionGotoRemoteClearDest :: MonadIO m => ActionGotoRemote -> m ()
+actionGotoRemoteClearDest s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: Ptr Dest)
+
+data ActionGotoRemoteDestFieldInfo
+instance AttrInfo ActionGotoRemoteDestFieldInfo where
+    type AttrAllowedOps ActionGotoRemoteDestFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionGotoRemoteDestFieldInfo = (~) (Ptr Dest)
+    type AttrBaseTypeConstraint ActionGotoRemoteDestFieldInfo = (~) ActionGotoRemote
+    type AttrGetType ActionGotoRemoteDestFieldInfo = Maybe Dest
+    type AttrLabel ActionGotoRemoteDestFieldInfo = "dest"
+    attrGet _ = actionGotoRemoteReadDest
+    attrSet _ = actionGotoRemoteWriteDest
+    attrConstruct = undefined
+    attrClear _ = actionGotoRemoteClearDest
+
+actionGotoRemoteDest :: AttrLabelProxy "dest"
+actionGotoRemoteDest = AttrLabelProxy
+
+
+
+type instance AttributeList ActionGotoRemote = ActionGotoRemoteAttributeList
+type ActionGotoRemoteAttributeList = ('[ '("type", ActionGotoRemoteTypeFieldInfo), '("title", ActionGotoRemoteTitleFieldInfo), '("fileName", ActionGotoRemoteFileNameFieldInfo), '("dest", ActionGotoRemoteDestFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionGotoRemoteMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionGotoRemoteMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionGotoRemote.hs-boot b/GI/Poppler/Structs/ActionGotoRemote.hs-boot
--- a/GI/Poppler/Structs/ActionGotoRemote.hs-boot
+++ b/GI/Poppler/Structs/ActionGotoRemote.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionGotoRemote where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionJavascript.hs b/GI/Poppler/Structs/ActionJavascript.hs
--- a/GI/Poppler/Structs/ActionJavascript.hs
+++ b/GI/Poppler/Structs/ActionJavascript.hs
@@ -17,24 +17,32 @@
 
  -- * Properties
 -- ** Script
+    actionJavascriptClearScript             ,
     actionJavascriptReadScript              ,
+    actionJavascriptScript                  ,
+    actionJavascriptWriteScript             ,
 
 
 -- ** Title
+    actionJavascriptClearTitle              ,
     actionJavascriptReadTitle               ,
+    actionJavascriptTitle                   ,
+    actionJavascriptWriteTitle              ,
 
 
 -- ** Type
     actionJavascriptReadType                ,
+    actionJavascriptType                    ,
+    actionJavascriptWriteType               ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -47,26 +55,110 @@
 newZeroActionJavascript :: MonadIO m => m ActionJavascript
 newZeroActionJavascript = liftIO $ callocBytes 24 >>= wrapPtr ActionJavascript
 
+instance tag ~ 'AttrSet => Constructible ActionJavascript tag where
+    new _ attrs = do
+        o <- newZeroActionJavascript
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionJavascript :: Maybe ActionJavascript
 noActionJavascript = Nothing
 
-actionJavascriptReadType :: ActionJavascript -> IO ActionType
-actionJavascriptReadType s = withManagedPtr s $ \ptr -> do
+actionJavascriptReadType :: MonadIO m => ActionJavascript -> m ActionType
+actionJavascriptReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionJavascriptReadTitle :: ActionJavascript -> IO T.Text
-actionJavascriptReadTitle s = withManagedPtr s $ \ptr -> do
+actionJavascriptWriteType :: MonadIO m => ActionJavascript -> ActionType -> m ()
+actionJavascriptWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionJavascriptTypeFieldInfo
+instance AttrInfo ActionJavascriptTypeFieldInfo where
+    type AttrAllowedOps ActionJavascriptTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionJavascriptTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionJavascriptTypeFieldInfo = (~) ActionJavascript
+    type AttrGetType ActionJavascriptTypeFieldInfo = ActionType
+    type AttrLabel ActionJavascriptTypeFieldInfo = "type"
+    attrGet _ = actionJavascriptReadType
+    attrSet _ = actionJavascriptWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionJavascriptType :: AttrLabelProxy "type"
+actionJavascriptType = AttrLabelProxy
+
+
+actionJavascriptReadTitle :: MonadIO m => ActionJavascript -> m (Maybe T.Text)
+actionJavascriptReadTitle 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
 
-actionJavascriptReadScript :: ActionJavascript -> IO T.Text
-actionJavascriptReadScript s = withManagedPtr s $ \ptr -> do
+actionJavascriptWriteTitle :: MonadIO m => ActionJavascript -> CString -> m ()
+actionJavascriptWriteTitle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+actionJavascriptClearTitle :: MonadIO m => ActionJavascript -> m ()
+actionJavascriptClearTitle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ActionJavascriptTitleFieldInfo
+instance AttrInfo ActionJavascriptTitleFieldInfo where
+    type AttrAllowedOps ActionJavascriptTitleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionJavascriptTitleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionJavascriptTitleFieldInfo = (~) ActionJavascript
+    type AttrGetType ActionJavascriptTitleFieldInfo = Maybe T.Text
+    type AttrLabel ActionJavascriptTitleFieldInfo = "title"
+    attrGet _ = actionJavascriptReadTitle
+    attrSet _ = actionJavascriptWriteTitle
+    attrConstruct = undefined
+    attrClear _ = actionJavascriptClearTitle
+
+actionJavascriptTitle :: AttrLabelProxy "title"
+actionJavascriptTitle = AttrLabelProxy
+
+
+actionJavascriptReadScript :: MonadIO m => ActionJavascript -> m (Maybe T.Text)
+actionJavascriptReadScript 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
+
+actionJavascriptWriteScript :: MonadIO m => ActionJavascript -> CString -> m ()
+actionJavascriptWriteScript s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: CString)
+
+actionJavascriptClearScript :: MonadIO m => ActionJavascript -> m ()
+actionJavascriptClearScript s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: CString)
+
+data ActionJavascriptScriptFieldInfo
+instance AttrInfo ActionJavascriptScriptFieldInfo where
+    type AttrAllowedOps ActionJavascriptScriptFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionJavascriptScriptFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionJavascriptScriptFieldInfo = (~) ActionJavascript
+    type AttrGetType ActionJavascriptScriptFieldInfo = Maybe T.Text
+    type AttrLabel ActionJavascriptScriptFieldInfo = "script"
+    attrGet _ = actionJavascriptReadScript
+    attrSet _ = actionJavascriptWriteScript
+    attrConstruct = undefined
+    attrClear _ = actionJavascriptClearScript
+
+actionJavascriptScript :: AttrLabelProxy "script"
+actionJavascriptScript = AttrLabelProxy
+
+
+
+type instance AttributeList ActionJavascript = ActionJavascriptAttributeList
+type ActionJavascriptAttributeList = ('[ '("type", ActionJavascriptTypeFieldInfo), '("title", ActionJavascriptTitleFieldInfo), '("script", ActionJavascriptScriptFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionJavascriptMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionJavascriptMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionJavascript.hs-boot b/GI/Poppler/Structs/ActionJavascript.hs-boot
--- a/GI/Poppler/Structs/ActionJavascript.hs-boot
+++ b/GI/Poppler/Structs/ActionJavascript.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionJavascript where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionLaunch.hs b/GI/Poppler/Structs/ActionLaunch.hs
--- a/GI/Poppler/Structs/ActionLaunch.hs
+++ b/GI/Poppler/Structs/ActionLaunch.hs
@@ -17,28 +17,39 @@
 
  -- * Properties
 -- ** FileName
+    actionLaunchClearFileName               ,
+    actionLaunchFileName                    ,
     actionLaunchReadFileName                ,
+    actionLaunchWriteFileName               ,
 
 
 -- ** Params
+    actionLaunchClearParams                 ,
+    actionLaunchParams                      ,
     actionLaunchReadParams                  ,
+    actionLaunchWriteParams                 ,
 
 
 -- ** Title
+    actionLaunchClearTitle                  ,
     actionLaunchReadTitle                   ,
+    actionLaunchTitle                       ,
+    actionLaunchWriteTitle                  ,
 
 
 -- ** Type
     actionLaunchReadType                    ,
+    actionLaunchType                        ,
+    actionLaunchWriteType                   ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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,32 +62,142 @@
 newZeroActionLaunch :: MonadIO m => m ActionLaunch
 newZeroActionLaunch = liftIO $ callocBytes 32 >>= wrapPtr ActionLaunch
 
+instance tag ~ 'AttrSet => Constructible ActionLaunch tag where
+    new _ attrs = do
+        o <- newZeroActionLaunch
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionLaunch :: Maybe ActionLaunch
 noActionLaunch = Nothing
 
-actionLaunchReadType :: ActionLaunch -> IO ActionType
-actionLaunchReadType s = withManagedPtr s $ \ptr -> do
+actionLaunchReadType :: MonadIO m => ActionLaunch -> m ActionType
+actionLaunchReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionLaunchReadTitle :: ActionLaunch -> IO T.Text
-actionLaunchReadTitle s = withManagedPtr s $ \ptr -> do
+actionLaunchWriteType :: MonadIO m => ActionLaunch -> ActionType -> m ()
+actionLaunchWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionLaunchTypeFieldInfo
+instance AttrInfo ActionLaunchTypeFieldInfo where
+    type AttrAllowedOps ActionLaunchTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionLaunchTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionLaunchTypeFieldInfo = (~) ActionLaunch
+    type AttrGetType ActionLaunchTypeFieldInfo = ActionType
+    type AttrLabel ActionLaunchTypeFieldInfo = "type"
+    attrGet _ = actionLaunchReadType
+    attrSet _ = actionLaunchWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionLaunchType :: AttrLabelProxy "type"
+actionLaunchType = AttrLabelProxy
+
+
+actionLaunchReadTitle :: MonadIO m => ActionLaunch -> m (Maybe T.Text)
+actionLaunchReadTitle 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
 
-actionLaunchReadFileName :: ActionLaunch -> IO T.Text
-actionLaunchReadFileName s = withManagedPtr s $ \ptr -> do
+actionLaunchWriteTitle :: MonadIO m => ActionLaunch -> CString -> m ()
+actionLaunchWriteTitle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+actionLaunchClearTitle :: MonadIO m => ActionLaunch -> m ()
+actionLaunchClearTitle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ActionLaunchTitleFieldInfo
+instance AttrInfo ActionLaunchTitleFieldInfo where
+    type AttrAllowedOps ActionLaunchTitleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionLaunchTitleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionLaunchTitleFieldInfo = (~) ActionLaunch
+    type AttrGetType ActionLaunchTitleFieldInfo = Maybe T.Text
+    type AttrLabel ActionLaunchTitleFieldInfo = "title"
+    attrGet _ = actionLaunchReadTitle
+    attrSet _ = actionLaunchWriteTitle
+    attrConstruct = undefined
+    attrClear _ = actionLaunchClearTitle
+
+actionLaunchTitle :: AttrLabelProxy "title"
+actionLaunchTitle = AttrLabelProxy
+
+
+actionLaunchReadFileName :: MonadIO m => ActionLaunch -> m (Maybe T.Text)
+actionLaunchReadFileName 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
 
-actionLaunchReadParams :: ActionLaunch -> IO T.Text
-actionLaunchReadParams s = withManagedPtr s $ \ptr -> do
+actionLaunchWriteFileName :: MonadIO m => ActionLaunch -> CString -> m ()
+actionLaunchWriteFileName s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: CString)
+
+actionLaunchClearFileName :: MonadIO m => ActionLaunch -> m ()
+actionLaunchClearFileName s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: CString)
+
+data ActionLaunchFileNameFieldInfo
+instance AttrInfo ActionLaunchFileNameFieldInfo where
+    type AttrAllowedOps ActionLaunchFileNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionLaunchFileNameFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionLaunchFileNameFieldInfo = (~) ActionLaunch
+    type AttrGetType ActionLaunchFileNameFieldInfo = Maybe T.Text
+    type AttrLabel ActionLaunchFileNameFieldInfo = "file_name"
+    attrGet _ = actionLaunchReadFileName
+    attrSet _ = actionLaunchWriteFileName
+    attrConstruct = undefined
+    attrClear _ = actionLaunchClearFileName
+
+actionLaunchFileName :: AttrLabelProxy "fileName"
+actionLaunchFileName = AttrLabelProxy
+
+
+actionLaunchReadParams :: MonadIO m => ActionLaunch -> m (Maybe T.Text)
+actionLaunchReadParams 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
+
+actionLaunchWriteParams :: MonadIO m => ActionLaunch -> CString -> m ()
+actionLaunchWriteParams s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: CString)
+
+actionLaunchClearParams :: MonadIO m => ActionLaunch -> m ()
+actionLaunchClearParams s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: CString)
+
+data ActionLaunchParamsFieldInfo
+instance AttrInfo ActionLaunchParamsFieldInfo where
+    type AttrAllowedOps ActionLaunchParamsFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionLaunchParamsFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionLaunchParamsFieldInfo = (~) ActionLaunch
+    type AttrGetType ActionLaunchParamsFieldInfo = Maybe T.Text
+    type AttrLabel ActionLaunchParamsFieldInfo = "params"
+    attrGet _ = actionLaunchReadParams
+    attrSet _ = actionLaunchWriteParams
+    attrConstruct = undefined
+    attrClear _ = actionLaunchClearParams
+
+actionLaunchParams :: AttrLabelProxy "params"
+actionLaunchParams = AttrLabelProxy
+
+
+
+type instance AttributeList ActionLaunch = ActionLaunchAttributeList
+type ActionLaunchAttributeList = ('[ '("type", ActionLaunchTypeFieldInfo), '("title", ActionLaunchTitleFieldInfo), '("fileName", ActionLaunchFileNameFieldInfo), '("params", ActionLaunchParamsFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionLaunchMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionLaunchMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionLaunch.hs-boot b/GI/Poppler/Structs/ActionLaunch.hs-boot
--- a/GI/Poppler/Structs/ActionLaunch.hs-boot
+++ b/GI/Poppler/Structs/ActionLaunch.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionLaunch where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionLayer.hs b/GI/Poppler/Structs/ActionLayer.hs
--- a/GI/Poppler/Structs/ActionLayer.hs
+++ b/GI/Poppler/Structs/ActionLayer.hs
@@ -19,20 +19,25 @@
 
  -- * Properties
 -- ** Action
+    actionLayerAction                       ,
     actionLayerReadAction                   ,
+    actionLayerWriteAction                  ,
 
 
 -- ** Layers
+    actionLayerClearLayers                  ,
+    actionLayerLayers                       ,
     actionLayerReadLayers                   ,
+    actionLayerWriteLayers                  ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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,20 +50,76 @@
 newZeroActionLayer :: MonadIO m => m ActionLayer
 newZeroActionLayer = liftIO $ callocBytes 16 >>= wrapPtr ActionLayer
 
+instance tag ~ 'AttrSet => Constructible ActionLayer tag where
+    new _ attrs = do
+        o <- newZeroActionLayer
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionLayer :: Maybe ActionLayer
 noActionLayer = Nothing
 
-actionLayerReadAction :: ActionLayer -> IO ActionLayerAction
-actionLayerReadAction s = withManagedPtr s $ \ptr -> do
+actionLayerReadAction :: MonadIO m => ActionLayer -> m ActionLayerAction
+actionLayerReadAction s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionLayerReadLayers :: ActionLayer -> IO ([Ptr ()])
-actionLayerReadLayers s = withManagedPtr s $ \ptr -> do
+actionLayerWriteAction :: MonadIO m => ActionLayer -> ActionLayerAction -> m ()
+actionLayerWriteAction s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionLayerActionFieldInfo
+instance AttrInfo ActionLayerActionFieldInfo where
+    type AttrAllowedOps ActionLayerActionFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionLayerActionFieldInfo = (~) ActionLayerAction
+    type AttrBaseTypeConstraint ActionLayerActionFieldInfo = (~) ActionLayer
+    type AttrGetType ActionLayerActionFieldInfo = ActionLayerAction
+    type AttrLabel ActionLayerActionFieldInfo = "action"
+    attrGet _ = actionLayerReadAction
+    attrSet _ = actionLayerWriteAction
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionLayerAction :: AttrLabelProxy "action"
+actionLayerAction = AttrLabelProxy
+
+
+actionLayerReadLayers :: MonadIO m => ActionLayer -> m ([Ptr ()])
+actionLayerReadLayers s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO (Ptr (GList (Ptr ())))
     val' <- unpackGList val
     return val'
+
+actionLayerWriteLayers :: MonadIO m => ActionLayer -> Ptr (GList (Ptr ())) -> m ()
+actionLayerWriteLayers s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: Ptr (GList (Ptr ())))
+
+actionLayerClearLayers :: MonadIO m => ActionLayer -> m ()
+actionLayerClearLayers s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: Ptr (GList (Ptr ())))
+
+data ActionLayerLayersFieldInfo
+instance AttrInfo ActionLayerLayersFieldInfo where
+    type AttrAllowedOps ActionLayerLayersFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionLayerLayersFieldInfo = (~) (Ptr (GList (Ptr ())))
+    type AttrBaseTypeConstraint ActionLayerLayersFieldInfo = (~) ActionLayer
+    type AttrGetType ActionLayerLayersFieldInfo = [Ptr ()]
+    type AttrLabel ActionLayerLayersFieldInfo = "layers"
+    attrGet _ = actionLayerReadLayers
+    attrSet _ = actionLayerWriteLayers
+    attrConstruct = undefined
+    attrClear _ = actionLayerClearLayers
+
+actionLayerLayers :: AttrLabelProxy "layers"
+actionLayerLayers = AttrLabelProxy
+
+
+
+type instance AttributeList ActionLayer = ActionLayerAttributeList
+type ActionLayerAttributeList = ('[ '("action", ActionLayerActionFieldInfo), '("layers", ActionLayerLayersFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionLayerMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionLayerMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionLayer.hs-boot b/GI/Poppler/Structs/ActionLayer.hs-boot
--- a/GI/Poppler/Structs/ActionLayer.hs-boot
+++ b/GI/Poppler/Structs/ActionLayer.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionLayer where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionMovie.hs b/GI/Poppler/Structs/ActionMovie.hs
--- a/GI/Poppler/Structs/ActionMovie.hs
+++ b/GI/Poppler/Structs/ActionMovie.hs
@@ -17,28 +17,38 @@
 
  -- * Properties
 -- ** Movie
+    actionMovieClearMovie                   ,
+    actionMovieMovie                        ,
     actionMovieReadMovie                    ,
+    actionMovieWriteMovie                   ,
 
 
 -- ** Operation
+    actionMovieOperation                    ,
     actionMovieReadOperation                ,
+    actionMovieWriteOperation               ,
 
 
 -- ** Title
+    actionMovieClearTitle                   ,
     actionMovieReadTitle                    ,
+    actionMovieTitle                        ,
+    actionMovieWriteTitle                   ,
 
 
 -- ** Type
     actionMovieReadType                     ,
+    actionMovieType                         ,
+    actionMovieWriteType                    ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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,32 +61,137 @@
 newZeroActionMovie :: MonadIO m => m ActionMovie
 newZeroActionMovie = liftIO $ callocBytes 32 >>= wrapPtr ActionMovie
 
+instance tag ~ 'AttrSet => Constructible ActionMovie tag where
+    new _ attrs = do
+        o <- newZeroActionMovie
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionMovie :: Maybe ActionMovie
 noActionMovie = Nothing
 
-actionMovieReadType :: ActionMovie -> IO ActionType
-actionMovieReadType s = withManagedPtr s $ \ptr -> do
+actionMovieReadType :: MonadIO m => ActionMovie -> m ActionType
+actionMovieReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionMovieReadTitle :: ActionMovie -> IO T.Text
-actionMovieReadTitle s = withManagedPtr s $ \ptr -> do
+actionMovieWriteType :: MonadIO m => ActionMovie -> ActionType -> m ()
+actionMovieWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionMovieTypeFieldInfo
+instance AttrInfo ActionMovieTypeFieldInfo where
+    type AttrAllowedOps ActionMovieTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionMovieTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionMovieTypeFieldInfo = (~) ActionMovie
+    type AttrGetType ActionMovieTypeFieldInfo = ActionType
+    type AttrLabel ActionMovieTypeFieldInfo = "type"
+    attrGet _ = actionMovieReadType
+    attrSet _ = actionMovieWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionMovieType :: AttrLabelProxy "type"
+actionMovieType = AttrLabelProxy
+
+
+actionMovieReadTitle :: MonadIO m => ActionMovie -> m (Maybe T.Text)
+actionMovieReadTitle 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
 
-actionMovieReadOperation :: ActionMovie -> IO ActionMovieOperation
-actionMovieReadOperation s = withManagedPtr s $ \ptr -> do
+actionMovieWriteTitle :: MonadIO m => ActionMovie -> CString -> m ()
+actionMovieWriteTitle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+actionMovieClearTitle :: MonadIO m => ActionMovie -> m ()
+actionMovieClearTitle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ActionMovieTitleFieldInfo
+instance AttrInfo ActionMovieTitleFieldInfo where
+    type AttrAllowedOps ActionMovieTitleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionMovieTitleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionMovieTitleFieldInfo = (~) ActionMovie
+    type AttrGetType ActionMovieTitleFieldInfo = Maybe T.Text
+    type AttrLabel ActionMovieTitleFieldInfo = "title"
+    attrGet _ = actionMovieReadTitle
+    attrSet _ = actionMovieWriteTitle
+    attrConstruct = undefined
+    attrClear _ = actionMovieClearTitle
+
+actionMovieTitle :: AttrLabelProxy "title"
+actionMovieTitle = AttrLabelProxy
+
+
+actionMovieReadOperation :: MonadIO m => ActionMovie -> m ActionMovieOperation
+actionMovieReadOperation s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionMovieReadMovie :: ActionMovie -> IO Movie
-actionMovieReadMovie s = withManagedPtr s $ \ptr -> do
+actionMovieWriteOperation :: MonadIO m => ActionMovie -> ActionMovieOperation -> m ()
+actionMovieWriteOperation s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 16) (val' :: CUInt)
+
+data ActionMovieOperationFieldInfo
+instance AttrInfo ActionMovieOperationFieldInfo where
+    type AttrAllowedOps ActionMovieOperationFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionMovieOperationFieldInfo = (~) ActionMovieOperation
+    type AttrBaseTypeConstraint ActionMovieOperationFieldInfo = (~) ActionMovie
+    type AttrGetType ActionMovieOperationFieldInfo = ActionMovieOperation
+    type AttrLabel ActionMovieOperationFieldInfo = "operation"
+    attrGet _ = actionMovieReadOperation
+    attrSet _ = actionMovieWriteOperation
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionMovieOperation :: AttrLabelProxy "operation"
+actionMovieOperation = AttrLabelProxy
+
+
+actionMovieReadMovie :: MonadIO m => ActionMovie -> m (Maybe Movie)
+actionMovieReadMovie s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO (Ptr Movie)
-    val' <- (newObject Movie) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newObject Movie) val'
+        return val''
+    return result
+
+actionMovieWriteMovie :: MonadIO m => ActionMovie -> Ptr Movie -> m ()
+actionMovieWriteMovie s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: Ptr Movie)
+
+actionMovieClearMovie :: MonadIO m => ActionMovie -> m ()
+actionMovieClearMovie s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: Ptr Movie)
+
+data ActionMovieMovieFieldInfo
+instance AttrInfo ActionMovieMovieFieldInfo where
+    type AttrAllowedOps ActionMovieMovieFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionMovieMovieFieldInfo = (~) (Ptr Movie)
+    type AttrBaseTypeConstraint ActionMovieMovieFieldInfo = (~) ActionMovie
+    type AttrGetType ActionMovieMovieFieldInfo = Maybe Movie
+    type AttrLabel ActionMovieMovieFieldInfo = "movie"
+    attrGet _ = actionMovieReadMovie
+    attrSet _ = actionMovieWriteMovie
+    attrConstruct = undefined
+    attrClear _ = actionMovieClearMovie
+
+actionMovieMovie :: AttrLabelProxy "movie"
+actionMovieMovie = AttrLabelProxy
+
+
+
+type instance AttributeList ActionMovie = ActionMovieAttributeList
+type ActionMovieAttributeList = ('[ '("type", ActionMovieTypeFieldInfo), '("title", ActionMovieTitleFieldInfo), '("operation", ActionMovieOperationFieldInfo), '("movie", ActionMovieMovieFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionMovieMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionMovieMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionMovie.hs-boot b/GI/Poppler/Structs/ActionMovie.hs-boot
--- a/GI/Poppler/Structs/ActionMovie.hs-boot
+++ b/GI/Poppler/Structs/ActionMovie.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionMovie where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionNamed.hs b/GI/Poppler/Structs/ActionNamed.hs
--- a/GI/Poppler/Structs/ActionNamed.hs
+++ b/GI/Poppler/Structs/ActionNamed.hs
@@ -17,24 +17,32 @@
 
  -- * Properties
 -- ** NamedDest
+    actionNamedClearNamedDest               ,
+    actionNamedNamedDest                    ,
     actionNamedReadNamedDest                ,
+    actionNamedWriteNamedDest               ,
 
 
 -- ** Title
+    actionNamedClearTitle                   ,
     actionNamedReadTitle                    ,
+    actionNamedTitle                        ,
+    actionNamedWriteTitle                   ,
 
 
 -- ** Type
     actionNamedReadType                     ,
+    actionNamedType                         ,
+    actionNamedWriteType                    ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -47,26 +55,110 @@
 newZeroActionNamed :: MonadIO m => m ActionNamed
 newZeroActionNamed = liftIO $ callocBytes 24 >>= wrapPtr ActionNamed
 
+instance tag ~ 'AttrSet => Constructible ActionNamed tag where
+    new _ attrs = do
+        o <- newZeroActionNamed
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionNamed :: Maybe ActionNamed
 noActionNamed = Nothing
 
-actionNamedReadType :: ActionNamed -> IO ActionType
-actionNamedReadType s = withManagedPtr s $ \ptr -> do
+actionNamedReadType :: MonadIO m => ActionNamed -> m ActionType
+actionNamedReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionNamedReadTitle :: ActionNamed -> IO T.Text
-actionNamedReadTitle s = withManagedPtr s $ \ptr -> do
+actionNamedWriteType :: MonadIO m => ActionNamed -> ActionType -> m ()
+actionNamedWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionNamedTypeFieldInfo
+instance AttrInfo ActionNamedTypeFieldInfo where
+    type AttrAllowedOps ActionNamedTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionNamedTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionNamedTypeFieldInfo = (~) ActionNamed
+    type AttrGetType ActionNamedTypeFieldInfo = ActionType
+    type AttrLabel ActionNamedTypeFieldInfo = "type"
+    attrGet _ = actionNamedReadType
+    attrSet _ = actionNamedWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionNamedType :: AttrLabelProxy "type"
+actionNamedType = AttrLabelProxy
+
+
+actionNamedReadTitle :: MonadIO m => ActionNamed -> m (Maybe T.Text)
+actionNamedReadTitle 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
 
-actionNamedReadNamedDest :: ActionNamed -> IO T.Text
-actionNamedReadNamedDest s = withManagedPtr s $ \ptr -> do
+actionNamedWriteTitle :: MonadIO m => ActionNamed -> CString -> m ()
+actionNamedWriteTitle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+actionNamedClearTitle :: MonadIO m => ActionNamed -> m ()
+actionNamedClearTitle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ActionNamedTitleFieldInfo
+instance AttrInfo ActionNamedTitleFieldInfo where
+    type AttrAllowedOps ActionNamedTitleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionNamedTitleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionNamedTitleFieldInfo = (~) ActionNamed
+    type AttrGetType ActionNamedTitleFieldInfo = Maybe T.Text
+    type AttrLabel ActionNamedTitleFieldInfo = "title"
+    attrGet _ = actionNamedReadTitle
+    attrSet _ = actionNamedWriteTitle
+    attrConstruct = undefined
+    attrClear _ = actionNamedClearTitle
+
+actionNamedTitle :: AttrLabelProxy "title"
+actionNamedTitle = AttrLabelProxy
+
+
+actionNamedReadNamedDest :: MonadIO m => ActionNamed -> m (Maybe T.Text)
+actionNamedReadNamedDest 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
+
+actionNamedWriteNamedDest :: MonadIO m => ActionNamed -> CString -> m ()
+actionNamedWriteNamedDest s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: CString)
+
+actionNamedClearNamedDest :: MonadIO m => ActionNamed -> m ()
+actionNamedClearNamedDest s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: CString)
+
+data ActionNamedNamedDestFieldInfo
+instance AttrInfo ActionNamedNamedDestFieldInfo where
+    type AttrAllowedOps ActionNamedNamedDestFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionNamedNamedDestFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionNamedNamedDestFieldInfo = (~) ActionNamed
+    type AttrGetType ActionNamedNamedDestFieldInfo = Maybe T.Text
+    type AttrLabel ActionNamedNamedDestFieldInfo = "named_dest"
+    attrGet _ = actionNamedReadNamedDest
+    attrSet _ = actionNamedWriteNamedDest
+    attrConstruct = undefined
+    attrClear _ = actionNamedClearNamedDest
+
+actionNamedNamedDest :: AttrLabelProxy "namedDest"
+actionNamedNamedDest = AttrLabelProxy
+
+
+
+type instance AttributeList ActionNamed = ActionNamedAttributeList
+type ActionNamedAttributeList = ('[ '("type", ActionNamedTypeFieldInfo), '("title", ActionNamedTitleFieldInfo), '("namedDest", ActionNamedNamedDestFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionNamedMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionNamedMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionNamed.hs-boot b/GI/Poppler/Structs/ActionNamed.hs-boot
--- a/GI/Poppler/Structs/ActionNamed.hs-boot
+++ b/GI/Poppler/Structs/ActionNamed.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionNamed where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionOCGState.hs b/GI/Poppler/Structs/ActionOCGState.hs
--- a/GI/Poppler/Structs/ActionOCGState.hs
+++ b/GI/Poppler/Structs/ActionOCGState.hs
@@ -17,24 +17,32 @@
 
  -- * Properties
 -- ** StateList
+    actionOCGStateClearStateList            ,
     actionOCGStateReadStateList             ,
+    actionOCGStateStateList                 ,
+    actionOCGStateWriteStateList            ,
 
 
 -- ** Title
+    actionOCGStateClearTitle                ,
     actionOCGStateReadTitle                 ,
+    actionOCGStateTitle                     ,
+    actionOCGStateWriteTitle                ,
 
 
 -- ** Type
     actionOCGStateReadType                  ,
+    actionOCGStateType                      ,
+    actionOCGStateWriteType                 ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -47,26 +55,108 @@
 newZeroActionOCGState :: MonadIO m => m ActionOCGState
 newZeroActionOCGState = liftIO $ callocBytes 24 >>= wrapPtr ActionOCGState
 
+instance tag ~ 'AttrSet => Constructible ActionOCGState tag where
+    new _ attrs = do
+        o <- newZeroActionOCGState
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionOCGState :: Maybe ActionOCGState
 noActionOCGState = Nothing
 
-actionOCGStateReadType :: ActionOCGState -> IO ActionType
-actionOCGStateReadType s = withManagedPtr s $ \ptr -> do
+actionOCGStateReadType :: MonadIO m => ActionOCGState -> m ActionType
+actionOCGStateReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionOCGStateReadTitle :: ActionOCGState -> IO T.Text
-actionOCGStateReadTitle s = withManagedPtr s $ \ptr -> do
+actionOCGStateWriteType :: MonadIO m => ActionOCGState -> ActionType -> m ()
+actionOCGStateWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionOCGStateTypeFieldInfo
+instance AttrInfo ActionOCGStateTypeFieldInfo where
+    type AttrAllowedOps ActionOCGStateTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionOCGStateTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionOCGStateTypeFieldInfo = (~) ActionOCGState
+    type AttrGetType ActionOCGStateTypeFieldInfo = ActionType
+    type AttrLabel ActionOCGStateTypeFieldInfo = "type"
+    attrGet _ = actionOCGStateReadType
+    attrSet _ = actionOCGStateWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionOCGStateType :: AttrLabelProxy "type"
+actionOCGStateType = AttrLabelProxy
+
+
+actionOCGStateReadTitle :: MonadIO m => ActionOCGState -> m (Maybe T.Text)
+actionOCGStateReadTitle 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
 
-actionOCGStateReadStateList :: ActionOCGState -> IO ([Ptr ()])
-actionOCGStateReadStateList s = withManagedPtr s $ \ptr -> do
+actionOCGStateWriteTitle :: MonadIO m => ActionOCGState -> CString -> m ()
+actionOCGStateWriteTitle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+actionOCGStateClearTitle :: MonadIO m => ActionOCGState -> m ()
+actionOCGStateClearTitle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ActionOCGStateTitleFieldInfo
+instance AttrInfo ActionOCGStateTitleFieldInfo where
+    type AttrAllowedOps ActionOCGStateTitleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionOCGStateTitleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionOCGStateTitleFieldInfo = (~) ActionOCGState
+    type AttrGetType ActionOCGStateTitleFieldInfo = Maybe T.Text
+    type AttrLabel ActionOCGStateTitleFieldInfo = "title"
+    attrGet _ = actionOCGStateReadTitle
+    attrSet _ = actionOCGStateWriteTitle
+    attrConstruct = undefined
+    attrClear _ = actionOCGStateClearTitle
+
+actionOCGStateTitle :: AttrLabelProxy "title"
+actionOCGStateTitle = AttrLabelProxy
+
+
+actionOCGStateReadStateList :: MonadIO m => ActionOCGState -> m ([Ptr ()])
+actionOCGStateReadStateList s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO (Ptr (GList (Ptr ())))
     val' <- unpackGList val
     return val'
+
+actionOCGStateWriteStateList :: MonadIO m => ActionOCGState -> Ptr (GList (Ptr ())) -> m ()
+actionOCGStateWriteStateList s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Ptr (GList (Ptr ())))
+
+actionOCGStateClearStateList :: MonadIO m => ActionOCGState -> m ()
+actionOCGStateClearStateList s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: Ptr (GList (Ptr ())))
+
+data ActionOCGStateStateListFieldInfo
+instance AttrInfo ActionOCGStateStateListFieldInfo where
+    type AttrAllowedOps ActionOCGStateStateListFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionOCGStateStateListFieldInfo = (~) (Ptr (GList (Ptr ())))
+    type AttrBaseTypeConstraint ActionOCGStateStateListFieldInfo = (~) ActionOCGState
+    type AttrGetType ActionOCGStateStateListFieldInfo = [Ptr ()]
+    type AttrLabel ActionOCGStateStateListFieldInfo = "state_list"
+    attrGet _ = actionOCGStateReadStateList
+    attrSet _ = actionOCGStateWriteStateList
+    attrConstruct = undefined
+    attrClear _ = actionOCGStateClearStateList
+
+actionOCGStateStateList :: AttrLabelProxy "stateList"
+actionOCGStateStateList = AttrLabelProxy
+
+
+
+type instance AttributeList ActionOCGState = ActionOCGStateAttributeList
+type ActionOCGStateAttributeList = ('[ '("type", ActionOCGStateTypeFieldInfo), '("title", ActionOCGStateTitleFieldInfo), '("stateList", ActionOCGStateStateListFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionOCGStateMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionOCGStateMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionOCGState.hs-boot b/GI/Poppler/Structs/ActionOCGState.hs-boot
--- a/GI/Poppler/Structs/ActionOCGState.hs-boot
+++ b/GI/Poppler/Structs/ActionOCGState.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionOCGState where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionRendition.hs b/GI/Poppler/Structs/ActionRendition.hs
--- a/GI/Poppler/Structs/ActionRendition.hs
+++ b/GI/Poppler/Structs/ActionRendition.hs
@@ -17,28 +17,38 @@
 
  -- * Properties
 -- ** Media
+    actionRenditionClearMedia               ,
+    actionRenditionMedia                    ,
     actionRenditionReadMedia                ,
+    actionRenditionWriteMedia               ,
 
 
 -- ** Op
+    actionRenditionOp                       ,
     actionRenditionReadOp                   ,
+    actionRenditionWriteOp                  ,
 
 
 -- ** Title
+    actionRenditionClearTitle               ,
     actionRenditionReadTitle                ,
+    actionRenditionTitle                    ,
+    actionRenditionWriteTitle               ,
 
 
 -- ** Type
     actionRenditionReadType                 ,
+    actionRenditionType                     ,
+    actionRenditionWriteType                ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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,31 +61,135 @@
 newZeroActionRendition :: MonadIO m => m ActionRendition
 newZeroActionRendition = liftIO $ callocBytes 32 >>= wrapPtr ActionRendition
 
+instance tag ~ 'AttrSet => Constructible ActionRendition tag where
+    new _ attrs = do
+        o <- newZeroActionRendition
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionRendition :: Maybe ActionRendition
 noActionRendition = Nothing
 
-actionRenditionReadType :: ActionRendition -> IO ActionType
-actionRenditionReadType s = withManagedPtr s $ \ptr -> do
+actionRenditionReadType :: MonadIO m => ActionRendition -> m ActionType
+actionRenditionReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionRenditionReadTitle :: ActionRendition -> IO T.Text
-actionRenditionReadTitle s = withManagedPtr s $ \ptr -> do
+actionRenditionWriteType :: MonadIO m => ActionRendition -> ActionType -> m ()
+actionRenditionWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionRenditionTypeFieldInfo
+instance AttrInfo ActionRenditionTypeFieldInfo where
+    type AttrAllowedOps ActionRenditionTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionRenditionTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionRenditionTypeFieldInfo = (~) ActionRendition
+    type AttrGetType ActionRenditionTypeFieldInfo = ActionType
+    type AttrLabel ActionRenditionTypeFieldInfo = "type"
+    attrGet _ = actionRenditionReadType
+    attrSet _ = actionRenditionWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionRenditionType :: AttrLabelProxy "type"
+actionRenditionType = AttrLabelProxy
+
+
+actionRenditionReadTitle :: MonadIO m => ActionRendition -> m (Maybe T.Text)
+actionRenditionReadTitle 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
 
-actionRenditionReadOp :: ActionRendition -> IO Int32
-actionRenditionReadOp s = withManagedPtr s $ \ptr -> do
+actionRenditionWriteTitle :: MonadIO m => ActionRendition -> CString -> m ()
+actionRenditionWriteTitle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+actionRenditionClearTitle :: MonadIO m => ActionRendition -> m ()
+actionRenditionClearTitle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ActionRenditionTitleFieldInfo
+instance AttrInfo ActionRenditionTitleFieldInfo where
+    type AttrAllowedOps ActionRenditionTitleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionRenditionTitleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionRenditionTitleFieldInfo = (~) ActionRendition
+    type AttrGetType ActionRenditionTitleFieldInfo = Maybe T.Text
+    type AttrLabel ActionRenditionTitleFieldInfo = "title"
+    attrGet _ = actionRenditionReadTitle
+    attrSet _ = actionRenditionWriteTitle
+    attrConstruct = undefined
+    attrClear _ = actionRenditionClearTitle
+
+actionRenditionTitle :: AttrLabelProxy "title"
+actionRenditionTitle = AttrLabelProxy
+
+
+actionRenditionReadOp :: MonadIO m => ActionRendition -> m Int32
+actionRenditionReadOp s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO Int32
     return val
 
-actionRenditionReadMedia :: ActionRendition -> IO Media
-actionRenditionReadMedia s = withManagedPtr s $ \ptr -> do
+actionRenditionWriteOp :: MonadIO m => ActionRendition -> Int32 -> m ()
+actionRenditionWriteOp s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Int32)
+
+data ActionRenditionOpFieldInfo
+instance AttrInfo ActionRenditionOpFieldInfo where
+    type AttrAllowedOps ActionRenditionOpFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionRenditionOpFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint ActionRenditionOpFieldInfo = (~) ActionRendition
+    type AttrGetType ActionRenditionOpFieldInfo = Int32
+    type AttrLabel ActionRenditionOpFieldInfo = "op"
+    attrGet _ = actionRenditionReadOp
+    attrSet _ = actionRenditionWriteOp
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionRenditionOp :: AttrLabelProxy "op"
+actionRenditionOp = AttrLabelProxy
+
+
+actionRenditionReadMedia :: MonadIO m => ActionRendition -> m (Maybe Media)
+actionRenditionReadMedia s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO (Ptr Media)
-    val' <- (newObject Media) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newObject Media) val'
+        return val''
+    return result
+
+actionRenditionWriteMedia :: MonadIO m => ActionRendition -> Ptr Media -> m ()
+actionRenditionWriteMedia s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (val :: Ptr Media)
+
+actionRenditionClearMedia :: MonadIO m => ActionRendition -> m ()
+actionRenditionClearMedia s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 24) (nullPtr :: Ptr Media)
+
+data ActionRenditionMediaFieldInfo
+instance AttrInfo ActionRenditionMediaFieldInfo where
+    type AttrAllowedOps ActionRenditionMediaFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionRenditionMediaFieldInfo = (~) (Ptr Media)
+    type AttrBaseTypeConstraint ActionRenditionMediaFieldInfo = (~) ActionRendition
+    type AttrGetType ActionRenditionMediaFieldInfo = Maybe Media
+    type AttrLabel ActionRenditionMediaFieldInfo = "media"
+    attrGet _ = actionRenditionReadMedia
+    attrSet _ = actionRenditionWriteMedia
+    attrConstruct = undefined
+    attrClear _ = actionRenditionClearMedia
+
+actionRenditionMedia :: AttrLabelProxy "media"
+actionRenditionMedia = AttrLabelProxy
+
+
+
+type instance AttributeList ActionRendition = ActionRenditionAttributeList
+type ActionRenditionAttributeList = ('[ '("type", ActionRenditionTypeFieldInfo), '("title", ActionRenditionTitleFieldInfo), '("op", ActionRenditionOpFieldInfo), '("media", ActionRenditionMediaFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionRenditionMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionRenditionMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionRendition.hs-boot b/GI/Poppler/Structs/ActionRendition.hs-boot
--- a/GI/Poppler/Structs/ActionRendition.hs-boot
+++ b/GI/Poppler/Structs/ActionRendition.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionRendition where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ActionUri.hs b/GI/Poppler/Structs/ActionUri.hs
--- a/GI/Poppler/Structs/ActionUri.hs
+++ b/GI/Poppler/Structs/ActionUri.hs
@@ -17,24 +17,32 @@
 
  -- * Properties
 -- ** Title
+    actionUriClearTitle                     ,
     actionUriReadTitle                      ,
+    actionUriTitle                          ,
+    actionUriWriteTitle                     ,
 
 
 -- ** Type
     actionUriReadType                       ,
+    actionUriType                           ,
+    actionUriWriteType                      ,
 
 
 -- ** Uri
+    actionUriClearUri                       ,
     actionUriReadUri                        ,
+    actionUriUri                            ,
+    actionUriWriteUri                       ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -47,26 +55,110 @@
 newZeroActionUri :: MonadIO m => m ActionUri
 newZeroActionUri = liftIO $ callocBytes 24 >>= wrapPtr ActionUri
 
+instance tag ~ 'AttrSet => Constructible ActionUri tag where
+    new _ attrs = do
+        o <- newZeroActionUri
+        GI.Attributes.set o attrs
+        return o
+
+
 noActionUri :: Maybe ActionUri
 noActionUri = Nothing
 
-actionUriReadType :: ActionUri -> IO ActionType
-actionUriReadType s = withManagedPtr s $ \ptr -> do
+actionUriReadType :: MonadIO m => ActionUri -> m ActionType
+actionUriReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionUriReadTitle :: ActionUri -> IO T.Text
-actionUriReadTitle s = withManagedPtr s $ \ptr -> do
+actionUriWriteType :: MonadIO m => ActionUri -> ActionType -> m ()
+actionUriWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionUriTypeFieldInfo
+instance AttrInfo ActionUriTypeFieldInfo where
+    type AttrAllowedOps ActionUriTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionUriTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionUriTypeFieldInfo = (~) ActionUri
+    type AttrGetType ActionUriTypeFieldInfo = ActionType
+    type AttrLabel ActionUriTypeFieldInfo = "type"
+    attrGet _ = actionUriReadType
+    attrSet _ = actionUriWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionUriType :: AttrLabelProxy "type"
+actionUriType = AttrLabelProxy
+
+
+actionUriReadTitle :: MonadIO m => ActionUri -> m (Maybe T.Text)
+actionUriReadTitle 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
 
-actionUriReadUri :: ActionUri -> IO T.Text
-actionUriReadUri s = withManagedPtr s $ \ptr -> do
+actionUriWriteTitle :: MonadIO m => ActionUri -> CString -> m ()
+actionUriWriteTitle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (val :: CString)
+
+actionUriClearTitle :: MonadIO m => ActionUri -> m ()
+actionUriClearTitle s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 8) (nullPtr :: CString)
+
+data ActionUriTitleFieldInfo
+instance AttrInfo ActionUriTitleFieldInfo where
+    type AttrAllowedOps ActionUriTitleFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionUriTitleFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionUriTitleFieldInfo = (~) ActionUri
+    type AttrGetType ActionUriTitleFieldInfo = Maybe T.Text
+    type AttrLabel ActionUriTitleFieldInfo = "title"
+    attrGet _ = actionUriReadTitle
+    attrSet _ = actionUriWriteTitle
+    attrConstruct = undefined
+    attrClear _ = actionUriClearTitle
+
+actionUriTitle :: AttrLabelProxy "title"
+actionUriTitle = AttrLabelProxy
+
+
+actionUriReadUri :: MonadIO m => ActionUri -> m (Maybe T.Text)
+actionUriReadUri 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
+
+actionUriWriteUri :: MonadIO m => ActionUri -> CString -> m ()
+actionUriWriteUri s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: CString)
+
+actionUriClearUri :: MonadIO m => ActionUri -> m ()
+actionUriClearUri s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: CString)
+
+data ActionUriUriFieldInfo
+instance AttrInfo ActionUriUriFieldInfo where
+    type AttrAllowedOps ActionUriUriFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionUriUriFieldInfo = (~) CString
+    type AttrBaseTypeConstraint ActionUriUriFieldInfo = (~) ActionUri
+    type AttrGetType ActionUriUriFieldInfo = Maybe T.Text
+    type AttrLabel ActionUriUriFieldInfo = "uri"
+    attrGet _ = actionUriReadUri
+    attrSet _ = actionUriWriteUri
+    attrConstruct = undefined
+    attrClear _ = actionUriClearUri
+
+actionUriUri :: AttrLabelProxy "uri"
+actionUriUri = AttrLabelProxy
+
+
+
+type instance AttributeList ActionUri = ActionUriAttributeList
+type ActionUriAttributeList = ('[ '("type", ActionUriTypeFieldInfo), '("title", ActionUriTitleFieldInfo), '("uri", ActionUriUriFieldInfo)] :: [(Symbol, *)])
 
 type family ResolveActionUriMethod (t :: Symbol) (o :: *) :: * where
     ResolveActionUriMethod l o = MethodResolutionFailed l o
diff --git a/GI/Poppler/Structs/ActionUri.hs-boot b/GI/Poppler/Structs/ActionUri.hs-boot
--- a/GI/Poppler/Structs/ActionUri.hs-boot
+++ b/GI/Poppler/Structs/ActionUri.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ActionUri where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/AnnotCalloutLine.hs b/GI/Poppler/Structs/AnnotCalloutLine.hs
--- a/GI/Poppler/Structs/AnnotCalloutLine.hs
+++ b/GI/Poppler/Structs/AnnotCalloutLine.hs
@@ -34,40 +34,54 @@
 
  -- * Properties
 -- ** Multiline
+    annotCalloutLineMultiline               ,
     annotCalloutLineReadMultiline           ,
+    annotCalloutLineWriteMultiline          ,
 
 
 -- ** X1
     annotCalloutLineReadX1                  ,
+    annotCalloutLineWriteX1                 ,
+    annotCalloutLineX1                      ,
 
 
 -- ** X2
     annotCalloutLineReadX2                  ,
+    annotCalloutLineWriteX2                 ,
+    annotCalloutLineX2                      ,
 
 
 -- ** X3
     annotCalloutLineReadX3                  ,
+    annotCalloutLineWriteX3                 ,
+    annotCalloutLineX3                      ,
 
 
 -- ** Y1
     annotCalloutLineReadY1                  ,
+    annotCalloutLineWriteY1                 ,
+    annotCalloutLineY1                      ,
 
 
 -- ** Y2
     annotCalloutLineReadY2                  ,
+    annotCalloutLineWriteY2                 ,
+    annotCalloutLineY2                      ,
 
 
 -- ** Y3
     annotCalloutLineReadY3                  ,
+    annotCalloutLineWriteY3                 ,
+    annotCalloutLineY3                      ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -86,56 +100,214 @@
 newZeroAnnotCalloutLine :: MonadIO m => m AnnotCalloutLine
 newZeroAnnotCalloutLine = liftIO $ callocBoxedBytes 56 >>= wrapBoxed AnnotCalloutLine
 
+instance tag ~ 'AttrSet => Constructible AnnotCalloutLine tag where
+    new _ attrs = do
+        o <- newZeroAnnotCalloutLine
+        GI.Attributes.set o attrs
+        return o
+
+
 noAnnotCalloutLine :: Maybe AnnotCalloutLine
 noAnnotCalloutLine = Nothing
 
-annotCalloutLineReadMultiline :: AnnotCalloutLine -> IO Bool
-annotCalloutLineReadMultiline s = withManagedPtr s $ \ptr -> do
+annotCalloutLineReadMultiline :: MonadIO m => AnnotCalloutLine -> m Bool
+annotCalloutLineReadMultiline s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CInt
     let val' = (/= 0) val
     return val'
 
-annotCalloutLineReadX1 :: AnnotCalloutLine -> IO Double
-annotCalloutLineReadX1 s = withManagedPtr s $ \ptr -> do
+annotCalloutLineWriteMultiline :: MonadIO m => AnnotCalloutLine -> Bool -> m ()
+annotCalloutLineWriteMultiline s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CInt)
+
+data AnnotCalloutLineMultilineFieldInfo
+instance AttrInfo AnnotCalloutLineMultilineFieldInfo where
+    type AttrAllowedOps AnnotCalloutLineMultilineFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint AnnotCalloutLineMultilineFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint AnnotCalloutLineMultilineFieldInfo = (~) AnnotCalloutLine
+    type AttrGetType AnnotCalloutLineMultilineFieldInfo = Bool
+    type AttrLabel AnnotCalloutLineMultilineFieldInfo = "multiline"
+    attrGet _ = annotCalloutLineReadMultiline
+    attrSet _ = annotCalloutLineWriteMultiline
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+annotCalloutLineMultiline :: AttrLabelProxy "multiline"
+annotCalloutLineMultiline = AttrLabelProxy
+
+
+annotCalloutLineReadX1 :: MonadIO m => AnnotCalloutLine -> m Double
+annotCalloutLineReadX1 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-annotCalloutLineReadY1 :: AnnotCalloutLine -> IO Double
-annotCalloutLineReadY1 s = withManagedPtr s $ \ptr -> do
+annotCalloutLineWriteX1 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
+annotCalloutLineWriteX1 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 8) (val' :: CDouble)
+
+data AnnotCalloutLineX1FieldInfo
+instance AttrInfo AnnotCalloutLineX1FieldInfo where
+    type AttrAllowedOps AnnotCalloutLineX1FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint AnnotCalloutLineX1FieldInfo = (~) Double
+    type AttrBaseTypeConstraint AnnotCalloutLineX1FieldInfo = (~) AnnotCalloutLine
+    type AttrGetType AnnotCalloutLineX1FieldInfo = Double
+    type AttrLabel AnnotCalloutLineX1FieldInfo = "x1"
+    attrGet _ = annotCalloutLineReadX1
+    attrSet _ = annotCalloutLineWriteX1
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+annotCalloutLineX1 :: AttrLabelProxy "x1"
+annotCalloutLineX1 = AttrLabelProxy
+
+
+annotCalloutLineReadY1 :: MonadIO m => AnnotCalloutLine -> m Double
+annotCalloutLineReadY1 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-annotCalloutLineReadX2 :: AnnotCalloutLine -> IO Double
-annotCalloutLineReadX2 s = withManagedPtr s $ \ptr -> do
+annotCalloutLineWriteY1 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
+annotCalloutLineWriteY1 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 16) (val' :: CDouble)
+
+data AnnotCalloutLineY1FieldInfo
+instance AttrInfo AnnotCalloutLineY1FieldInfo where
+    type AttrAllowedOps AnnotCalloutLineY1FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint AnnotCalloutLineY1FieldInfo = (~) Double
+    type AttrBaseTypeConstraint AnnotCalloutLineY1FieldInfo = (~) AnnotCalloutLine
+    type AttrGetType AnnotCalloutLineY1FieldInfo = Double
+    type AttrLabel AnnotCalloutLineY1FieldInfo = "y1"
+    attrGet _ = annotCalloutLineReadY1
+    attrSet _ = annotCalloutLineWriteY1
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+annotCalloutLineY1 :: AttrLabelProxy "y1"
+annotCalloutLineY1 = AttrLabelProxy
+
+
+annotCalloutLineReadX2 :: MonadIO m => AnnotCalloutLine -> m Double
+annotCalloutLineReadX2 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-annotCalloutLineReadY2 :: AnnotCalloutLine -> IO Double
-annotCalloutLineReadY2 s = withManagedPtr s $ \ptr -> do
+annotCalloutLineWriteX2 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
+annotCalloutLineWriteX2 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 24) (val' :: CDouble)
+
+data AnnotCalloutLineX2FieldInfo
+instance AttrInfo AnnotCalloutLineX2FieldInfo where
+    type AttrAllowedOps AnnotCalloutLineX2FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint AnnotCalloutLineX2FieldInfo = (~) Double
+    type AttrBaseTypeConstraint AnnotCalloutLineX2FieldInfo = (~) AnnotCalloutLine
+    type AttrGetType AnnotCalloutLineX2FieldInfo = Double
+    type AttrLabel AnnotCalloutLineX2FieldInfo = "x2"
+    attrGet _ = annotCalloutLineReadX2
+    attrSet _ = annotCalloutLineWriteX2
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+annotCalloutLineX2 :: AttrLabelProxy "x2"
+annotCalloutLineX2 = AttrLabelProxy
+
+
+annotCalloutLineReadY2 :: MonadIO m => AnnotCalloutLine -> m Double
+annotCalloutLineReadY2 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-annotCalloutLineReadX3 :: AnnotCalloutLine -> IO Double
-annotCalloutLineReadX3 s = withManagedPtr s $ \ptr -> do
+annotCalloutLineWriteY2 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
+annotCalloutLineWriteY2 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 32) (val' :: CDouble)
+
+data AnnotCalloutLineY2FieldInfo
+instance AttrInfo AnnotCalloutLineY2FieldInfo where
+    type AttrAllowedOps AnnotCalloutLineY2FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint AnnotCalloutLineY2FieldInfo = (~) Double
+    type AttrBaseTypeConstraint AnnotCalloutLineY2FieldInfo = (~) AnnotCalloutLine
+    type AttrGetType AnnotCalloutLineY2FieldInfo = Double
+    type AttrLabel AnnotCalloutLineY2FieldInfo = "y2"
+    attrGet _ = annotCalloutLineReadY2
+    attrSet _ = annotCalloutLineWriteY2
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+annotCalloutLineY2 :: AttrLabelProxy "y2"
+annotCalloutLineY2 = AttrLabelProxy
+
+
+annotCalloutLineReadX3 :: MonadIO m => AnnotCalloutLine -> m Double
+annotCalloutLineReadX3 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 40) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-annotCalloutLineReadY3 :: AnnotCalloutLine -> IO Double
-annotCalloutLineReadY3 s = withManagedPtr s $ \ptr -> do
+annotCalloutLineWriteX3 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
+annotCalloutLineWriteX3 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 40) (val' :: CDouble)
+
+data AnnotCalloutLineX3FieldInfo
+instance AttrInfo AnnotCalloutLineX3FieldInfo where
+    type AttrAllowedOps AnnotCalloutLineX3FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint AnnotCalloutLineX3FieldInfo = (~) Double
+    type AttrBaseTypeConstraint AnnotCalloutLineX3FieldInfo = (~) AnnotCalloutLine
+    type AttrGetType AnnotCalloutLineX3FieldInfo = Double
+    type AttrLabel AnnotCalloutLineX3FieldInfo = "x3"
+    attrGet _ = annotCalloutLineReadX3
+    attrSet _ = annotCalloutLineWriteX3
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+annotCalloutLineX3 :: AttrLabelProxy "x3"
+annotCalloutLineX3 = AttrLabelProxy
+
+
+annotCalloutLineReadY3 :: MonadIO m => AnnotCalloutLine -> m Double
+annotCalloutLineReadY3 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 48) :: IO CDouble
     let val' = realToFrac val
     return val'
 
+annotCalloutLineWriteY3 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
+annotCalloutLineWriteY3 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 48) (val' :: CDouble)
+
+data AnnotCalloutLineY3FieldInfo
+instance AttrInfo AnnotCalloutLineY3FieldInfo where
+    type AttrAllowedOps AnnotCalloutLineY3FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint AnnotCalloutLineY3FieldInfo = (~) Double
+    type AttrBaseTypeConstraint AnnotCalloutLineY3FieldInfo = (~) AnnotCalloutLine
+    type AttrGetType AnnotCalloutLineY3FieldInfo = Double
+    type AttrLabel AnnotCalloutLineY3FieldInfo = "y3"
+    attrGet _ = annotCalloutLineReadY3
+    attrSet _ = annotCalloutLineWriteY3
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+annotCalloutLineY3 :: AttrLabelProxy "y3"
+annotCalloutLineY3 = AttrLabelProxy
+
+
+
+type instance AttributeList AnnotCalloutLine = AnnotCalloutLineAttributeList
+type AnnotCalloutLineAttributeList = ('[ '("multiline", AnnotCalloutLineMultilineFieldInfo), '("x1", AnnotCalloutLineX1FieldInfo), '("y1", AnnotCalloutLineY1FieldInfo), '("x2", AnnotCalloutLineX2FieldInfo), '("y2", AnnotCalloutLineY2FieldInfo), '("x3", AnnotCalloutLineX3FieldInfo), '("y3", AnnotCalloutLineY3FieldInfo)] :: [(Symbol, *)])
+
 -- method AnnotCalloutLine::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotCalloutLine"
+-- returnType : Just (TInterface "Poppler" "AnnotCalloutLine")
 -- throws : False
 -- Skip return : False
 
@@ -156,7 +328,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotCalloutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotCalloutLine"
+-- returnType : Just (TInterface "Poppler" "AnnotCalloutLine")
 -- throws : False
 -- Skip return : False
 
@@ -185,7 +357,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotCalloutLine", direction = 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/Poppler/Structs/AnnotCalloutLine.hs-boot b/GI/Poppler/Structs/AnnotCalloutLine.hs-boot
--- a/GI/Poppler/Structs/AnnotCalloutLine.hs-boot
+++ b/GI/Poppler/Structs/AnnotCalloutLine.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.AnnotCalloutLine where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/AnnotMapping.hs b/GI/Poppler/Structs/AnnotMapping.hs
--- a/GI/Poppler/Structs/AnnotMapping.hs
+++ b/GI/Poppler/Structs/AnnotMapping.hs
@@ -37,20 +37,26 @@
 
  -- * Properties
 -- ** Annot
+    annotMappingAnnot                       ,
+    annotMappingClearAnnot                  ,
     annotMappingReadAnnot                   ,
+    annotMappingWriteAnnot                  ,
 
 
 -- ** Area
+    annotMappingArea                        ,
+    annotMappingClearArea                   ,
     annotMappingReadArea                    ,
+    annotMappingWriteArea                   ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -69,26 +75,89 @@
 newZeroAnnotMapping :: MonadIO m => m AnnotMapping
 newZeroAnnotMapping = liftIO $ callocBoxedBytes 40 >>= wrapBoxed AnnotMapping
 
+instance tag ~ 'AttrSet => Constructible AnnotMapping tag where
+    new _ attrs = do
+        o <- newZeroAnnotMapping
+        GI.Attributes.set o attrs
+        return o
+
+
 noAnnotMapping :: Maybe AnnotMapping
 noAnnotMapping = Nothing
 
-annotMappingReadArea :: AnnotMapping -> IO Rectangle
-annotMappingReadArea s = withManagedPtr s $ \ptr -> do
+annotMappingReadArea :: MonadIO m => AnnotMapping -> m (Maybe Rectangle)
+annotMappingReadArea s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr Rectangle)
-    val' <- (newBoxed Rectangle) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Rectangle) val'
+        return val''
+    return result
 
-annotMappingReadAnnot :: AnnotMapping -> IO Annot
-annotMappingReadAnnot s = withManagedPtr s $ \ptr -> do
+annotMappingWriteArea :: MonadIO m => AnnotMapping -> Ptr Rectangle -> m ()
+annotMappingWriteArea s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr Rectangle)
+
+annotMappingClearArea :: MonadIO m => AnnotMapping -> m ()
+annotMappingClearArea s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr Rectangle)
+
+data AnnotMappingAreaFieldInfo
+instance AttrInfo AnnotMappingAreaFieldInfo where
+    type AttrAllowedOps AnnotMappingAreaFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint AnnotMappingAreaFieldInfo = (~) (Ptr Rectangle)
+    type AttrBaseTypeConstraint AnnotMappingAreaFieldInfo = (~) AnnotMapping
+    type AttrGetType AnnotMappingAreaFieldInfo = Maybe Rectangle
+    type AttrLabel AnnotMappingAreaFieldInfo = "area"
+    attrGet _ = annotMappingReadArea
+    attrSet _ = annotMappingWriteArea
+    attrConstruct = undefined
+    attrClear _ = annotMappingClearArea
+
+annotMappingArea :: AttrLabelProxy "area"
+annotMappingArea = AttrLabelProxy
+
+
+annotMappingReadAnnot :: MonadIO m => AnnotMapping -> m (Maybe Annot)
+annotMappingReadAnnot s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO (Ptr Annot)
-    val' <- (newObject Annot) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newObject Annot) val'
+        return val''
+    return result
 
+annotMappingWriteAnnot :: MonadIO m => AnnotMapping -> Ptr Annot -> m ()
+annotMappingWriteAnnot s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Ptr Annot)
+
+annotMappingClearAnnot :: MonadIO m => AnnotMapping -> m ()
+annotMappingClearAnnot s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (nullPtr :: Ptr Annot)
+
+data AnnotMappingAnnotFieldInfo
+instance AttrInfo AnnotMappingAnnotFieldInfo where
+    type AttrAllowedOps AnnotMappingAnnotFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint AnnotMappingAnnotFieldInfo = (~) (Ptr Annot)
+    type AttrBaseTypeConstraint AnnotMappingAnnotFieldInfo = (~) AnnotMapping
+    type AttrGetType AnnotMappingAnnotFieldInfo = Maybe Annot
+    type AttrLabel AnnotMappingAnnotFieldInfo = "annot"
+    attrGet _ = annotMappingReadAnnot
+    attrSet _ = annotMappingWriteAnnot
+    attrConstruct = undefined
+    attrClear _ = annotMappingClearAnnot
+
+annotMappingAnnot :: AttrLabelProxy "annot"
+annotMappingAnnot = AttrLabelProxy
+
+
+
+type instance AttributeList AnnotMapping = AnnotMappingAttributeList
+type AnnotMappingAttributeList = ('[ '("area", AnnotMappingAreaFieldInfo), '("annot", AnnotMappingAnnotFieldInfo)] :: [(Symbol, *)])
+
 -- method AnnotMapping::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotMapping"
+-- returnType : Just (TInterface "Poppler" "AnnotMapping")
 -- throws : False
 -- Skip return : False
 
@@ -109,7 +178,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMapping", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "AnnotMapping"
+-- returnType : Just (TInterface "Poppler" "AnnotMapping")
 -- throws : False
 -- Skip return : False
 
@@ -138,7 +207,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotMapping", direction = 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/Poppler/Structs/AnnotMapping.hs-boot b/GI/Poppler/Structs/AnnotMapping.hs-boot
--- a/GI/Poppler/Structs/AnnotMapping.hs-boot
+++ b/GI/Poppler/Structs/AnnotMapping.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.AnnotMapping where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/Color.hs b/GI/Poppler/Structs/Color.hs
--- a/GI/Poppler/Structs/Color.hs
+++ b/GI/Poppler/Structs/Color.hs
@@ -37,24 +37,30 @@
 
  -- * Properties
 -- ** Blue
+    colorBlue                               ,
     colorReadBlue                           ,
+    colorWriteBlue                          ,
 
 
 -- ** Green
+    colorGreen                              ,
     colorReadGreen                          ,
+    colorWriteGreen                         ,
 
 
 -- ** Red
     colorReadRed                            ,
+    colorRed                                ,
+    colorWriteRed                           ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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,29 +79,100 @@
 newZeroColor :: MonadIO m => m Color
 newZeroColor = liftIO $ callocBoxedBytes 6 >>= wrapBoxed Color
 
+instance tag ~ 'AttrSet => Constructible Color tag where
+    new _ attrs = do
+        o <- newZeroColor
+        GI.Attributes.set o attrs
+        return o
+
+
 noColor :: Maybe Color
 noColor = Nothing
 
-colorReadRed :: Color -> IO Word16
-colorReadRed s = withManagedPtr s $ \ptr -> do
+colorReadRed :: MonadIO m => Color -> m Word16
+colorReadRed s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Word16
     return val
 
-colorReadGreen :: Color -> IO Word16
-colorReadGreen s = withManagedPtr s $ \ptr -> do
+colorWriteRed :: MonadIO m => Color -> Word16 -> m ()
+colorWriteRed s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Word16)
+
+data ColorRedFieldInfo
+instance AttrInfo ColorRedFieldInfo where
+    type AttrAllowedOps ColorRedFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ColorRedFieldInfo = (~) Word16
+    type AttrBaseTypeConstraint ColorRedFieldInfo = (~) Color
+    type AttrGetType ColorRedFieldInfo = Word16
+    type AttrLabel ColorRedFieldInfo = "red"
+    attrGet _ = colorReadRed
+    attrSet _ = colorWriteRed
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+colorRed :: AttrLabelProxy "red"
+colorRed = AttrLabelProxy
+
+
+colorReadGreen :: MonadIO m => Color -> m Word16
+colorReadGreen s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 2) :: IO Word16
     return val
 
-colorReadBlue :: Color -> IO Word16
-colorReadBlue s = withManagedPtr s $ \ptr -> do
+colorWriteGreen :: MonadIO m => Color -> Word16 -> m ()
+colorWriteGreen s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 2) (val :: Word16)
+
+data ColorGreenFieldInfo
+instance AttrInfo ColorGreenFieldInfo where
+    type AttrAllowedOps ColorGreenFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ColorGreenFieldInfo = (~) Word16
+    type AttrBaseTypeConstraint ColorGreenFieldInfo = (~) Color
+    type AttrGetType ColorGreenFieldInfo = Word16
+    type AttrLabel ColorGreenFieldInfo = "green"
+    attrGet _ = colorReadGreen
+    attrSet _ = colorWriteGreen
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+colorGreen :: AttrLabelProxy "green"
+colorGreen = AttrLabelProxy
+
+
+colorReadBlue :: MonadIO m => Color -> m Word16
+colorReadBlue s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO Word16
     return val
 
+colorWriteBlue :: MonadIO m => Color -> Word16 -> m ()
+colorWriteBlue s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 4) (val :: Word16)
+
+data ColorBlueFieldInfo
+instance AttrInfo ColorBlueFieldInfo where
+    type AttrAllowedOps ColorBlueFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ColorBlueFieldInfo = (~) Word16
+    type AttrBaseTypeConstraint ColorBlueFieldInfo = (~) Color
+    type AttrGetType ColorBlueFieldInfo = Word16
+    type AttrLabel ColorBlueFieldInfo = "blue"
+    attrGet _ = colorReadBlue
+    attrSet _ = colorWriteBlue
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+colorBlue :: AttrLabelProxy "blue"
+colorBlue = AttrLabelProxy
+
+
+
+type instance AttributeList Color = ColorAttributeList
+type ColorAttributeList = ('[ '("red", ColorRedFieldInfo), '("green", ColorGreenFieldInfo), '("blue", ColorBlueFieldInfo)] :: [(Symbol, *)])
+
 -- method Color::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "Color"
+-- returnType : Just (TInterface "Poppler" "Color")
 -- throws : False
 -- Skip return : False
 
@@ -116,7 +193,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Color"
+-- returnType : Just (TInterface "Poppler" "Color")
 -- throws : False
 -- Skip return : False
 
@@ -145,7 +222,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Color", direction = 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/Poppler/Structs/Color.hs-boot b/GI/Poppler/Structs/Color.hs-boot
--- a/GI/Poppler/Structs/Color.hs-boot
+++ b/GI/Poppler/Structs/Color.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.Color where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/Dest.hs b/GI/Poppler/Structs/Dest.hs
--- a/GI/Poppler/Structs/Dest.hs
+++ b/GI/Poppler/Structs/Dest.hs
@@ -32,56 +32,79 @@
 
  -- * Properties
 -- ** Bottom
+    destBottom                              ,
     destReadBottom                          ,
+    destWriteBottom                         ,
 
 
 -- ** ChangeLeft
+    destChangeLeft                          ,
     destReadChangeLeft                      ,
+    destWriteChangeLeft                     ,
 
 
 -- ** ChangeTop
+    destChangeTop                           ,
     destReadChangeTop                       ,
+    destWriteChangeTop                      ,
 
 
 -- ** ChangeZoom
+    destChangeZoom                          ,
     destReadChangeZoom                      ,
+    destWriteChangeZoom                     ,
 
 
 -- ** Left
+    destLeft                                ,
     destReadLeft                            ,
+    destWriteLeft                           ,
 
 
 -- ** NamedDest
+    destClearNamedDest                      ,
+    destNamedDest                           ,
     destReadNamedDest                       ,
+    destWriteNamedDest                      ,
 
 
 -- ** PageNum
+    destPageNum                             ,
     destReadPageNum                         ,
+    destWritePageNum                        ,
 
 
 -- ** Right
     destReadRight                           ,
+    destRight                               ,
+    destWriteRight                          ,
 
 
 -- ** Top
     destReadTop                             ,
+    destTop                                 ,
+    destWriteTop                            ,
 
 
 -- ** Type
     destReadType                            ,
+    destType                                ,
+    destWriteType                           ,
 
 
 -- ** Zoom
     destReadZoom                            ,
+    destWriteZoom                           ,
+    destZoom                                ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -100,76 +123,319 @@
 newZeroDest :: MonadIO m => m Dest
 newZeroDest = liftIO $ callocBoxedBytes 72 >>= wrapBoxed Dest
 
+instance tag ~ 'AttrSet => Constructible Dest tag where
+    new _ attrs = do
+        o <- newZeroDest
+        GI.Attributes.set o attrs
+        return o
+
+
 noDest :: Maybe Dest
 noDest = Nothing
 
-destReadType :: Dest -> IO DestType
-destReadType s = withManagedPtr s $ \ptr -> do
+destReadType :: MonadIO m => Dest -> m DestType
+destReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-destReadPageNum :: Dest -> IO Int32
-destReadPageNum s = withManagedPtr s $ \ptr -> do
+destWriteType :: MonadIO m => Dest -> DestType -> m ()
+destWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data DestTypeFieldInfo
+instance AttrInfo DestTypeFieldInfo where
+    type AttrAllowedOps DestTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DestTypeFieldInfo = (~) DestType
+    type AttrBaseTypeConstraint DestTypeFieldInfo = (~) Dest
+    type AttrGetType DestTypeFieldInfo = DestType
+    type AttrLabel DestTypeFieldInfo = "type"
+    attrGet _ = destReadType
+    attrSet _ = destWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+destType :: AttrLabelProxy "type"
+destType = AttrLabelProxy
+
+
+destReadPageNum :: MonadIO m => Dest -> m Int32
+destReadPageNum s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO Int32
     return val
 
-destReadLeft :: Dest -> IO Double
-destReadLeft s = withManagedPtr s $ \ptr -> do
+destWritePageNum :: MonadIO m => Dest -> Int32 -> m ()
+destWritePageNum s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 4) (val :: Int32)
+
+data DestPageNumFieldInfo
+instance AttrInfo DestPageNumFieldInfo where
+    type AttrAllowedOps DestPageNumFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DestPageNumFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint DestPageNumFieldInfo = (~) Dest
+    type AttrGetType DestPageNumFieldInfo = Int32
+    type AttrLabel DestPageNumFieldInfo = "page_num"
+    attrGet _ = destReadPageNum
+    attrSet _ = destWritePageNum
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+destPageNum :: AttrLabelProxy "pageNum"
+destPageNum = AttrLabelProxy
+
+
+destReadLeft :: MonadIO m => Dest -> m Double
+destReadLeft s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-destReadBottom :: Dest -> IO Double
-destReadBottom s = withManagedPtr s $ \ptr -> do
+destWriteLeft :: MonadIO m => Dest -> Double -> m ()
+destWriteLeft s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 8) (val' :: CDouble)
+
+data DestLeftFieldInfo
+instance AttrInfo DestLeftFieldInfo where
+    type AttrAllowedOps DestLeftFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DestLeftFieldInfo = (~) Double
+    type AttrBaseTypeConstraint DestLeftFieldInfo = (~) Dest
+    type AttrGetType DestLeftFieldInfo = Double
+    type AttrLabel DestLeftFieldInfo = "left"
+    attrGet _ = destReadLeft
+    attrSet _ = destWriteLeft
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+destLeft :: AttrLabelProxy "left"
+destLeft = AttrLabelProxy
+
+
+destReadBottom :: MonadIO m => Dest -> m Double
+destReadBottom s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-destReadRight :: Dest -> IO Double
-destReadRight s = withManagedPtr s $ \ptr -> do
+destWriteBottom :: MonadIO m => Dest -> Double -> m ()
+destWriteBottom s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 16) (val' :: CDouble)
+
+data DestBottomFieldInfo
+instance AttrInfo DestBottomFieldInfo where
+    type AttrAllowedOps DestBottomFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DestBottomFieldInfo = (~) Double
+    type AttrBaseTypeConstraint DestBottomFieldInfo = (~) Dest
+    type AttrGetType DestBottomFieldInfo = Double
+    type AttrLabel DestBottomFieldInfo = "bottom"
+    attrGet _ = destReadBottom
+    attrSet _ = destWriteBottom
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+destBottom :: AttrLabelProxy "bottom"
+destBottom = AttrLabelProxy
+
+
+destReadRight :: MonadIO m => Dest -> m Double
+destReadRight s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-destReadTop :: Dest -> IO Double
-destReadTop s = withManagedPtr s $ \ptr -> do
+destWriteRight :: MonadIO m => Dest -> Double -> m ()
+destWriteRight s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 24) (val' :: CDouble)
+
+data DestRightFieldInfo
+instance AttrInfo DestRightFieldInfo where
+    type AttrAllowedOps DestRightFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DestRightFieldInfo = (~) Double
+    type AttrBaseTypeConstraint DestRightFieldInfo = (~) Dest
+    type AttrGetType DestRightFieldInfo = Double
+    type AttrLabel DestRightFieldInfo = "right"
+    attrGet _ = destReadRight
+    attrSet _ = destWriteRight
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+destRight :: AttrLabelProxy "right"
+destRight = AttrLabelProxy
+
+
+destReadTop :: MonadIO m => Dest -> m Double
+destReadTop s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-destReadZoom :: Dest -> IO Double
-destReadZoom s = withManagedPtr s $ \ptr -> do
+destWriteTop :: MonadIO m => Dest -> Double -> m ()
+destWriteTop s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 32) (val' :: CDouble)
+
+data DestTopFieldInfo
+instance AttrInfo DestTopFieldInfo where
+    type AttrAllowedOps DestTopFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DestTopFieldInfo = (~) Double
+    type AttrBaseTypeConstraint DestTopFieldInfo = (~) Dest
+    type AttrGetType DestTopFieldInfo = Double
+    type AttrLabel DestTopFieldInfo = "top"
+    attrGet _ = destReadTop
+    attrSet _ = destWriteTop
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+destTop :: AttrLabelProxy "top"
+destTop = AttrLabelProxy
+
+
+destReadZoom :: MonadIO m => Dest -> m Double
+destReadZoom s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 40) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-destReadNamedDest :: Dest -> IO T.Text
-destReadNamedDest s = withManagedPtr s $ \ptr -> do
+destWriteZoom :: MonadIO m => Dest -> Double -> m ()
+destWriteZoom s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 40) (val' :: CDouble)
+
+data DestZoomFieldInfo
+instance AttrInfo DestZoomFieldInfo where
+    type AttrAllowedOps DestZoomFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DestZoomFieldInfo = (~) Double
+    type AttrBaseTypeConstraint DestZoomFieldInfo = (~) Dest
+    type AttrGetType DestZoomFieldInfo = Double
+    type AttrLabel DestZoomFieldInfo = "zoom"
+    attrGet _ = destReadZoom
+    attrSet _ = destWriteZoom
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+destZoom :: AttrLabelProxy "zoom"
+destZoom = AttrLabelProxy
+
+
+destReadNamedDest :: MonadIO m => Dest -> m (Maybe T.Text)
+destReadNamedDest s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 48) :: IO CString
-    val' <- cstringToText val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- cstringToText val'
+        return val''
+    return result
 
-destReadChangeLeft :: Dest -> IO Word32
-destReadChangeLeft s = withManagedPtr s $ \ptr -> do
+destWriteNamedDest :: MonadIO m => Dest -> CString -> m ()
+destWriteNamedDest s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (val :: CString)
+
+destClearNamedDest :: MonadIO m => Dest -> m ()
+destClearNamedDest s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (nullPtr :: CString)
+
+data DestNamedDestFieldInfo
+instance AttrInfo DestNamedDestFieldInfo where
+    type AttrAllowedOps DestNamedDestFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint DestNamedDestFieldInfo = (~) CString
+    type AttrBaseTypeConstraint DestNamedDestFieldInfo = (~) Dest
+    type AttrGetType DestNamedDestFieldInfo = Maybe T.Text
+    type AttrLabel DestNamedDestFieldInfo = "named_dest"
+    attrGet _ = destReadNamedDest
+    attrSet _ = destWriteNamedDest
+    attrConstruct = undefined
+    attrClear _ = destClearNamedDest
+
+destNamedDest :: AttrLabelProxy "namedDest"
+destNamedDest = AttrLabelProxy
+
+
+destReadChangeLeft :: MonadIO m => Dest -> m Word32
+destReadChangeLeft s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 56) :: IO Word32
     return val
 
-destReadChangeTop :: Dest -> IO Word32
-destReadChangeTop s = withManagedPtr s $ \ptr -> do
+destWriteChangeLeft :: MonadIO m => Dest -> Word32 -> m ()
+destWriteChangeLeft s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 56) (val :: Word32)
+
+data DestChangeLeftFieldInfo
+instance AttrInfo DestChangeLeftFieldInfo where
+    type AttrAllowedOps DestChangeLeftFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DestChangeLeftFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint DestChangeLeftFieldInfo = (~) Dest
+    type AttrGetType DestChangeLeftFieldInfo = Word32
+    type AttrLabel DestChangeLeftFieldInfo = "change_left"
+    attrGet _ = destReadChangeLeft
+    attrSet _ = destWriteChangeLeft
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+destChangeLeft :: AttrLabelProxy "changeLeft"
+destChangeLeft = AttrLabelProxy
+
+
+destReadChangeTop :: MonadIO m => Dest -> m Word32
+destReadChangeTop s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 60) :: IO Word32
     return val
 
-destReadChangeZoom :: Dest -> IO Word32
-destReadChangeZoom s = withManagedPtr s $ \ptr -> do
+destWriteChangeTop :: MonadIO m => Dest -> Word32 -> m ()
+destWriteChangeTop s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 60) (val :: Word32)
+
+data DestChangeTopFieldInfo
+instance AttrInfo DestChangeTopFieldInfo where
+    type AttrAllowedOps DestChangeTopFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DestChangeTopFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint DestChangeTopFieldInfo = (~) Dest
+    type AttrGetType DestChangeTopFieldInfo = Word32
+    type AttrLabel DestChangeTopFieldInfo = "change_top"
+    attrGet _ = destReadChangeTop
+    attrSet _ = destWriteChangeTop
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+destChangeTop :: AttrLabelProxy "changeTop"
+destChangeTop = AttrLabelProxy
+
+
+destReadChangeZoom :: MonadIO m => Dest -> m Word32
+destReadChangeZoom s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 64) :: IO Word32
     return val
 
+destWriteChangeZoom :: MonadIO m => Dest -> Word32 -> m ()
+destWriteChangeZoom s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 64) (val :: Word32)
+
+data DestChangeZoomFieldInfo
+instance AttrInfo DestChangeZoomFieldInfo where
+    type AttrAllowedOps DestChangeZoomFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint DestChangeZoomFieldInfo = (~) Word32
+    type AttrBaseTypeConstraint DestChangeZoomFieldInfo = (~) Dest
+    type AttrGetType DestChangeZoomFieldInfo = Word32
+    type AttrLabel DestChangeZoomFieldInfo = "change_zoom"
+    attrGet _ = destReadChangeZoom
+    attrSet _ = destWriteChangeZoom
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+destChangeZoom :: AttrLabelProxy "changeZoom"
+destChangeZoom = AttrLabelProxy
+
+
+
+type instance AttributeList Dest = DestAttributeList
+type DestAttributeList = ('[ '("type", DestTypeFieldInfo), '("pageNum", DestPageNumFieldInfo), '("left", DestLeftFieldInfo), '("bottom", DestBottomFieldInfo), '("right", DestRightFieldInfo), '("top", DestTopFieldInfo), '("zoom", DestZoomFieldInfo), '("namedDest", DestNamedDestFieldInfo), '("changeLeft", DestChangeLeftFieldInfo), '("changeTop", DestChangeTopFieldInfo), '("changeZoom", DestChangeZoomFieldInfo)] :: [(Symbol, *)])
+
 -- method Dest::copy
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Dest", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Dest"
+-- returnType : Just (TInterface "Poppler" "Dest")
 -- throws : False
 -- Skip return : False
 
@@ -198,7 +464,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Dest", direction = 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/Poppler/Structs/Dest.hs-boot b/GI/Poppler/Structs/Dest.hs-boot
--- a/GI/Poppler/Structs/Dest.hs-boot
+++ b/GI/Poppler/Structs/Dest.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.Dest where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/FontsIter.hs b/GI/Poppler/Structs/FontsIter.hs
--- a/GI/Poppler/Structs/FontsIter.hs
+++ b/GI/Poppler/Structs/FontsIter.hs
@@ -74,9 +74,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -94,11 +94,15 @@
 noFontsIter :: Maybe FontsIter
 noFontsIter = Nothing
 
+
+type instance AttributeList FontsIter = FontsIterAttributeList
+type FontsIterAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method FontsIter::copy
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "FontsIter"
+-- returnType : Just (TInterface "Poppler" "FontsIter")
 -- throws : False
 -- Skip return : False
 
@@ -127,7 +131,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -154,7 +158,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", 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
 
@@ -183,7 +187,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", 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
 
@@ -212,7 +216,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "FontType"
+-- returnType : Just (TInterface "Poppler" "FontType")
 -- throws : False
 -- Skip return : False
 
@@ -240,7 +244,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", 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
 
@@ -269,7 +273,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", 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
 
@@ -298,7 +302,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", 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
 
@@ -327,7 +331,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", 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
 
@@ -355,7 +359,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", 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
 
@@ -383,7 +387,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FontsIter", 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/Poppler/Structs/FontsIter.hs-boot b/GI/Poppler/Structs/FontsIter.hs-boot
--- a/GI/Poppler/Structs/FontsIter.hs-boot
+++ b/GI/Poppler/Structs/FontsIter.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.FontsIter where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/FormFieldMapping.hs b/GI/Poppler/Structs/FormFieldMapping.hs
--- a/GI/Poppler/Structs/FormFieldMapping.hs
+++ b/GI/Poppler/Structs/FormFieldMapping.hs
@@ -37,20 +37,26 @@
 
  -- * Properties
 -- ** Area
+    formFieldMappingArea                    ,
+    formFieldMappingClearArea               ,
     formFieldMappingReadArea                ,
+    formFieldMappingWriteArea               ,
 
 
 -- ** Field
+    formFieldMappingClearField              ,
+    formFieldMappingField                   ,
     formFieldMappingReadField               ,
+    formFieldMappingWriteField              ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -69,26 +75,89 @@
 newZeroFormFieldMapping :: MonadIO m => m FormFieldMapping
 newZeroFormFieldMapping = liftIO $ callocBoxedBytes 40 >>= wrapBoxed FormFieldMapping
 
+instance tag ~ 'AttrSet => Constructible FormFieldMapping tag where
+    new _ attrs = do
+        o <- newZeroFormFieldMapping
+        GI.Attributes.set o attrs
+        return o
+
+
 noFormFieldMapping :: Maybe FormFieldMapping
 noFormFieldMapping = Nothing
 
-formFieldMappingReadArea :: FormFieldMapping -> IO Rectangle
-formFieldMappingReadArea s = withManagedPtr s $ \ptr -> do
+formFieldMappingReadArea :: MonadIO m => FormFieldMapping -> m (Maybe Rectangle)
+formFieldMappingReadArea s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr Rectangle)
-    val' <- (newBoxed Rectangle) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Rectangle) val'
+        return val''
+    return result
 
-formFieldMappingReadField :: FormFieldMapping -> IO FormField
-formFieldMappingReadField s = withManagedPtr s $ \ptr -> do
+formFieldMappingWriteArea :: MonadIO m => FormFieldMapping -> Ptr Rectangle -> m ()
+formFieldMappingWriteArea s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr Rectangle)
+
+formFieldMappingClearArea :: MonadIO m => FormFieldMapping -> m ()
+formFieldMappingClearArea s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr Rectangle)
+
+data FormFieldMappingAreaFieldInfo
+instance AttrInfo FormFieldMappingAreaFieldInfo where
+    type AttrAllowedOps FormFieldMappingAreaFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint FormFieldMappingAreaFieldInfo = (~) (Ptr Rectangle)
+    type AttrBaseTypeConstraint FormFieldMappingAreaFieldInfo = (~) FormFieldMapping
+    type AttrGetType FormFieldMappingAreaFieldInfo = Maybe Rectangle
+    type AttrLabel FormFieldMappingAreaFieldInfo = "area"
+    attrGet _ = formFieldMappingReadArea
+    attrSet _ = formFieldMappingWriteArea
+    attrConstruct = undefined
+    attrClear _ = formFieldMappingClearArea
+
+formFieldMappingArea :: AttrLabelProxy "area"
+formFieldMappingArea = AttrLabelProxy
+
+
+formFieldMappingReadField :: MonadIO m => FormFieldMapping -> m (Maybe FormField)
+formFieldMappingReadField s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO (Ptr FormField)
-    val' <- (newObject FormField) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newObject FormField) val'
+        return val''
+    return result
 
+formFieldMappingWriteField :: MonadIO m => FormFieldMapping -> Ptr FormField -> m ()
+formFieldMappingWriteField s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Ptr FormField)
+
+formFieldMappingClearField :: MonadIO m => FormFieldMapping -> m ()
+formFieldMappingClearField s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (nullPtr :: Ptr FormField)
+
+data FormFieldMappingFieldFieldInfo
+instance AttrInfo FormFieldMappingFieldFieldInfo where
+    type AttrAllowedOps FormFieldMappingFieldFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint FormFieldMappingFieldFieldInfo = (~) (Ptr FormField)
+    type AttrBaseTypeConstraint FormFieldMappingFieldFieldInfo = (~) FormFieldMapping
+    type AttrGetType FormFieldMappingFieldFieldInfo = Maybe FormField
+    type AttrLabel FormFieldMappingFieldFieldInfo = "field"
+    attrGet _ = formFieldMappingReadField
+    attrSet _ = formFieldMappingWriteField
+    attrConstruct = undefined
+    attrClear _ = formFieldMappingClearField
+
+formFieldMappingField :: AttrLabelProxy "field"
+formFieldMappingField = AttrLabelProxy
+
+
+
+type instance AttributeList FormFieldMapping = FormFieldMappingAttributeList
+type FormFieldMappingAttributeList = ('[ '("area", FormFieldMappingAreaFieldInfo), '("field", FormFieldMappingFieldFieldInfo)] :: [(Symbol, *)])
+
 -- method FormFieldMapping::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "FormFieldMapping"
+-- returnType : Just (TInterface "Poppler" "FormFieldMapping")
 -- throws : False
 -- Skip return : False
 
@@ -109,7 +178,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormFieldMapping", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "FormFieldMapping"
+-- returnType : Just (TInterface "Poppler" "FormFieldMapping")
 -- throws : False
 -- Skip return : False
 
@@ -138,7 +207,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "FormFieldMapping", direction = 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/Poppler/Structs/FormFieldMapping.hs-boot b/GI/Poppler/Structs/FormFieldMapping.hs-boot
--- a/GI/Poppler/Structs/FormFieldMapping.hs-boot
+++ b/GI/Poppler/Structs/FormFieldMapping.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.FormFieldMapping where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/ImageMapping.hs b/GI/Poppler/Structs/ImageMapping.hs
--- a/GI/Poppler/Structs/ImageMapping.hs
+++ b/GI/Poppler/Structs/ImageMapping.hs
@@ -37,20 +37,25 @@
 
  -- * Properties
 -- ** Area
+    imageMappingArea                        ,
+    imageMappingClearArea                   ,
     imageMappingReadArea                    ,
+    imageMappingWriteArea                   ,
 
 
 -- ** ImageId
+    imageMappingImageId                     ,
     imageMappingReadImageId                 ,
+    imageMappingWriteImageId                ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -69,25 +74,82 @@
 newZeroImageMapping :: MonadIO m => m ImageMapping
 newZeroImageMapping = liftIO $ callocBoxedBytes 40 >>= wrapBoxed ImageMapping
 
+instance tag ~ 'AttrSet => Constructible ImageMapping tag where
+    new _ attrs = do
+        o <- newZeroImageMapping
+        GI.Attributes.set o attrs
+        return o
+
+
 noImageMapping :: Maybe ImageMapping
 noImageMapping = Nothing
 
-imageMappingReadArea :: ImageMapping -> IO Rectangle
-imageMappingReadArea s = withManagedPtr s $ \ptr -> do
+imageMappingReadArea :: MonadIO m => ImageMapping -> m (Maybe Rectangle)
+imageMappingReadArea s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr Rectangle)
-    val' <- (newBoxed Rectangle) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Rectangle) val'
+        return val''
+    return result
 
-imageMappingReadImageId :: ImageMapping -> IO Int32
-imageMappingReadImageId s = withManagedPtr s $ \ptr -> do
+imageMappingWriteArea :: MonadIO m => ImageMapping -> Ptr Rectangle -> m ()
+imageMappingWriteArea s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr Rectangle)
+
+imageMappingClearArea :: MonadIO m => ImageMapping -> m ()
+imageMappingClearArea s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr Rectangle)
+
+data ImageMappingAreaFieldInfo
+instance AttrInfo ImageMappingAreaFieldInfo where
+    type AttrAllowedOps ImageMappingAreaFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ImageMappingAreaFieldInfo = (~) (Ptr Rectangle)
+    type AttrBaseTypeConstraint ImageMappingAreaFieldInfo = (~) ImageMapping
+    type AttrGetType ImageMappingAreaFieldInfo = Maybe Rectangle
+    type AttrLabel ImageMappingAreaFieldInfo = "area"
+    attrGet _ = imageMappingReadArea
+    attrSet _ = imageMappingWriteArea
+    attrConstruct = undefined
+    attrClear _ = imageMappingClearArea
+
+imageMappingArea :: AttrLabelProxy "area"
+imageMappingArea = AttrLabelProxy
+
+
+imageMappingReadImageId :: MonadIO m => ImageMapping -> m Int32
+imageMappingReadImageId s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO Int32
     return val
 
+imageMappingWriteImageId :: MonadIO m => ImageMapping -> Int32 -> m ()
+imageMappingWriteImageId s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Int32)
+
+data ImageMappingImageIdFieldInfo
+instance AttrInfo ImageMappingImageIdFieldInfo where
+    type AttrAllowedOps ImageMappingImageIdFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ImageMappingImageIdFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint ImageMappingImageIdFieldInfo = (~) ImageMapping
+    type AttrGetType ImageMappingImageIdFieldInfo = Int32
+    type AttrLabel ImageMappingImageIdFieldInfo = "image_id"
+    attrGet _ = imageMappingReadImageId
+    attrSet _ = imageMappingWriteImageId
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+imageMappingImageId :: AttrLabelProxy "imageId"
+imageMappingImageId = AttrLabelProxy
+
+
+
+type instance AttributeList ImageMapping = ImageMappingAttributeList
+type ImageMappingAttributeList = ('[ '("area", ImageMappingAreaFieldInfo), '("imageId", ImageMappingImageIdFieldInfo)] :: [(Symbol, *)])
+
 -- method ImageMapping::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "ImageMapping"
+-- returnType : Just (TInterface "Poppler" "ImageMapping")
 -- throws : False
 -- Skip return : False
 
@@ -108,7 +170,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "ImageMapping", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "ImageMapping"
+-- returnType : Just (TInterface "Poppler" "ImageMapping")
 -- throws : False
 -- Skip return : False
 
@@ -137,7 +199,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "ImageMapping", direction = 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/Poppler/Structs/ImageMapping.hs-boot b/GI/Poppler/Structs/ImageMapping.hs-boot
--- a/GI/Poppler/Structs/ImageMapping.hs-boot
+++ b/GI/Poppler/Structs/ImageMapping.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.ImageMapping where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/IndexIter.hs b/GI/Poppler/Structs/IndexIter.hs
--- a/GI/Poppler/Structs/IndexIter.hs
+++ b/GI/Poppler/Structs/IndexIter.hs
@@ -53,9 +53,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,11 +73,15 @@
 noIndexIter :: Maybe IndexIter
 noIndexIter = Nothing
 
+
+type instance AttributeList IndexIter = IndexIterAttributeList
+type IndexIterAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method IndexIter::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "document", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "IndexIter"
+-- returnType : Just (TInterface "Poppler" "IndexIter")
 -- throws : False
 -- Skip return : False
 
@@ -102,7 +106,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "IndexIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "IndexIter"
+-- returnType : Just (TInterface "Poppler" "IndexIter")
 -- throws : False
 -- Skip return : False
 
@@ -131,7 +135,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "IndexIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -158,7 +162,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "IndexIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Action"
+-- returnType : Just (TInterface "Poppler" "Action")
 -- throws : False
 -- Skip return : False
 
@@ -187,7 +191,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "IndexIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "IndexIter"
+-- returnType : Just (TInterface "Poppler" "IndexIter")
 -- throws : False
 -- Skip return : False
 
@@ -216,7 +220,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "IndexIter", 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
 
@@ -244,7 +248,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "IndexIter", 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/Poppler/Structs/IndexIter.hs-boot b/GI/Poppler/Structs/IndexIter.hs-boot
--- a/GI/Poppler/Structs/IndexIter.hs-boot
+++ b/GI/Poppler/Structs/IndexIter.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.IndexIter where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/LayersIter.hs b/GI/Poppler/Structs/LayersIter.hs
--- a/GI/Poppler/Structs/LayersIter.hs
+++ b/GI/Poppler/Structs/LayersIter.hs
@@ -53,9 +53,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,11 +73,15 @@
 noLayersIter :: Maybe LayersIter
 noLayersIter = Nothing
 
+
+type instance AttributeList LayersIter = LayersIterAttributeList
+type LayersIterAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method LayersIter::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "document", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "LayersIter"
+-- returnType : Just (TInterface "Poppler" "LayersIter")
 -- throws : False
 -- Skip return : False
 
@@ -102,7 +106,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "LayersIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "LayersIter"
+-- returnType : Just (TInterface "Poppler" "LayersIter")
 -- throws : False
 -- Skip return : False
 
@@ -131,7 +135,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "LayersIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -158,7 +162,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "LayersIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "LayersIter"
+-- returnType : Just (TInterface "Poppler" "LayersIter")
 -- throws : False
 -- Skip return : False
 
@@ -187,7 +191,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "LayersIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Layer"
+-- returnType : Just (TInterface "Poppler" "Layer")
 -- throws : False
 -- Skip return : False
 
@@ -216,7 +220,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "LayersIter", 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
 
@@ -246,7 +250,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "LayersIter", 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/Poppler/Structs/LayersIter.hs-boot b/GI/Poppler/Structs/LayersIter.hs-boot
--- a/GI/Poppler/Structs/LayersIter.hs-boot
+++ b/GI/Poppler/Structs/LayersIter.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.LayersIter where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/LinkMapping.hs b/GI/Poppler/Structs/LinkMapping.hs
--- a/GI/Poppler/Structs/LinkMapping.hs
+++ b/GI/Poppler/Structs/LinkMapping.hs
@@ -37,20 +37,26 @@
 
  -- * Properties
 -- ** Action
+    linkMappingAction                       ,
+    linkMappingClearAction                  ,
     linkMappingReadAction                   ,
+    linkMappingWriteAction                  ,
 
 
 -- ** Area
+    linkMappingArea                         ,
+    linkMappingClearArea                    ,
     linkMappingReadArea                     ,
+    linkMappingWriteArea                    ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -69,26 +75,89 @@
 newZeroLinkMapping :: MonadIO m => m LinkMapping
 newZeroLinkMapping = liftIO $ callocBoxedBytes 40 >>= wrapBoxed LinkMapping
 
+instance tag ~ 'AttrSet => Constructible LinkMapping tag where
+    new _ attrs = do
+        o <- newZeroLinkMapping
+        GI.Attributes.set o attrs
+        return o
+
+
 noLinkMapping :: Maybe LinkMapping
 noLinkMapping = Nothing
 
-linkMappingReadArea :: LinkMapping -> IO Rectangle
-linkMappingReadArea s = withManagedPtr s $ \ptr -> do
+linkMappingReadArea :: MonadIO m => LinkMapping -> m (Maybe Rectangle)
+linkMappingReadArea s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr Rectangle)
-    val' <- (newBoxed Rectangle) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Rectangle) val'
+        return val''
+    return result
 
-linkMappingReadAction :: LinkMapping -> IO Action
-linkMappingReadAction s = withManagedPtr s $ \ptr -> do
+linkMappingWriteArea :: MonadIO m => LinkMapping -> Ptr Rectangle -> m ()
+linkMappingWriteArea s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr Rectangle)
+
+linkMappingClearArea :: MonadIO m => LinkMapping -> m ()
+linkMappingClearArea s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr Rectangle)
+
+data LinkMappingAreaFieldInfo
+instance AttrInfo LinkMappingAreaFieldInfo where
+    type AttrAllowedOps LinkMappingAreaFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint LinkMappingAreaFieldInfo = (~) (Ptr Rectangle)
+    type AttrBaseTypeConstraint LinkMappingAreaFieldInfo = (~) LinkMapping
+    type AttrGetType LinkMappingAreaFieldInfo = Maybe Rectangle
+    type AttrLabel LinkMappingAreaFieldInfo = "area"
+    attrGet _ = linkMappingReadArea
+    attrSet _ = linkMappingWriteArea
+    attrConstruct = undefined
+    attrClear _ = linkMappingClearArea
+
+linkMappingArea :: AttrLabelProxy "area"
+linkMappingArea = AttrLabelProxy
+
+
+linkMappingReadAction :: MonadIO m => LinkMapping -> m (Maybe Action)
+linkMappingReadAction s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO (Ptr Action)
-    val' <- (newBoxed Action) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Action) val'
+        return val''
+    return result
 
+linkMappingWriteAction :: MonadIO m => LinkMapping -> Ptr Action -> m ()
+linkMappingWriteAction s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Ptr Action)
+
+linkMappingClearAction :: MonadIO m => LinkMapping -> m ()
+linkMappingClearAction s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (nullPtr :: Ptr Action)
+
+data LinkMappingActionFieldInfo
+instance AttrInfo LinkMappingActionFieldInfo where
+    type AttrAllowedOps LinkMappingActionFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint LinkMappingActionFieldInfo = (~) (Ptr Action)
+    type AttrBaseTypeConstraint LinkMappingActionFieldInfo = (~) LinkMapping
+    type AttrGetType LinkMappingActionFieldInfo = Maybe Action
+    type AttrLabel LinkMappingActionFieldInfo = "action"
+    attrGet _ = linkMappingReadAction
+    attrSet _ = linkMappingWriteAction
+    attrConstruct = undefined
+    attrClear _ = linkMappingClearAction
+
+linkMappingAction :: AttrLabelProxy "action"
+linkMappingAction = AttrLabelProxy
+
+
+
+type instance AttributeList LinkMapping = LinkMappingAttributeList
+type LinkMappingAttributeList = ('[ '("area", LinkMappingAreaFieldInfo), '("action", LinkMappingActionFieldInfo)] :: [(Symbol, *)])
+
 -- method LinkMapping::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "LinkMapping"
+-- returnType : Just (TInterface "Poppler" "LinkMapping")
 -- throws : False
 -- Skip return : False
 
@@ -109,7 +178,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "LinkMapping", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "LinkMapping"
+-- returnType : Just (TInterface "Poppler" "LinkMapping")
 -- throws : False
 -- Skip return : False
 
@@ -138,7 +207,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "LinkMapping", direction = 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/Poppler/Structs/LinkMapping.hs-boot b/GI/Poppler/Structs/LinkMapping.hs-boot
--- a/GI/Poppler/Structs/LinkMapping.hs-boot
+++ b/GI/Poppler/Structs/LinkMapping.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.LinkMapping where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/PageTransition.hs b/GI/Poppler/Structs/PageTransition.hs
--- a/GI/Poppler/Structs/PageTransition.hs
+++ b/GI/Poppler/Structs/PageTransition.hs
@@ -37,40 +37,54 @@
 
  -- * Properties
 -- ** Alignment
+    pageTransitionAlignment                 ,
     pageTransitionReadAlignment             ,
+    pageTransitionWriteAlignment            ,
 
 
 -- ** Angle
+    pageTransitionAngle                     ,
     pageTransitionReadAngle                 ,
+    pageTransitionWriteAngle                ,
 
 
 -- ** Direction
+    pageTransitionDirection                 ,
     pageTransitionReadDirection             ,
+    pageTransitionWriteDirection            ,
 
 
 -- ** Duration
+    pageTransitionDuration                  ,
     pageTransitionReadDuration              ,
+    pageTransitionWriteDuration             ,
 
 
 -- ** Rectangular
     pageTransitionReadRectangular           ,
+    pageTransitionRectangular               ,
+    pageTransitionWriteRectangular          ,
 
 
 -- ** Scale
     pageTransitionReadScale                 ,
+    pageTransitionScale                     ,
+    pageTransitionWriteScale                ,
 
 
 -- ** Type
     pageTransitionReadType                  ,
+    pageTransitionType                      ,
+    pageTransitionWriteType                 ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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,54 +103,210 @@
 newZeroPageTransition :: MonadIO m => m PageTransition
 newZeroPageTransition = liftIO $ callocBoxedBytes 40 >>= wrapBoxed PageTransition
 
+instance tag ~ 'AttrSet => Constructible PageTransition tag where
+    new _ attrs = do
+        o <- newZeroPageTransition
+        GI.Attributes.set o attrs
+        return o
+
+
 noPageTransition :: Maybe PageTransition
 noPageTransition = Nothing
 
-pageTransitionReadType :: PageTransition -> IO PageTransitionType
-pageTransitionReadType s = withManagedPtr s $ \ptr -> do
+pageTransitionReadType :: MonadIO m => PageTransition -> m PageTransitionType
+pageTransitionReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-pageTransitionReadAlignment :: PageTransition -> IO PageTransitionAlignment
-pageTransitionReadAlignment s = withManagedPtr s $ \ptr -> do
+pageTransitionWriteType :: MonadIO m => PageTransition -> PageTransitionType -> m ()
+pageTransitionWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data PageTransitionTypeFieldInfo
+instance AttrInfo PageTransitionTypeFieldInfo where
+    type AttrAllowedOps PageTransitionTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PageTransitionTypeFieldInfo = (~) PageTransitionType
+    type AttrBaseTypeConstraint PageTransitionTypeFieldInfo = (~) PageTransition
+    type AttrGetType PageTransitionTypeFieldInfo = PageTransitionType
+    type AttrLabel PageTransitionTypeFieldInfo = "type"
+    attrGet _ = pageTransitionReadType
+    attrSet _ = pageTransitionWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pageTransitionType :: AttrLabelProxy "type"
+pageTransitionType = AttrLabelProxy
+
+
+pageTransitionReadAlignment :: MonadIO m => PageTransition -> m PageTransitionAlignment
+pageTransitionReadAlignment s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-pageTransitionReadDirection :: PageTransition -> IO PageTransitionDirection
-pageTransitionReadDirection s = withManagedPtr s $ \ptr -> do
+pageTransitionWriteAlignment :: MonadIO m => PageTransition -> PageTransitionAlignment -> m ()
+pageTransitionWriteAlignment s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 4) (val' :: CUInt)
+
+data PageTransitionAlignmentFieldInfo
+instance AttrInfo PageTransitionAlignmentFieldInfo where
+    type AttrAllowedOps PageTransitionAlignmentFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PageTransitionAlignmentFieldInfo = (~) PageTransitionAlignment
+    type AttrBaseTypeConstraint PageTransitionAlignmentFieldInfo = (~) PageTransition
+    type AttrGetType PageTransitionAlignmentFieldInfo = PageTransitionAlignment
+    type AttrLabel PageTransitionAlignmentFieldInfo = "alignment"
+    attrGet _ = pageTransitionReadAlignment
+    attrSet _ = pageTransitionWriteAlignment
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pageTransitionAlignment :: AttrLabelProxy "alignment"
+pageTransitionAlignment = AttrLabelProxy
+
+
+pageTransitionReadDirection :: MonadIO m => PageTransition -> m PageTransitionDirection
+pageTransitionReadDirection s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-pageTransitionReadDuration :: PageTransition -> IO Int32
-pageTransitionReadDuration s = withManagedPtr s $ \ptr -> do
+pageTransitionWriteDirection :: MonadIO m => PageTransition -> PageTransitionDirection -> m ()
+pageTransitionWriteDirection s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 8) (val' :: CUInt)
+
+data PageTransitionDirectionFieldInfo
+instance AttrInfo PageTransitionDirectionFieldInfo where
+    type AttrAllowedOps PageTransitionDirectionFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PageTransitionDirectionFieldInfo = (~) PageTransitionDirection
+    type AttrBaseTypeConstraint PageTransitionDirectionFieldInfo = (~) PageTransition
+    type AttrGetType PageTransitionDirectionFieldInfo = PageTransitionDirection
+    type AttrLabel PageTransitionDirectionFieldInfo = "direction"
+    attrGet _ = pageTransitionReadDirection
+    attrSet _ = pageTransitionWriteDirection
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pageTransitionDirection :: AttrLabelProxy "direction"
+pageTransitionDirection = AttrLabelProxy
+
+
+pageTransitionReadDuration :: MonadIO m => PageTransition -> m Int32
+pageTransitionReadDuration s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 12) :: IO Int32
     return val
 
-pageTransitionReadAngle :: PageTransition -> IO Int32
-pageTransitionReadAngle s = withManagedPtr s $ \ptr -> do
+pageTransitionWriteDuration :: MonadIO m => PageTransition -> Int32 -> m ()
+pageTransitionWriteDuration s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 12) (val :: Int32)
+
+data PageTransitionDurationFieldInfo
+instance AttrInfo PageTransitionDurationFieldInfo where
+    type AttrAllowedOps PageTransitionDurationFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PageTransitionDurationFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint PageTransitionDurationFieldInfo = (~) PageTransition
+    type AttrGetType PageTransitionDurationFieldInfo = Int32
+    type AttrLabel PageTransitionDurationFieldInfo = "duration"
+    attrGet _ = pageTransitionReadDuration
+    attrSet _ = pageTransitionWriteDuration
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pageTransitionDuration :: AttrLabelProxy "duration"
+pageTransitionDuration = AttrLabelProxy
+
+
+pageTransitionReadAngle :: MonadIO m => PageTransition -> m Int32
+pageTransitionReadAngle s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO Int32
     return val
 
-pageTransitionReadScale :: PageTransition -> IO Double
-pageTransitionReadScale s = withManagedPtr s $ \ptr -> do
+pageTransitionWriteAngle :: MonadIO m => PageTransition -> Int32 -> m ()
+pageTransitionWriteAngle s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Int32)
+
+data PageTransitionAngleFieldInfo
+instance AttrInfo PageTransitionAngleFieldInfo where
+    type AttrAllowedOps PageTransitionAngleFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PageTransitionAngleFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint PageTransitionAngleFieldInfo = (~) PageTransition
+    type AttrGetType PageTransitionAngleFieldInfo = Int32
+    type AttrLabel PageTransitionAngleFieldInfo = "angle"
+    attrGet _ = pageTransitionReadAngle
+    attrSet _ = pageTransitionWriteAngle
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pageTransitionAngle :: AttrLabelProxy "angle"
+pageTransitionAngle = AttrLabelProxy
+
+
+pageTransitionReadScale :: MonadIO m => PageTransition -> m Double
+pageTransitionReadScale s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-pageTransitionReadRectangular :: PageTransition -> IO Bool
-pageTransitionReadRectangular s = withManagedPtr s $ \ptr -> do
+pageTransitionWriteScale :: MonadIO m => PageTransition -> Double -> m ()
+pageTransitionWriteScale s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 24) (val' :: CDouble)
+
+data PageTransitionScaleFieldInfo
+instance AttrInfo PageTransitionScaleFieldInfo where
+    type AttrAllowedOps PageTransitionScaleFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PageTransitionScaleFieldInfo = (~) Double
+    type AttrBaseTypeConstraint PageTransitionScaleFieldInfo = (~) PageTransition
+    type AttrGetType PageTransitionScaleFieldInfo = Double
+    type AttrLabel PageTransitionScaleFieldInfo = "scale"
+    attrGet _ = pageTransitionReadScale
+    attrSet _ = pageTransitionWriteScale
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pageTransitionScale :: AttrLabelProxy "scale"
+pageTransitionScale = AttrLabelProxy
+
+
+pageTransitionReadRectangular :: MonadIO m => PageTransition -> m Bool
+pageTransitionReadRectangular s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO CInt
     let val' = (/= 0) val
     return val'
 
+pageTransitionWriteRectangular :: MonadIO m => PageTransition -> Bool -> m ()
+pageTransitionWriteRectangular s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 32) (val' :: CInt)
+
+data PageTransitionRectangularFieldInfo
+instance AttrInfo PageTransitionRectangularFieldInfo where
+    type AttrAllowedOps PageTransitionRectangularFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PageTransitionRectangularFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint PageTransitionRectangularFieldInfo = (~) PageTransition
+    type AttrGetType PageTransitionRectangularFieldInfo = Bool
+    type AttrLabel PageTransitionRectangularFieldInfo = "rectangular"
+    attrGet _ = pageTransitionReadRectangular
+    attrSet _ = pageTransitionWriteRectangular
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pageTransitionRectangular :: AttrLabelProxy "rectangular"
+pageTransitionRectangular = AttrLabelProxy
+
+
+
+type instance AttributeList PageTransition = PageTransitionAttributeList
+type PageTransitionAttributeList = ('[ '("type", PageTransitionTypeFieldInfo), '("alignment", PageTransitionAlignmentFieldInfo), '("direction", PageTransitionDirectionFieldInfo), '("duration", PageTransitionDurationFieldInfo), '("angle", PageTransitionAngleFieldInfo), '("scale", PageTransitionScaleFieldInfo), '("rectangular", PageTransitionRectangularFieldInfo)] :: [(Symbol, *)])
+
 -- method PageTransition::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "PageTransition"
+-- returnType : Just (TInterface "Poppler" "PageTransition")
 -- throws : False
 -- Skip return : False
 
@@ -157,7 +327,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "PageTransition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "PageTransition"
+-- returnType : Just (TInterface "Poppler" "PageTransition")
 -- throws : False
 -- Skip return : False
 
@@ -186,7 +356,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "PageTransition", direction = 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/Poppler/Structs/PageTransition.hs-boot b/GI/Poppler/Structs/PageTransition.hs-boot
--- a/GI/Poppler/Structs/PageTransition.hs-boot
+++ b/GI/Poppler/Structs/PageTransition.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.PageTransition where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/Point.hs b/GI/Poppler/Structs/Point.hs
--- a/GI/Poppler/Structs/Point.hs
+++ b/GI/Poppler/Structs/Point.hs
@@ -37,19 +37,23 @@
  -- * Properties
 -- ** X
     pointReadX                              ,
+    pointWriteX                             ,
+    pointX                                  ,
 
 
 -- ** Y
     pointReadY                              ,
+    pointWriteY                             ,
+    pointY                                  ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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,26 +72,79 @@
 newZeroPoint :: MonadIO m => m Point
 newZeroPoint = liftIO $ callocBoxedBytes 16 >>= wrapBoxed Point
 
+instance tag ~ 'AttrSet => Constructible Point tag where
+    new _ attrs = do
+        o <- newZeroPoint
+        GI.Attributes.set o attrs
+        return o
+
+
 noPoint :: Maybe Point
 noPoint = Nothing
 
-pointReadX :: Point -> IO Double
-pointReadX s = withManagedPtr s $ \ptr -> do
+pointReadX :: MonadIO m => Point -> m Double
+pointReadX s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-pointReadY :: Point -> IO Double
-pointReadY s = withManagedPtr s $ \ptr -> do
+pointWriteX :: MonadIO m => Point -> Double -> m ()
+pointWriteX s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 0) (val' :: CDouble)
+
+data PointXFieldInfo
+instance AttrInfo PointXFieldInfo where
+    type AttrAllowedOps PointXFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PointXFieldInfo = (~) Double
+    type AttrBaseTypeConstraint PointXFieldInfo = (~) Point
+    type AttrGetType PointXFieldInfo = Double
+    type AttrLabel PointXFieldInfo = "x"
+    attrGet _ = pointReadX
+    attrSet _ = pointWriteX
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pointX :: AttrLabelProxy "x"
+pointX = AttrLabelProxy
+
+
+pointReadY :: MonadIO m => Point -> m Double
+pointReadY s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO CDouble
     let val' = realToFrac val
     return val'
 
+pointWriteY :: MonadIO m => Point -> Double -> m ()
+pointWriteY s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 8) (val' :: CDouble)
+
+data PointYFieldInfo
+instance AttrInfo PointYFieldInfo where
+    type AttrAllowedOps PointYFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint PointYFieldInfo = (~) Double
+    type AttrBaseTypeConstraint PointYFieldInfo = (~) Point
+    type AttrGetType PointYFieldInfo = Double
+    type AttrLabel PointYFieldInfo = "y"
+    attrGet _ = pointReadY
+    attrSet _ = pointWriteY
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+pointY :: AttrLabelProxy "y"
+pointY = AttrLabelProxy
+
+
+
+type instance AttributeList Point = PointAttributeList
+type PointAttributeList = ('[ '("x", PointXFieldInfo), '("y", PointYFieldInfo)] :: [(Symbol, *)])
+
 -- method Point::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "Point"
+-- returnType : Just (TInterface "Poppler" "Point")
 -- throws : False
 -- Skip return : False
 
@@ -108,7 +165,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Point", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Point"
+-- returnType : Just (TInterface "Poppler" "Point")
 -- throws : False
 -- Skip return : False
 
@@ -137,7 +194,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Point", direction = 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/Poppler/Structs/Point.hs-boot b/GI/Poppler/Structs/Point.hs-boot
--- a/GI/Poppler/Structs/Point.hs-boot
+++ b/GI/Poppler/Structs/Point.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.Point where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/Quadrilateral.hs b/GI/Poppler/Structs/Quadrilateral.hs
--- a/GI/Poppler/Structs/Quadrilateral.hs
+++ b/GI/Poppler/Structs/Quadrilateral.hs
@@ -39,28 +39,40 @@
 
  -- * Properties
 -- ** P1
+    quadrilateralClearP1                    ,
+    quadrilateralP1                         ,
     quadrilateralReadP1                     ,
+    quadrilateralWriteP1                    ,
 
 
 -- ** P2
+    quadrilateralClearP2                    ,
+    quadrilateralP2                         ,
     quadrilateralReadP2                     ,
+    quadrilateralWriteP2                    ,
 
 
 -- ** P3
+    quadrilateralClearP3                    ,
+    quadrilateralP3                         ,
     quadrilateralReadP3                     ,
+    quadrilateralWriteP3                    ,
 
 
 -- ** P4
+    quadrilateralClearP4                    ,
+    quadrilateralP4                         ,
     quadrilateralReadP4                     ,
+    quadrilateralWriteP4                    ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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,38 +91,153 @@
 newZeroQuadrilateral :: MonadIO m => m Quadrilateral
 newZeroQuadrilateral = liftIO $ callocBoxedBytes 64 >>= wrapBoxed Quadrilateral
 
+instance tag ~ 'AttrSet => Constructible Quadrilateral tag where
+    new _ attrs = do
+        o <- newZeroQuadrilateral
+        GI.Attributes.set o attrs
+        return o
+
+
 noQuadrilateral :: Maybe Quadrilateral
 noQuadrilateral = Nothing
 
-quadrilateralReadP1 :: Quadrilateral -> IO Point
-quadrilateralReadP1 s = withManagedPtr s $ \ptr -> do
+quadrilateralReadP1 :: MonadIO m => Quadrilateral -> m (Maybe Point)
+quadrilateralReadP1 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr Point)
-    val' <- (newBoxed Point) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Point) val'
+        return val''
+    return result
 
-quadrilateralReadP2 :: Quadrilateral -> IO Point
-quadrilateralReadP2 s = withManagedPtr s $ \ptr -> do
+quadrilateralWriteP1 :: MonadIO m => Quadrilateral -> Ptr Point -> m ()
+quadrilateralWriteP1 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr Point)
+
+quadrilateralClearP1 :: MonadIO m => Quadrilateral -> m ()
+quadrilateralClearP1 s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr Point)
+
+data QuadrilateralP1FieldInfo
+instance AttrInfo QuadrilateralP1FieldInfo where
+    type AttrAllowedOps QuadrilateralP1FieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint QuadrilateralP1FieldInfo = (~) (Ptr Point)
+    type AttrBaseTypeConstraint QuadrilateralP1FieldInfo = (~) Quadrilateral
+    type AttrGetType QuadrilateralP1FieldInfo = Maybe Point
+    type AttrLabel QuadrilateralP1FieldInfo = "p1"
+    attrGet _ = quadrilateralReadP1
+    attrSet _ = quadrilateralWriteP1
+    attrConstruct = undefined
+    attrClear _ = quadrilateralClearP1
+
+quadrilateralP1 :: AttrLabelProxy "p1"
+quadrilateralP1 = AttrLabelProxy
+
+
+quadrilateralReadP2 :: MonadIO m => Quadrilateral -> m (Maybe Point)
+quadrilateralReadP2 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO (Ptr Point)
-    val' <- (newBoxed Point) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Point) val'
+        return val''
+    return result
 
-quadrilateralReadP3 :: Quadrilateral -> IO Point
-quadrilateralReadP3 s = withManagedPtr s $ \ptr -> do
+quadrilateralWriteP2 :: MonadIO m => Quadrilateral -> Ptr Point -> m ()
+quadrilateralWriteP2 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (val :: Ptr Point)
+
+quadrilateralClearP2 :: MonadIO m => Quadrilateral -> m ()
+quadrilateralClearP2 s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 16) (nullPtr :: Ptr Point)
+
+data QuadrilateralP2FieldInfo
+instance AttrInfo QuadrilateralP2FieldInfo where
+    type AttrAllowedOps QuadrilateralP2FieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint QuadrilateralP2FieldInfo = (~) (Ptr Point)
+    type AttrBaseTypeConstraint QuadrilateralP2FieldInfo = (~) Quadrilateral
+    type AttrGetType QuadrilateralP2FieldInfo = Maybe Point
+    type AttrLabel QuadrilateralP2FieldInfo = "p2"
+    attrGet _ = quadrilateralReadP2
+    attrSet _ = quadrilateralWriteP2
+    attrConstruct = undefined
+    attrClear _ = quadrilateralClearP2
+
+quadrilateralP2 :: AttrLabelProxy "p2"
+quadrilateralP2 = AttrLabelProxy
+
+
+quadrilateralReadP3 :: MonadIO m => Quadrilateral -> m (Maybe Point)
+quadrilateralReadP3 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO (Ptr Point)
-    val' <- (newBoxed Point) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Point) val'
+        return val''
+    return result
 
-quadrilateralReadP4 :: Quadrilateral -> IO Point
-quadrilateralReadP4 s = withManagedPtr s $ \ptr -> do
+quadrilateralWriteP3 :: MonadIO m => Quadrilateral -> Ptr Point -> m ()
+quadrilateralWriteP3 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Ptr Point)
+
+quadrilateralClearP3 :: MonadIO m => Quadrilateral -> m ()
+quadrilateralClearP3 s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (nullPtr :: Ptr Point)
+
+data QuadrilateralP3FieldInfo
+instance AttrInfo QuadrilateralP3FieldInfo where
+    type AttrAllowedOps QuadrilateralP3FieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint QuadrilateralP3FieldInfo = (~) (Ptr Point)
+    type AttrBaseTypeConstraint QuadrilateralP3FieldInfo = (~) Quadrilateral
+    type AttrGetType QuadrilateralP3FieldInfo = Maybe Point
+    type AttrLabel QuadrilateralP3FieldInfo = "p3"
+    attrGet _ = quadrilateralReadP3
+    attrSet _ = quadrilateralWriteP3
+    attrConstruct = undefined
+    attrClear _ = quadrilateralClearP3
+
+quadrilateralP3 :: AttrLabelProxy "p3"
+quadrilateralP3 = AttrLabelProxy
+
+
+quadrilateralReadP4 :: MonadIO m => Quadrilateral -> m (Maybe Point)
+quadrilateralReadP4 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 48) :: IO (Ptr Point)
-    val' <- (newBoxed Point) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Point) val'
+        return val''
+    return result
 
+quadrilateralWriteP4 :: MonadIO m => Quadrilateral -> Ptr Point -> m ()
+quadrilateralWriteP4 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (val :: Ptr Point)
+
+quadrilateralClearP4 :: MonadIO m => Quadrilateral -> m ()
+quadrilateralClearP4 s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 48) (nullPtr :: Ptr Point)
+
+data QuadrilateralP4FieldInfo
+instance AttrInfo QuadrilateralP4FieldInfo where
+    type AttrAllowedOps QuadrilateralP4FieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint QuadrilateralP4FieldInfo = (~) (Ptr Point)
+    type AttrBaseTypeConstraint QuadrilateralP4FieldInfo = (~) Quadrilateral
+    type AttrGetType QuadrilateralP4FieldInfo = Maybe Point
+    type AttrLabel QuadrilateralP4FieldInfo = "p4"
+    attrGet _ = quadrilateralReadP4
+    attrSet _ = quadrilateralWriteP4
+    attrConstruct = undefined
+    attrClear _ = quadrilateralClearP4
+
+quadrilateralP4 :: AttrLabelProxy "p4"
+quadrilateralP4 = AttrLabelProxy
+
+
+
+type instance AttributeList Quadrilateral = QuadrilateralAttributeList
+type QuadrilateralAttributeList = ('[ '("p1", QuadrilateralP1FieldInfo), '("p2", QuadrilateralP2FieldInfo), '("p3", QuadrilateralP3FieldInfo), '("p4", QuadrilateralP4FieldInfo)] :: [(Symbol, *)])
+
 -- method Quadrilateral::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "Quadrilateral"
+-- returnType : Just (TInterface "Poppler" "Quadrilateral")
 -- throws : False
 -- Skip return : False
 
@@ -131,7 +258,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Quadrilateral", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Quadrilateral"
+-- returnType : Just (TInterface "Poppler" "Quadrilateral")
 -- throws : False
 -- Skip return : False
 
@@ -160,7 +287,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Quadrilateral", direction = 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/Poppler/Structs/Quadrilateral.hs-boot b/GI/Poppler/Structs/Quadrilateral.hs-boot
--- a/GI/Poppler/Structs/Quadrilateral.hs-boot
+++ b/GI/Poppler/Structs/Quadrilateral.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.Quadrilateral where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/Rectangle.hs b/GI/Poppler/Structs/Rectangle.hs
--- a/GI/Poppler/Structs/Rectangle.hs
+++ b/GI/Poppler/Structs/Rectangle.hs
@@ -38,27 +38,35 @@
  -- * Properties
 -- ** X1
     rectangleReadX1                         ,
+    rectangleWriteX1                        ,
+    rectangleX1                             ,
 
 
 -- ** X2
     rectangleReadX2                         ,
+    rectangleWriteX2                        ,
+    rectangleX2                             ,
 
 
 -- ** Y1
     rectangleReadY1                         ,
+    rectangleWriteY1                        ,
+    rectangleY1                             ,
 
 
 -- ** Y2
     rectangleReadY2                         ,
+    rectangleWriteY2                        ,
+    rectangleY2                             ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -77,38 +85,133 @@
 newZeroRectangle :: MonadIO m => m Rectangle
 newZeroRectangle = liftIO $ callocBoxedBytes 32 >>= wrapBoxed Rectangle
 
+instance tag ~ 'AttrSet => Constructible Rectangle tag where
+    new _ attrs = do
+        o <- newZeroRectangle
+        GI.Attributes.set o attrs
+        return o
+
+
 noRectangle :: Maybe Rectangle
 noRectangle = Nothing
 
-rectangleReadX1 :: Rectangle -> IO Double
-rectangleReadX1 s = withManagedPtr s $ \ptr -> do
+rectangleReadX1 :: MonadIO m => Rectangle -> m Double
+rectangleReadX1 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-rectangleReadY1 :: Rectangle -> IO Double
-rectangleReadY1 s = withManagedPtr s $ \ptr -> do
+rectangleWriteX1 :: MonadIO m => Rectangle -> Double -> m ()
+rectangleWriteX1 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 0) (val' :: CDouble)
+
+data RectangleX1FieldInfo
+instance AttrInfo RectangleX1FieldInfo where
+    type AttrAllowedOps RectangleX1FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint RectangleX1FieldInfo = (~) Double
+    type AttrBaseTypeConstraint RectangleX1FieldInfo = (~) Rectangle
+    type AttrGetType RectangleX1FieldInfo = Double
+    type AttrLabel RectangleX1FieldInfo = "x1"
+    attrGet _ = rectangleReadX1
+    attrSet _ = rectangleWriteX1
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+rectangleX1 :: AttrLabelProxy "x1"
+rectangleX1 = AttrLabelProxy
+
+
+rectangleReadY1 :: MonadIO m => Rectangle -> m Double
+rectangleReadY1 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-rectangleReadX2 :: Rectangle -> IO Double
-rectangleReadX2 s = withManagedPtr s $ \ptr -> do
+rectangleWriteY1 :: MonadIO m => Rectangle -> Double -> m ()
+rectangleWriteY1 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 8) (val' :: CDouble)
+
+data RectangleY1FieldInfo
+instance AttrInfo RectangleY1FieldInfo where
+    type AttrAllowedOps RectangleY1FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint RectangleY1FieldInfo = (~) Double
+    type AttrBaseTypeConstraint RectangleY1FieldInfo = (~) Rectangle
+    type AttrGetType RectangleY1FieldInfo = Double
+    type AttrLabel RectangleY1FieldInfo = "y1"
+    attrGet _ = rectangleReadY1
+    attrSet _ = rectangleWriteY1
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+rectangleY1 :: AttrLabelProxy "y1"
+rectangleY1 = AttrLabelProxy
+
+
+rectangleReadX2 :: MonadIO m => Rectangle -> m Double
+rectangleReadX2 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-rectangleReadY2 :: Rectangle -> IO Double
-rectangleReadY2 s = withManagedPtr s $ \ptr -> do
+rectangleWriteX2 :: MonadIO m => Rectangle -> Double -> m ()
+rectangleWriteX2 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 16) (val' :: CDouble)
+
+data RectangleX2FieldInfo
+instance AttrInfo RectangleX2FieldInfo where
+    type AttrAllowedOps RectangleX2FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint RectangleX2FieldInfo = (~) Double
+    type AttrBaseTypeConstraint RectangleX2FieldInfo = (~) Rectangle
+    type AttrGetType RectangleX2FieldInfo = Double
+    type AttrLabel RectangleX2FieldInfo = "x2"
+    attrGet _ = rectangleReadX2
+    attrSet _ = rectangleWriteX2
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+rectangleX2 :: AttrLabelProxy "x2"
+rectangleX2 = AttrLabelProxy
+
+
+rectangleReadY2 :: MonadIO m => Rectangle -> m Double
+rectangleReadY2 s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 24) :: IO CDouble
     let val' = realToFrac val
     return val'
 
+rectangleWriteY2 :: MonadIO m => Rectangle -> Double -> m ()
+rectangleWriteY2 s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 24) (val' :: CDouble)
+
+data RectangleY2FieldInfo
+instance AttrInfo RectangleY2FieldInfo where
+    type AttrAllowedOps RectangleY2FieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint RectangleY2FieldInfo = (~) Double
+    type AttrBaseTypeConstraint RectangleY2FieldInfo = (~) Rectangle
+    type AttrGetType RectangleY2FieldInfo = Double
+    type AttrLabel RectangleY2FieldInfo = "y2"
+    attrGet _ = rectangleReadY2
+    attrSet _ = rectangleWriteY2
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+rectangleY2 :: AttrLabelProxy "y2"
+rectangleY2 = AttrLabelProxy
+
+
+
+type instance AttributeList Rectangle = RectangleAttributeList
+type RectangleAttributeList = ('[ '("x1", RectangleX1FieldInfo), '("y1", RectangleY1FieldInfo), '("x2", RectangleX2FieldInfo), '("y2", RectangleY2FieldInfo)] :: [(Symbol, *)])
+
 -- method Rectangle::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "Rectangle"
+-- returnType : Just (TInterface "Poppler" "Rectangle")
 -- throws : False
 -- Skip return : False
 
@@ -129,7 +232,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Rectangle"
+-- returnType : Just (TInterface "Poppler" "Rectangle")
 -- throws : False
 -- Skip return : False
 
@@ -158,7 +261,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Rectangle", direction = 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/Poppler/Structs/Rectangle.hs-boot b/GI/Poppler/Structs/Rectangle.hs-boot
--- a/GI/Poppler/Structs/Rectangle.hs-boot
+++ b/GI/Poppler/Structs/Rectangle.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.Rectangle where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/GI/Poppler/Structs/StructureElementIter.hs b/GI/Poppler/Structs/StructureElementIter.hs
--- a/GI/Poppler/Structs/StructureElementIter.hs
+++ b/GI/Poppler/Structs/StructureElementIter.hs
@@ -48,9 +48,9 @@
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -68,11 +68,15 @@
 noStructureElementIter :: Maybe StructureElementIter
 noStructureElementIter = Nothing
 
+
+type instance AttributeList StructureElementIter = StructureElementIterAttributeList
+type StructureElementIterAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method StructureElementIter::new
 -- method type : Constructor
 -- Args : [Arg {argCName = "poppler_document", argType = TInterface "Poppler" "Document", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureElementIter"
+-- returnType : Just (TInterface "Poppler" "StructureElementIter")
 -- throws : False
 -- Skip return : False
 
@@ -97,7 +101,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElementIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureElementIter"
+-- returnType : Just (TInterface "Poppler" "StructureElementIter")
 -- throws : False
 -- Skip return : False
 
@@ -126,7 +130,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElementIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -153,7 +157,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElementIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureElementIter"
+-- returnType : Just (TInterface "Poppler" "StructureElementIter")
 -- throws : False
 -- Skip return : False
 
@@ -182,7 +186,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElementIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "StructureElement"
+-- returnType : Just (TInterface "Poppler" "StructureElement")
 -- throws : False
 -- Skip return : False
 
@@ -211,7 +215,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "StructureElementIter", 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/Poppler/Structs/StructureElementIter.hs-boot b/GI/Poppler/Structs/StructureElementIter.hs-boot
--- a/GI/Poppler/Structs/StructureElementIter.hs-boot
+++ b/GI/Poppler/Structs/StructureElementIter.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.StructureElementIter where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/TextAttributes.hs b/GI/Poppler/Structs/TextAttributes.hs
--- a/GI/Poppler/Structs/TextAttributes.hs
+++ b/GI/Poppler/Structs/TextAttributes.hs
@@ -36,36 +36,50 @@
 
  -- * Properties
 -- ** Color
+    textAttributesClearColor                ,
+    textAttributesColor                     ,
     textAttributesReadColor                 ,
+    textAttributesWriteColor                ,
 
 
 -- ** EndIndex
+    textAttributesEndIndex                  ,
     textAttributesReadEndIndex              ,
+    textAttributesWriteEndIndex             ,
 
 
 -- ** FontName
+    textAttributesClearFontName             ,
+    textAttributesFontName                  ,
     textAttributesReadFontName              ,
+    textAttributesWriteFontName             ,
 
 
 -- ** FontSize
+    textAttributesFontSize                  ,
     textAttributesReadFontSize              ,
+    textAttributesWriteFontSize             ,
 
 
 -- ** IsUnderlined
+    textAttributesIsUnderlined              ,
     textAttributesReadIsUnderlined          ,
+    textAttributesWriteIsUnderlined         ,
 
 
 -- ** StartIndex
     textAttributesReadStartIndex            ,
+    textAttributesStartIndex                ,
+    textAttributesWriteStartIndex           ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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,48 +98,193 @@
 newZeroTextAttributes :: MonadIO m => m TextAttributes
 newZeroTextAttributes = liftIO $ callocBoxedBytes 40 >>= wrapBoxed TextAttributes
 
+instance tag ~ 'AttrSet => Constructible TextAttributes tag where
+    new _ attrs = do
+        o <- newZeroTextAttributes
+        GI.Attributes.set o attrs
+        return o
+
+
 noTextAttributes :: Maybe TextAttributes
 noTextAttributes = Nothing
 
-textAttributesReadFontName :: TextAttributes -> IO T.Text
-textAttributesReadFontName s = withManagedPtr s $ \ptr -> do
+textAttributesReadFontName :: MonadIO m => TextAttributes -> m (Maybe T.Text)
+textAttributesReadFontName 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
 
-textAttributesReadFontSize :: TextAttributes -> IO Double
-textAttributesReadFontSize s = withManagedPtr s $ \ptr -> do
+textAttributesWriteFontName :: MonadIO m => TextAttributes -> CString -> m ()
+textAttributesWriteFontName s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: CString)
+
+textAttributesClearFontName :: MonadIO m => TextAttributes -> m ()
+textAttributesClearFontName s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: CString)
+
+data TextAttributesFontNameFieldInfo
+instance AttrInfo TextAttributesFontNameFieldInfo where
+    type AttrAllowedOps TextAttributesFontNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint TextAttributesFontNameFieldInfo = (~) CString
+    type AttrBaseTypeConstraint TextAttributesFontNameFieldInfo = (~) TextAttributes
+    type AttrGetType TextAttributesFontNameFieldInfo = Maybe T.Text
+    type AttrLabel TextAttributesFontNameFieldInfo = "font_name"
+    attrGet _ = textAttributesReadFontName
+    attrSet _ = textAttributesWriteFontName
+    attrConstruct = undefined
+    attrClear _ = textAttributesClearFontName
+
+textAttributesFontName :: AttrLabelProxy "fontName"
+textAttributesFontName = AttrLabelProxy
+
+
+textAttributesReadFontSize :: MonadIO m => TextAttributes -> m Double
+textAttributesReadFontSize s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO CDouble
     let val' = realToFrac val
     return val'
 
-textAttributesReadIsUnderlined :: TextAttributes -> IO Bool
-textAttributesReadIsUnderlined s = withManagedPtr s $ \ptr -> do
+textAttributesWriteFontSize :: MonadIO m => TextAttributes -> Double -> m ()
+textAttributesWriteFontSize s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = realToFrac val
+    poke (ptr `plusPtr` 8) (val' :: CDouble)
+
+data TextAttributesFontSizeFieldInfo
+instance AttrInfo TextAttributesFontSizeFieldInfo where
+    type AttrAllowedOps TextAttributesFontSizeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TextAttributesFontSizeFieldInfo = (~) Double
+    type AttrBaseTypeConstraint TextAttributesFontSizeFieldInfo = (~) TextAttributes
+    type AttrGetType TextAttributesFontSizeFieldInfo = Double
+    type AttrLabel TextAttributesFontSizeFieldInfo = "font_size"
+    attrGet _ = textAttributesReadFontSize
+    attrSet _ = textAttributesWriteFontSize
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+textAttributesFontSize :: AttrLabelProxy "fontSize"
+textAttributesFontSize = AttrLabelProxy
+
+
+textAttributesReadIsUnderlined :: MonadIO m => TextAttributes -> m Bool
+textAttributesReadIsUnderlined s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO CInt
     let val' = (/= 0) val
     return val'
 
-textAttributesReadColor :: TextAttributes -> IO Color
-textAttributesReadColor s = withManagedPtr s $ \ptr -> do
+textAttributesWriteIsUnderlined :: MonadIO m => TextAttributes -> Bool -> m ()
+textAttributesWriteIsUnderlined s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 16) (val' :: CInt)
+
+data TextAttributesIsUnderlinedFieldInfo
+instance AttrInfo TextAttributesIsUnderlinedFieldInfo where
+    type AttrAllowedOps TextAttributesIsUnderlinedFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TextAttributesIsUnderlinedFieldInfo = (~) Bool
+    type AttrBaseTypeConstraint TextAttributesIsUnderlinedFieldInfo = (~) TextAttributes
+    type AttrGetType TextAttributesIsUnderlinedFieldInfo = Bool
+    type AttrLabel TextAttributesIsUnderlinedFieldInfo = "is_underlined"
+    attrGet _ = textAttributesReadIsUnderlined
+    attrSet _ = textAttributesWriteIsUnderlined
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+textAttributesIsUnderlined :: AttrLabelProxy "isUnderlined"
+textAttributesIsUnderlined = AttrLabelProxy
+
+
+textAttributesReadColor :: MonadIO m => TextAttributes -> m (Maybe Color)
+textAttributesReadColor s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 20) :: IO (Ptr Color)
-    val' <- (newBoxed Color) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newBoxed Color) val'
+        return val''
+    return result
 
-textAttributesReadStartIndex :: TextAttributes -> IO Int32
-textAttributesReadStartIndex s = withManagedPtr s $ \ptr -> do
+textAttributesWriteColor :: MonadIO m => TextAttributes -> Ptr Color -> m ()
+textAttributesWriteColor s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 20) (val :: Ptr Color)
+
+textAttributesClearColor :: MonadIO m => TextAttributes -> m ()
+textAttributesClearColor s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 20) (nullPtr :: Ptr Color)
+
+data TextAttributesColorFieldInfo
+instance AttrInfo TextAttributesColorFieldInfo where
+    type AttrAllowedOps TextAttributesColorFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint TextAttributesColorFieldInfo = (~) (Ptr Color)
+    type AttrBaseTypeConstraint TextAttributesColorFieldInfo = (~) TextAttributes
+    type AttrGetType TextAttributesColorFieldInfo = Maybe Color
+    type AttrLabel TextAttributesColorFieldInfo = "color"
+    attrGet _ = textAttributesReadColor
+    attrSet _ = textAttributesWriteColor
+    attrConstruct = undefined
+    attrClear _ = textAttributesClearColor
+
+textAttributesColor :: AttrLabelProxy "color"
+textAttributesColor = AttrLabelProxy
+
+
+textAttributesReadStartIndex :: MonadIO m => TextAttributes -> m Int32
+textAttributesReadStartIndex s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 28) :: IO Int32
     return val
 
-textAttributesReadEndIndex :: TextAttributes -> IO Int32
-textAttributesReadEndIndex s = withManagedPtr s $ \ptr -> do
+textAttributesWriteStartIndex :: MonadIO m => TextAttributes -> Int32 -> m ()
+textAttributesWriteStartIndex s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 28) (val :: Int32)
+
+data TextAttributesStartIndexFieldInfo
+instance AttrInfo TextAttributesStartIndexFieldInfo where
+    type AttrAllowedOps TextAttributesStartIndexFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TextAttributesStartIndexFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint TextAttributesStartIndexFieldInfo = (~) TextAttributes
+    type AttrGetType TextAttributesStartIndexFieldInfo = Int32
+    type AttrLabel TextAttributesStartIndexFieldInfo = "start_index"
+    attrGet _ = textAttributesReadStartIndex
+    attrSet _ = textAttributesWriteStartIndex
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+textAttributesStartIndex :: AttrLabelProxy "startIndex"
+textAttributesStartIndex = AttrLabelProxy
+
+
+textAttributesReadEndIndex :: MonadIO m => TextAttributes -> m Int32
+textAttributesReadEndIndex s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO Int32
     return val
 
+textAttributesWriteEndIndex :: MonadIO m => TextAttributes -> Int32 -> m ()
+textAttributesWriteEndIndex s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 32) (val :: Int32)
+
+data TextAttributesEndIndexFieldInfo
+instance AttrInfo TextAttributesEndIndexFieldInfo where
+    type AttrAllowedOps TextAttributesEndIndexFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint TextAttributesEndIndexFieldInfo = (~) Int32
+    type AttrBaseTypeConstraint TextAttributesEndIndexFieldInfo = (~) TextAttributes
+    type AttrGetType TextAttributesEndIndexFieldInfo = Int32
+    type AttrLabel TextAttributesEndIndexFieldInfo = "end_index"
+    attrGet _ = textAttributesReadEndIndex
+    attrSet _ = textAttributesWriteEndIndex
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+textAttributesEndIndex :: AttrLabelProxy "endIndex"
+textAttributesEndIndex = AttrLabelProxy
+
+
+
+type instance AttributeList TextAttributes = TextAttributesAttributeList
+type TextAttributesAttributeList = ('[ '("fontName", TextAttributesFontNameFieldInfo), '("fontSize", TextAttributesFontSizeFieldInfo), '("isUnderlined", TextAttributesIsUnderlinedFieldInfo), '("color", TextAttributesColorFieldInfo), '("startIndex", TextAttributesStartIndexFieldInfo), '("endIndex", TextAttributesEndIndexFieldInfo)] :: [(Symbol, *)])
+
 -- method TextAttributes::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- returnType : TInterface "Poppler" "TextAttributes"
+-- returnType : Just (TInterface "Poppler" "TextAttributes")
 -- throws : False
 -- Skip return : False
 
@@ -146,7 +305,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "TextAttributes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "TextAttributes"
+-- returnType : Just (TInterface "Poppler" "TextAttributes")
 -- throws : False
 -- Skip return : False
 
@@ -175,7 +334,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "TextAttributes", direction = 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/Poppler/Structs/TextAttributes.hs-boot b/GI/Poppler/Structs/TextAttributes.hs-boot
--- a/GI/Poppler/Structs/TextAttributes.hs-boot
+++ b/GI/Poppler/Structs/TextAttributes.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.TextAttributes where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Structs/TextSpan.hs b/GI/Poppler/Structs/TextSpan.hs
--- a/GI/Poppler/Structs/TextSpan.hs
+++ b/GI/Poppler/Structs/TextSpan.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 @@
 noTextSpan :: Maybe TextSpan
 noTextSpan = Nothing
 
+
+type instance AttributeList TextSpan = TextSpanAttributeList
+type TextSpanAttributeList = ('[ ] :: [(Symbol, *)])
+
 -- method TextSpan::copy
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "TextSpan", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "TextSpan"
+-- returnType : Just (TInterface "Poppler" "TextSpan")
 -- throws : False
 -- Skip return : False
 
@@ -112,7 +116,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "TextSpan", direction = 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 : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "TextSpan", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TInterface "Poppler" "Color", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TBasicType TVoid
+-- returnType : Nothing
 -- throws : False
 -- Skip return : False
 
@@ -169,7 +173,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "TextSpan", 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
 
@@ -198,7 +202,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "TextSpan", 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
 
@@ -227,7 +231,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "TextSpan", 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
 
@@ -255,7 +259,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "TextSpan", 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
 
@@ -283,7 +287,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "TextSpan", 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/Poppler/Structs/TextSpan.hs-boot b/GI/Poppler/Structs/TextSpan.hs-boot
--- a/GI/Poppler/Structs/TextSpan.hs-boot
+++ b/GI/Poppler/Structs/TextSpan.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Structs.TextSpan where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Unions.hs b/GI/Poppler/Unions.hs
--- a/GI/Poppler/Unions.hs
+++ b/GI/Poppler/Unions.hs
@@ -14,9 +14,9 @@
 
 import GI.Poppler.Unions.Action
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.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/Poppler/Unions/Action.hs b/GI/Poppler/Unions/Action.hs
--- a/GI/Poppler/Unions/Action.hs
+++ b/GI/Poppler/Unions/Action.hs
@@ -30,56 +30,88 @@
 
  -- * Properties
 -- ** Any
+    actionAny                               ,
+    actionClearAny                          ,
     actionReadAny                           ,
+    actionWriteAny                          ,
 
 
 -- ** GotoDest
+    actionClearGotoDest                     ,
+    actionGotoDest                          ,
     actionReadGotoDest                      ,
+    actionWriteGotoDest                     ,
 
 
 -- ** GotoRemote
+    actionClearGotoRemote                   ,
+    actionGotoRemote                        ,
     actionReadGotoRemote                    ,
+    actionWriteGotoRemote                   ,
 
 
 -- ** Javascript
+    actionClearJavascript                   ,
+    actionJavascript                        ,
     actionReadJavascript                    ,
+    actionWriteJavascript                   ,
 
 
 -- ** Launch
+    actionClearLaunch                       ,
+    actionLaunch                            ,
     actionReadLaunch                        ,
+    actionWriteLaunch                       ,
 
 
 -- ** Movie
+    actionClearMovie                        ,
+    actionMovie                             ,
     actionReadMovie                         ,
+    actionWriteMovie                        ,
 
 
 -- ** Named
+    actionClearNamed                        ,
+    actionNamed                             ,
     actionReadNamed                         ,
+    actionWriteNamed                        ,
 
 
 -- ** OcgState
+    actionClearOcgState                     ,
+    actionOcgState                          ,
     actionReadOcgState                      ,
+    actionWriteOcgState                     ,
 
 
 -- ** Rendition
+    actionClearRendition                    ,
     actionReadRendition                     ,
+    actionRendition                         ,
+    actionWriteRendition                    ,
 
 
 -- ** Type
     actionReadType                          ,
+    actionType                              ,
+    actionWriteType                         ,
 
 
 -- ** Uri
+    actionClearUri                          ,
     actionReadUri                           ,
+    actionUri                               ,
+    actionWriteUri                          ,
 
 
 
 
     ) where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
@@ -98,80 +130,372 @@
 newZeroAction :: MonadIO m => m Action
 newZeroAction = liftIO $ callocBoxedBytes 32 >>= wrapBoxed Action
 
+instance tag ~ 'AttrSet => Constructible Action tag where
+    new _ attrs = do
+        o <- newZeroAction
+        GI.Attributes.set o attrs
+        return o
+
+
 noAction :: Maybe Action
 noAction = Nothing
 
-actionReadType :: Action -> IO ActionType
-actionReadType s = withManagedPtr s $ \ptr -> do
+actionReadType :: MonadIO m => Action -> m ActionType
+actionReadType s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
 
-actionReadAny :: Action -> IO ActionAny
-actionReadAny s = withManagedPtr s $ \ptr -> do
+actionWriteType :: MonadIO m => Action -> ActionType -> m ()
+actionWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
+    let val' = (fromIntegral . fromEnum) val
+    poke (ptr `plusPtr` 0) (val' :: CUInt)
+
+data ActionTypeFieldInfo
+instance AttrInfo ActionTypeFieldInfo where
+    type AttrAllowedOps ActionTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
+    type AttrSetTypeConstraint ActionTypeFieldInfo = (~) ActionType
+    type AttrBaseTypeConstraint ActionTypeFieldInfo = (~) Action
+    type AttrGetType ActionTypeFieldInfo = ActionType
+    type AttrLabel ActionTypeFieldInfo = "type"
+    attrGet _ = actionReadType
+    attrSet _ = actionWriteType
+    attrConstruct = undefined
+    attrClear _ = undefined
+
+actionType :: AttrLabelProxy "type"
+actionType = AttrLabelProxy
+
+
+actionReadAny :: MonadIO m => Action -> m (Maybe ActionAny)
+actionReadAny s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ActionAny)
-    val' <- (newPtr 16 ActionAny) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 16 ActionAny) val'
+        return val''
+    return result
 
-actionReadGotoDest :: Action -> IO ActionGotoDest
-actionReadGotoDest s = withManagedPtr s $ \ptr -> do
+actionWriteAny :: MonadIO m => Action -> Ptr ActionAny -> m ()
+actionWriteAny s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ActionAny)
+
+actionClearAny :: MonadIO m => Action -> m ()
+actionClearAny s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ActionAny)
+
+data ActionAnyFieldInfo
+instance AttrInfo ActionAnyFieldInfo where
+    type AttrAllowedOps ActionAnyFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionAnyFieldInfo = (~) (Ptr ActionAny)
+    type AttrBaseTypeConstraint ActionAnyFieldInfo = (~) Action
+    type AttrGetType ActionAnyFieldInfo = Maybe ActionAny
+    type AttrLabel ActionAnyFieldInfo = "any"
+    attrGet _ = actionReadAny
+    attrSet _ = actionWriteAny
+    attrConstruct = undefined
+    attrClear _ = actionClearAny
+
+actionAny :: AttrLabelProxy "any"
+actionAny = AttrLabelProxy
+
+
+actionReadGotoDest :: MonadIO m => Action -> m (Maybe ActionGotoDest)
+actionReadGotoDest s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ActionGotoDest)
-    val' <- (newPtr 24 ActionGotoDest) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 24 ActionGotoDest) val'
+        return val''
+    return result
 
-actionReadGotoRemote :: Action -> IO ActionGotoRemote
-actionReadGotoRemote s = withManagedPtr s $ \ptr -> do
+actionWriteGotoDest :: MonadIO m => Action -> Ptr ActionGotoDest -> m ()
+actionWriteGotoDest s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ActionGotoDest)
+
+actionClearGotoDest :: MonadIO m => Action -> m ()
+actionClearGotoDest s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ActionGotoDest)
+
+data ActionGotoDestFieldInfo
+instance AttrInfo ActionGotoDestFieldInfo where
+    type AttrAllowedOps ActionGotoDestFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionGotoDestFieldInfo = (~) (Ptr ActionGotoDest)
+    type AttrBaseTypeConstraint ActionGotoDestFieldInfo = (~) Action
+    type AttrGetType ActionGotoDestFieldInfo = Maybe ActionGotoDest
+    type AttrLabel ActionGotoDestFieldInfo = "goto_dest"
+    attrGet _ = actionReadGotoDest
+    attrSet _ = actionWriteGotoDest
+    attrConstruct = undefined
+    attrClear _ = actionClearGotoDest
+
+actionGotoDest :: AttrLabelProxy "gotoDest"
+actionGotoDest = AttrLabelProxy
+
+
+actionReadGotoRemote :: MonadIO m => Action -> m (Maybe ActionGotoRemote)
+actionReadGotoRemote s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ActionGotoRemote)
-    val' <- (newPtr 32 ActionGotoRemote) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 32 ActionGotoRemote) val'
+        return val''
+    return result
 
-actionReadLaunch :: Action -> IO ActionLaunch
-actionReadLaunch s = withManagedPtr s $ \ptr -> do
+actionWriteGotoRemote :: MonadIO m => Action -> Ptr ActionGotoRemote -> m ()
+actionWriteGotoRemote s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ActionGotoRemote)
+
+actionClearGotoRemote :: MonadIO m => Action -> m ()
+actionClearGotoRemote s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ActionGotoRemote)
+
+data ActionGotoRemoteFieldInfo
+instance AttrInfo ActionGotoRemoteFieldInfo where
+    type AttrAllowedOps ActionGotoRemoteFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionGotoRemoteFieldInfo = (~) (Ptr ActionGotoRemote)
+    type AttrBaseTypeConstraint ActionGotoRemoteFieldInfo = (~) Action
+    type AttrGetType ActionGotoRemoteFieldInfo = Maybe ActionGotoRemote
+    type AttrLabel ActionGotoRemoteFieldInfo = "goto_remote"
+    attrGet _ = actionReadGotoRemote
+    attrSet _ = actionWriteGotoRemote
+    attrConstruct = undefined
+    attrClear _ = actionClearGotoRemote
+
+actionGotoRemote :: AttrLabelProxy "gotoRemote"
+actionGotoRemote = AttrLabelProxy
+
+
+actionReadLaunch :: MonadIO m => Action -> m (Maybe ActionLaunch)
+actionReadLaunch s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ActionLaunch)
-    val' <- (newPtr 32 ActionLaunch) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 32 ActionLaunch) val'
+        return val''
+    return result
 
-actionReadUri :: Action -> IO ActionUri
-actionReadUri s = withManagedPtr s $ \ptr -> do
+actionWriteLaunch :: MonadIO m => Action -> Ptr ActionLaunch -> m ()
+actionWriteLaunch s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ActionLaunch)
+
+actionClearLaunch :: MonadIO m => Action -> m ()
+actionClearLaunch s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ActionLaunch)
+
+data ActionLaunchFieldInfo
+instance AttrInfo ActionLaunchFieldInfo where
+    type AttrAllowedOps ActionLaunchFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionLaunchFieldInfo = (~) (Ptr ActionLaunch)
+    type AttrBaseTypeConstraint ActionLaunchFieldInfo = (~) Action
+    type AttrGetType ActionLaunchFieldInfo = Maybe ActionLaunch
+    type AttrLabel ActionLaunchFieldInfo = "launch"
+    attrGet _ = actionReadLaunch
+    attrSet _ = actionWriteLaunch
+    attrConstruct = undefined
+    attrClear _ = actionClearLaunch
+
+actionLaunch :: AttrLabelProxy "launch"
+actionLaunch = AttrLabelProxy
+
+
+actionReadUri :: MonadIO m => Action -> m (Maybe ActionUri)
+actionReadUri s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ActionUri)
-    val' <- (newPtr 24 ActionUri) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 24 ActionUri) val'
+        return val''
+    return result
 
-actionReadNamed :: Action -> IO ActionNamed
-actionReadNamed s = withManagedPtr s $ \ptr -> do
+actionWriteUri :: MonadIO m => Action -> Ptr ActionUri -> m ()
+actionWriteUri s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ActionUri)
+
+actionClearUri :: MonadIO m => Action -> m ()
+actionClearUri s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ActionUri)
+
+data ActionUriFieldInfo
+instance AttrInfo ActionUriFieldInfo where
+    type AttrAllowedOps ActionUriFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionUriFieldInfo = (~) (Ptr ActionUri)
+    type AttrBaseTypeConstraint ActionUriFieldInfo = (~) Action
+    type AttrGetType ActionUriFieldInfo = Maybe ActionUri
+    type AttrLabel ActionUriFieldInfo = "uri"
+    attrGet _ = actionReadUri
+    attrSet _ = actionWriteUri
+    attrConstruct = undefined
+    attrClear _ = actionClearUri
+
+actionUri :: AttrLabelProxy "uri"
+actionUri = AttrLabelProxy
+
+
+actionReadNamed :: MonadIO m => Action -> m (Maybe ActionNamed)
+actionReadNamed s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ActionNamed)
-    val' <- (newPtr 24 ActionNamed) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 24 ActionNamed) val'
+        return val''
+    return result
 
-actionReadMovie :: Action -> IO ActionMovie
-actionReadMovie s = withManagedPtr s $ \ptr -> do
+actionWriteNamed :: MonadIO m => Action -> Ptr ActionNamed -> m ()
+actionWriteNamed s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ActionNamed)
+
+actionClearNamed :: MonadIO m => Action -> m ()
+actionClearNamed s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ActionNamed)
+
+data ActionNamedFieldInfo
+instance AttrInfo ActionNamedFieldInfo where
+    type AttrAllowedOps ActionNamedFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionNamedFieldInfo = (~) (Ptr ActionNamed)
+    type AttrBaseTypeConstraint ActionNamedFieldInfo = (~) Action
+    type AttrGetType ActionNamedFieldInfo = Maybe ActionNamed
+    type AttrLabel ActionNamedFieldInfo = "named"
+    attrGet _ = actionReadNamed
+    attrSet _ = actionWriteNamed
+    attrConstruct = undefined
+    attrClear _ = actionClearNamed
+
+actionNamed :: AttrLabelProxy "named"
+actionNamed = AttrLabelProxy
+
+
+actionReadMovie :: MonadIO m => Action -> m (Maybe ActionMovie)
+actionReadMovie s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ActionMovie)
-    val' <- (newPtr 32 ActionMovie) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 32 ActionMovie) val'
+        return val''
+    return result
 
-actionReadRendition :: Action -> IO ActionRendition
-actionReadRendition s = withManagedPtr s $ \ptr -> do
+actionWriteMovie :: MonadIO m => Action -> Ptr ActionMovie -> m ()
+actionWriteMovie s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ActionMovie)
+
+actionClearMovie :: MonadIO m => Action -> m ()
+actionClearMovie s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ActionMovie)
+
+data ActionMovieFieldInfo
+instance AttrInfo ActionMovieFieldInfo where
+    type AttrAllowedOps ActionMovieFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionMovieFieldInfo = (~) (Ptr ActionMovie)
+    type AttrBaseTypeConstraint ActionMovieFieldInfo = (~) Action
+    type AttrGetType ActionMovieFieldInfo = Maybe ActionMovie
+    type AttrLabel ActionMovieFieldInfo = "movie"
+    attrGet _ = actionReadMovie
+    attrSet _ = actionWriteMovie
+    attrConstruct = undefined
+    attrClear _ = actionClearMovie
+
+actionMovie :: AttrLabelProxy "movie"
+actionMovie = AttrLabelProxy
+
+
+actionReadRendition :: MonadIO m => Action -> m (Maybe ActionRendition)
+actionReadRendition s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ActionRendition)
-    val' <- (newPtr 32 ActionRendition) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 32 ActionRendition) val'
+        return val''
+    return result
 
-actionReadOcgState :: Action -> IO ActionOCGState
-actionReadOcgState s = withManagedPtr s $ \ptr -> do
+actionWriteRendition :: MonadIO m => Action -> Ptr ActionRendition -> m ()
+actionWriteRendition s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ActionRendition)
+
+actionClearRendition :: MonadIO m => Action -> m ()
+actionClearRendition s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ActionRendition)
+
+data ActionRenditionFieldInfo
+instance AttrInfo ActionRenditionFieldInfo where
+    type AttrAllowedOps ActionRenditionFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionRenditionFieldInfo = (~) (Ptr ActionRendition)
+    type AttrBaseTypeConstraint ActionRenditionFieldInfo = (~) Action
+    type AttrGetType ActionRenditionFieldInfo = Maybe ActionRendition
+    type AttrLabel ActionRenditionFieldInfo = "rendition"
+    attrGet _ = actionReadRendition
+    attrSet _ = actionWriteRendition
+    attrConstruct = undefined
+    attrClear _ = actionClearRendition
+
+actionRendition :: AttrLabelProxy "rendition"
+actionRendition = AttrLabelProxy
+
+
+actionReadOcgState :: MonadIO m => Action -> m (Maybe ActionOCGState)
+actionReadOcgState s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ActionOCGState)
-    val' <- (newPtr 24 ActionOCGState) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 24 ActionOCGState) val'
+        return val''
+    return result
 
-actionReadJavascript :: Action -> IO ActionJavascript
-actionReadJavascript s = withManagedPtr s $ \ptr -> do
+actionWriteOcgState :: MonadIO m => Action -> Ptr ActionOCGState -> m ()
+actionWriteOcgState s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ActionOCGState)
+
+actionClearOcgState :: MonadIO m => Action -> m ()
+actionClearOcgState s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ActionOCGState)
+
+data ActionOcgStateFieldInfo
+instance AttrInfo ActionOcgStateFieldInfo where
+    type AttrAllowedOps ActionOcgStateFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionOcgStateFieldInfo = (~) (Ptr ActionOCGState)
+    type AttrBaseTypeConstraint ActionOcgStateFieldInfo = (~) Action
+    type AttrGetType ActionOcgStateFieldInfo = Maybe ActionOCGState
+    type AttrLabel ActionOcgStateFieldInfo = "ocg_state"
+    attrGet _ = actionReadOcgState
+    attrSet _ = actionWriteOcgState
+    attrConstruct = undefined
+    attrClear _ = actionClearOcgState
+
+actionOcgState :: AttrLabelProxy "ocgState"
+actionOcgState = AttrLabelProxy
+
+
+actionReadJavascript :: MonadIO m => Action -> m (Maybe ActionJavascript)
+actionReadJavascript s = liftIO $ withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ActionJavascript)
-    val' <- (newPtr 24 ActionJavascript) val
-    return val'
+    result <- convertIfNonNull val $ \val' -> do
+        val'' <- (newPtr 24 ActionJavascript) val'
+        return val''
+    return result
 
+actionWriteJavascript :: MonadIO m => Action -> Ptr ActionJavascript -> m ()
+actionWriteJavascript s val = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (val :: Ptr ActionJavascript)
+
+actionClearJavascript :: MonadIO m => Action -> m ()
+actionClearJavascript s = liftIO $ withManagedPtr s $ \ptr -> do
+    poke (ptr `plusPtr` 0) (nullPtr :: Ptr ActionJavascript)
+
+data ActionJavascriptFieldInfo
+instance AttrInfo ActionJavascriptFieldInfo where
+    type AttrAllowedOps ActionJavascriptFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
+    type AttrSetTypeConstraint ActionJavascriptFieldInfo = (~) (Ptr ActionJavascript)
+    type AttrBaseTypeConstraint ActionJavascriptFieldInfo = (~) Action
+    type AttrGetType ActionJavascriptFieldInfo = Maybe ActionJavascript
+    type AttrLabel ActionJavascriptFieldInfo = "javascript"
+    attrGet _ = actionReadJavascript
+    attrSet _ = actionWriteJavascript
+    attrConstruct = undefined
+    attrClear _ = actionClearJavascript
+
+actionJavascript :: AttrLabelProxy "javascript"
+actionJavascript = AttrLabelProxy
+
+
+
+type instance AttributeList Action = ActionAttributeList
+type ActionAttributeList = ('[ '("type", ActionTypeFieldInfo), '("any", ActionAnyFieldInfo), '("gotoDest", ActionGotoDestFieldInfo), '("gotoRemote", ActionGotoRemoteFieldInfo), '("launch", ActionLaunchFieldInfo), '("uri", ActionUriFieldInfo), '("named", ActionNamedFieldInfo), '("movie", ActionMovieFieldInfo), '("rendition", ActionRenditionFieldInfo), '("ocgState", ActionOcgStateFieldInfo), '("javascript", ActionJavascriptFieldInfo)] :: [(Symbol, *)])
+
 -- method Action::copy
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Action", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- returnType : TInterface "Poppler" "Action"
+-- returnType : Just (TInterface "Poppler" "Action")
 -- throws : False
 -- Skip return : False
 
@@ -200,7 +524,7 @@
 -- method type : OrdinaryMethod
 -- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "Action", direction = 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/Poppler/Unions/Action.hs-boot b/GI/Poppler/Unions/Action.hs-boot
--- a/GI/Poppler/Unions/Action.hs-boot
+++ b/GI/Poppler/Unions/Action.hs-boot
@@ -1,8 +1,8 @@
 module GI.Poppler.Unions.Action where
 
-import Prelude ()
 import Data.GI.Base.ShortPrelude
 
+import qualified Data.GI.Base.Attributes as GI.Attributes
 import qualified Data.Text as T
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Map as Map
diff --git a/gi-poppler.cabal b/gi-poppler.cabal
--- a/gi-poppler.cabal
+++ b/gi-poppler.cabal
@@ -1,6 +1,6 @@
 -- Autogenerated, do not edit.
 name:               gi-poppler
-version:            0.0.34.13
+version:            0.0.34.14
 synopsis:           Poppler bindings
 description:        Bindings for Poppler, 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.Poppler.Types
@@ -79,11 +79,11 @@
                         GI.Poppler.Unions.Action
     pkgconfig-depends:  poppler-glib >= 0.34
     build-depends: base >= 4.7 && <5,
-        haskell-gi-base >= 0.13 && < 1,
-        gi-glib >= 0.2.46.13 && < 0.2.47,
-        gi-gobject >= 0.2.46.13 && < 0.2.47,
-        gi-gio >= 0.2.46.13 && < 0.2.47,
-        gi-cairo >= 0.1.14.13 && < 0.1.15,
+        haskell-gi-base >= 0.14 && < 1,
+        gi-glib >= 0.2.46.14 && < 0.2.47,
+        gi-gobject >= 0.2.46.14 && < 0.2.47,
+        gi-gio >= 0.2.46.14 && < 0.2.47,
+        gi-cairo >= 0.1.14.14 && < 0.1.15,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
