diff --git a/bindings-DSL.cabal b/bindings-DSL.cabal
--- a/bindings-DSL.cabal
+++ b/bindings-DSL.cabal
@@ -17,7 +17,7 @@
   .
   This package contains no Haskell code, only C header files
   designed for hsc2hs.
-version: 1.0.5
+version: 1.0.6
 license: BSD3
 license-file: LICENSE
 maintainer: Maurício C. Antunes <mauricio.antunes@gmail.com>
diff --git a/bindings.cmacros.h b/bindings.cmacros.h
--- a/bindings.cmacros.h
+++ b/bindings.cmacros.h
@@ -9,21 +9,33 @@
 #define __BINDINGS_CMACROS_H__
 
 #define BC_GLOBALARRAY(name,type) \
-const type* array_##name () \
+const type* array_##name (void) \
 { \
   return name; \
 } \
 
 #define BC_INLINE_(name,ret) \
-ret inline_##name () \
+ret inline_##name (void) \
 { \
   return name; \
 } \
 
 #define BC_INLINE_VOID(name) \
-void inline_##name () \
+void inline_##name (void) \
 { \
   name; \
+} \
+
+#define BC_INLINE0(name,ret) \
+ret inline_##name (void) \
+{ \
+  return name (); \
+} \
+
+#define BC_INLINE0VOID(name) \
+void inline_##name (void) \
+{ \
+  name (); \
 } \
 
 #define BC_INLINE1(name,t1,ret) \
diff --git a/bindings.dsl.h b/bindings.dsl.h
--- a/bindings.dsl.h
+++ b/bindings.dsl.h
@@ -67,6 +67,8 @@
 
 #define bc_wrapper(name) {printf("mk'");bc_word(name);}; \
 
+#define bc_dynamic(name) {printf("mK'");bc_word(name);}; \
+
 #define bc_fieldname(type,field) {printf("c'");bc_glue(type,field);}; \
 
 #define bc_unionupdate(type,field) {printf("u'");bc_glue(type,field);}; \
@@ -155,6 +157,10 @@
     bc_wrapper(# name);printf("\n"); \
     printf("  :: (");bc_typemarkup(# type); \
     printf(") -> IO ");bc_conid(# name);printf("\n"); \
+    printf("foreign import ccall \"dynamic\" "); \
+    bc_dynamic(# name);printf("\n"); \
+    printf("  :: ");bc_conid(# name); \
+    printf(" -> (");bc_typemarkup(# type);printf(")\n"); \
 
 static struct {
 	int n, is_array[500], is_union[500], is_fam[500];
