diff --git a/bindings-gobject.cabal b/bindings-gobject.cabal
--- a/bindings-gobject.cabal
+++ b/bindings-gobject.cabal
@@ -3,7 +3,7 @@
 homepage: http://bitbucket.org/mauricio/bindings-gobject
 synopsis:
   Low level bindings to GObject.
-version: 0.1
+version: 0.1.1
 license: BSD3
 license-file: LICENSE
 maintainer: Maurício C. Antunes <mauricio.antunes@gmail.com>
@@ -17,8 +17,8 @@
     ForeignFunctionInterface
   build-depends:
     base >= 3 && < 5,
-    bindings-DSL >= 1.0 && < 1.1,
-    bindings-glib >= 0.1 && < 0.2
+    bindings-DSL >= 1.0.6 && < 1.1,
+    bindings-glib >= 0.1.2 && < 0.2
   include-dirs: src
   install-includes:
     bindings-gobject.dsl.h
@@ -27,6 +27,7 @@
     Bindings.GObject
     Bindings.GObject.BaseObjectType
     Bindings.GObject.BoxedTypes
+    Bindings.GObject.Closures
     Bindings.GObject.EnumerationAndFlagTypes
     Bindings.GObject.GenericValues
     Bindings.GObject.GParamSpec
diff --git a/src/Bindings/GObject/BaseObjectType.hsc b/src/Bindings/GObject/BaseObjectType.hsc
--- a/src/Bindings/GObject/BaseObjectType.hsc
+++ b/src/Bindings/GObject/BaseObjectType.hsc
@@ -8,6 +8,7 @@
 import Bindings.GLib
 import Bindings.GObject.TypeInformation
 import Bindings.GObject.GParamSpec
+import Bindings.GObject.Closures
 
 #starttype GObject
 #stoptype
@@ -36,7 +37,7 @@
 #cinline G_TYPE_IS_OBJECT , <GType> -> IO <gboolean>
 #cinline G_OBJECT , Ptr <GTypeInstance> -> IO (Ptr <GObject>)
 #cinline G_IS_OBJECT , Ptr <GTypeInstance> -> IO <gboolean>
-#cinline G_OBJECT_CLASS , Ptr <GTypeClass> -> IO <GObjectClass>
+#cinline G_OBJECT_CLASS , Ptr <GTypeClass> -> IO (Ptr <GObjectClass>)
 #cinline G_IS_OBJECT_CLASS , Ptr <GTypeClass> -> IO <gboolean>
 #cinline G_OBJECT_GET_CLASS , Ptr <GTypeInstance> -> IO (Ptr <GObjectClass>)
 #cinline G_OBJECT_TYPE , Ptr <GTypeInstance> -> IO <GType>
