diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,3 @@
 import Distribution.Simple
 main = defaultMain
+
diff --git a/bindings-DSL.cabal b/bindings-DSL.cabal
--- a/bindings-DSL.cabal
+++ b/bindings-DSL.cabal
@@ -11,13 +11,13 @@
   derived from C names, structures are mapped to Haskell instances
   of Storable, and there are also macros you can use with C code
   to help write bindings to inline functions or macro functions.
-  Documentation is available in package homepage:
+  Documentation is available at package homepage:
   .
   <http://bitbucket.org/mauricio/bindings-dsl>
   .
   This package contains no Haskell code, only C header files
   designed for hsc2hs.
-version: 1.0.7
+version: 1.0.8
 license: BSD3
 license-file: LICENSE
 maintainer: Maurício C. Antunes <mauricio.antunes@gmail.com>
@@ -26,6 +26,7 @@
 build-type: Simple
 bug-reports: http://bitbucket.org/mauricio/bindings-dsl/issues
 category: FFI
-install-includes: bindings.dsl.h , bindings.cmacros.h
-build-depends: base >= 0 && < 1000
-exposed-modules: Bindings
+library
+  install-includes: bindings.dsl.h , bindings.cmacros.h
+  build-depends: base >= 0 && < 1000
+  exposed-modules: Bindings
diff --git a/bindings.cmacros.h b/bindings.cmacros.h
--- a/bindings.cmacros.h
+++ b/bindings.cmacros.h
@@ -278,5 +278,16 @@
   name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20); \
 } \
 
+#define BC_GOBJECT_NOTCLASSED(prefix,object,CamelCase) \
+    BC_INLINE_(prefix##_TYPE_##object,GType) \
+    BC_INLINE1(prefix##_##object,void*,CamelCase*) \
+    BC_INLINE1(prefix##_IS_##object,void*,gboolean) \
+
+#define BC_GOBJECT(prefix,object,CamelCase) \
+    BC_GOBJECT_NOTCLASSED(prefix,object,CamelCase) \
+    BC_INLINE1(prefix##_##object##_CLASS,void*,CamelCase##Class*) \
+    BC_INLINE1(prefix##_IS_##object##_CLASS,void*,gboolean) \
+    BC_INLINE1(prefix##_##object##_GET_CLASS,void*,CamelCase##Class*) \
+
 #endif /* __BINDINGS_CMACROS_H__ */
 
diff --git a/bindings.dsl.h b/bindings.dsl.h
--- a/bindings.dsl.h
+++ b/bindings.dsl.h
@@ -293,5 +293,18 @@
      printf("    return ()\n"); \
     } \
 
+#define hsc_gobject_notclassed(prefix,object,CamelCase) \
+    hsc_opaque_t(CamelCase) \
+    hsc_cinline(prefix##_TYPE_##object,<GType>) \
+    hsc_cinline(prefix##_##object,Ptr a -> Ptr <CamelCase>) \
+    hsc_cinline(prefix##_IS_##object,Ptr a -> <gboolean>) \
+
+#define hsc_gobject(prefix,object,CamelCase) \
+    hsc_opaque_t(CamelCase##Class) \
+    hsc_gobject_notclassed(prefix,object,CamelCase) \
+    hsc_cinline(prefix##_##object##_CLASS,Ptr a -> Ptr <CamelCase##Class>) \
+    hsc_cinline(prefix##_IS_##object##_CLASS,Ptr a -> <gboolean>) \
+    hsc_cinline(prefix##_##object##_GET_CLASS,Ptr a -> Ptr <CamelCase##Class>) \
+
 #endif /* __BINDINGS_DSL_H__ */
 