diff --git a/src/Bindings/GObject/Closures.hsc b/src/Bindings/GObject/Closures.hsc
new file mode 100644
--- /dev/null
+++ b/src/Bindings/GObject/Closures.hsc
@@ -0,0 +1,67 @@
+#include <bindings.dsl.h>
+#include <glib-object.h>
+
+-- | <http://library.gnome.org/devel/gobject/stable/gobject-Closures.html>
+
+module Bindings.GObject.Closures where
+#strict_import
+import Bindings.GLib
+import Bindings.GObject.TypeInformation
+
+#cinline G_CLOSURE_NEEDS_MARSHAL , Ptr <GClosure> -> CInt
+
+#cinline G_CLOSURE_N_NOTIFIERS , Ptr <GClosure> -> <guint>
+
+#cinline G_CCLOSURE_SWAP_DATA , Ptr <GClosure> -> <guint>
+
+#cinline G_CALLBACK , FunPtr () -> <GCallback>
+
+#starttype GClosure
+#stoptype
+
+#starttype GClosureNotifyData
+#field data , <gpointer>
+#field notify , <GClosureNotify>
+#stoptype
+
+#callback GCallback , IO ()
+
+#callback GClosureNotify , <gpointer> -> Ptr <GClosure> -> IO ()
+
+#callback GClosureMarshal , Ptr <GClosure> -> Ptr <GValue> -> \
+ <guint> -> Ptr <GValue> -> <gpointer> -> <gpointer> -> IO ()
+
+
+#starttype GCClosure
+#field closure , <GClosure>
+#field callback , <gpointer>
+#stoptype
+
+#ccall g_cclosure_new , <GCallback> -> <gpointer> -> \
+  <GClosureNotify> -> IO (Ptr <GClosure>)
+#ccall g_cclosure_new_swap , <GCallback> -> <gpointer> -> \
+  <GClosureNotify> -> IO (Ptr <GClosure>)
+#ccall g_signal_type_cclosure_new , <GType> -> <guint> -> \
+  IO (Ptr <GClosure>)
+#ccall g_closure_ref , Ptr <GClosure> -> IO (Ptr <GClosure>)
+#ccall g_closure_sink , Ptr <GClosure> -> IO ()
+#ccall g_closure_unref , Ptr <GClosure> -> IO ()
+#ccall g_closure_new_simple , <guint> -> <gpointer> -> IO (Ptr <GClosure>)
+#ccall g_closure_add_finalize_notifier , Ptr <GClosure> -> \
+  <gpointer> -> <GClosureNotify> -> IO ()
+#ccall g_closure_remove_finalize_notifier , Ptr <GClosure> -> \
+  <gpointer> -> <GClosureNotify> -> IO ()
+#ccall g_closure_add_invalidate_notifier , Ptr <GClosure> -> \
+  <gpointer> -> <GClosureNotify> -> IO ()
+#ccall g_closure_remove_invalidate_notifier , Ptr <GClosure> -> \
+  <gpointer> -> <GClosureNotify> -> IO ()
+#ccall g_closure_add_marshal_guards , Ptr <GClosure> -> <gpointer> -> \
+  <GClosureNotify> -> <gpointer> -> <GClosureNotify> -> IO ()
+#ccall g_closure_set_marshal , Ptr <GClosure> -> <GClosureMarshal> -> IO ()
+#ccall g_closure_set_meta_marshal , Ptr <GClosure> -> <gpointer> -> \
+  <GClosureMarshal> -> IO ()
+#ccall g_closure_invalidate , Ptr <GClosure> -> IO ()
+#ccall g_closure_invoke , Ptr <GClosure> -> Ptr <GValue> -> \
+  <guint> -> Ptr <GValue> -> <gpointer> -> IO ()
+
+
diff --git a/src/Bindings/GObject/GTypeModule.hsc b/src/Bindings/GObject/GTypeModule.hsc
--- a/src/Bindings/GObject/GTypeModule.hsc
+++ b/src/Bindings/GObject/GTypeModule.hsc
@@ -7,6 +7,8 @@
 #strict_import
 import Bindings.GLib.Fundamentals
 import Bindings.GObject.BaseObjectType
+import Bindings.GObject.EnumerationAndFlagTypes
+import Bindings.GObject.TypeInformation
 
 #starttype GTypeModule
 #field name , Ptr <gchar>
@@ -14,8 +16,8 @@
 
 #starttype GTypeModuleClass
 #field parent_class , <GObjectClass>
-#field load , Ptr <GTypeModule> -> IO <gboolean>
-#field unload , Ptr <GTypeModule> -> IO ()
+#field load , FunPtr (Ptr <GTypeModule> -> IO <gboolean>)
+#field unload , FunPtr (Ptr <GTypeModule> -> IO ())
 #stoptype
 
 #ccall g_type_module_use , Ptr <GTypeModule> -> IO <gboolean>
diff --git a/src/Bindings/GObject/TypeInformation.hsc b/src/Bindings/GObject/TypeInformation.hsc
--- a/src/Bindings/GObject/TypeInformation.hsc
+++ b/src/Bindings/GObject/TypeInformation.hsc
@@ -10,7 +10,9 @@
 
 #integral_t GType
 #opaque_t GTypePlugin
-#opaque_t GValue
+
+#starttype GValue
+#stoptype
 
 #cinline G_TYPE_FUNDAMENTAL , <GType> -> <GType>
 
diff --git a/src/inlines.c b/src/inlines.c
--- a/src/inlines.c
+++ b/src/inlines.c
@@ -22,5 +22,51 @@
 BC_INLINE1(G_IS_VALUE,GValue*,gboolean)
 BC_INLINE1(G_CALLBACK,void*,GCallback)
 
-BC_INLINE1(G_OBJECT,void*,GObject*)
+BC_INLINE1(G_CLOSURE_NEEDS_MARSHAL,GClosure*,int)
+BC_INLINE1(G_CLOSURE_N_NOTIFIERS,GClosure*,guint)
+BC_INLINE1(G_CCLOSURE_SWAP_DATA,GClosure*,guint)
+
+BC_INLINE1(G_TYPE_IS_OBJECT,GType,gboolean)
+BC_INLINE1(G_OBJECT,GTypeInstance*,GObject*)
+BC_INLINE1(G_IS_OBJECT,GTypeInstance*,gboolean)
+BC_INLINE1(G_OBJECT_CLASS,GTypeClass*,GObjectClass*)
+BC_INLINE1(G_IS_OBJECT_CLASS,GTypeClass*,gboolean)
+BC_INLINE1(G_OBJECT_GET_CLASS,GTypeInstance*,GObjectClass*)
+BC_INLINE1(G_OBJECT_TYPE,GTypeInstance*,GType)
+BC_INLINE1(G_OBJECT_TYPE_NAME,GTypeInstance*,const gchar*)
+BC_INLINE1(G_OBJECT_CLASS_TYPE,GTypeClass*,GType)
+BC_INLINE1(G_OBJECT_CLASS_NAME,GTypeClass*,const gchar*)
+BC_INLINE_(G_TYPE_INITIALLY_UNOWNED,GType)
+BC_INLINE3VOID(G_OBJECT_WARN_INVALID_PROPERTY_ID,GObject*,guint,GParamSpec*)
+
+BC_INLINE_(G_TYPE_HASH_TABLE,GType)
+BC_INLINE_(G_TYPE_DATE,GType)
+BC_INLINE_(G_TYPE_GSTRING,GType)
+BC_INLINE_(G_TYPE_STRV,GType)
+BC_INLINE_(G_TYPE_REGEX,GType)
+BC_INLINE_(G_TYPE_ARRAY,GType)
+BC_INLINE_(G_TYPE_BYTE_ARRAY,GType)
+BC_INLINE_(G_TYPE_PTR_ARRAY,GType)
+
+BC_INLINE1(G_ENUM_CLASS_TYPE,GEnumClass*,GType)
+BC_INLINE1(G_ENUM_CLASS_TYPE_NAME,GEnumClass*,const gchar*)
+BC_INLINE1(G_TYPE_IS_ENUM,GType,gboolean)
+BC_INLINE1(G_ENUM_CLASS,GTypeClass*,GEnumClass*)
+BC_INLINE1(G_IS_ENUM_CLASS,GTypeClass*,gboolean)
+BC_INLINE1(G_TYPE_IS_FLAGS,GType,gboolean)
+BC_INLINE1(G_FLAGS_CLASS,GTypeClass*,GFlagsClass*)
+BC_INLINE1(G_IS_FLAGS_CLASS,GTypeClass*,gboolean)
+BC_INLINE1(G_FLAGS_CLASS_TYPE,GFlagsClass*,GType)
+BC_INLINE1(G_FLAGS_CLASS_TYPE_NAME,GFlagsClass*,const gchar*)
+
+BC_INLINE1(G_TYPE_IS_PARAM,GType,gboolean)
+BC_INLINE1(G_PARAM_SPEC,GTypeInstance*,GParamSpec*)
+BC_INLINE1(G_IS_PARAM_SPEC,GTypeInstance*,gboolean)
+BC_INLINE1(G_PARAM_SPEC_CLASS,GTypeClass*,GParamSpecClass*)
+BC_INLINE1(G_IS_PARAM_SPEC_CLASS,GTypeClass*,gboolean)
+BC_INLINE1(G_PARAM_SPEC_GET_CLASS,GParamSpec*,GParamSpecClass*)
+BC_INLINE1(G_PARAM_SPEC_TYPE,GParamSpec*,GType)
+BC_INLINE1(G_PARAM_SPEC_TYPE_NAME,GParamSpec*,const gchar*)
+BC_INLINE1(G_PARAM_SPEC_VALUE_TYPE,GParamSpec*,GType)
+
 
