To generate a scm from ffi, using cairo.ffi as example:
$ guild compile-ffi ffi/cairo.ffi
wrote `ffi/cairo.scm'



MISSING:
1) Guile does not have some types.  Need the following:
   long long, unsigned long long, intptr_t, uintptr_t, long double (glib)
2) Guile does not handle varargs ffi.  I have thoughts on this.
3) bytestructures does not support function declarations.
4) arrays as function args done yet?
5) patterns for in/out semantics; see http://www.swig.org/article_cpp.html

BROKEN:
1) struct { char *name; }  =>  (bs:struct `((name (bs:pointer int))))
                           vs  (bs:struct `((name (bs:pointer uint8))))
2) use of @193 instead of arg-0 for args			  

TODO:
2) move enum comments to ffi.scm comments (currently removed)
3) recheck (pointer-to x) <=> (object-at y)
5) allow suck-in of #defines (e.g., M_PI, HUGE_VAL from math.h)
   but may not work cause '#define HUGE_VAL __builtin_huge_val()'

NOTES:

To compile a cairo.ffi file execute the following shell command:
  $ guild compile-ffi cairo.ffi

cairo.ffi		working
gdbm.ffi		working?
libgit2.ffi		working 
librsvg.ffi		working
sqlite3.ffi		working
glib.ffi		long double
gobject.ffi		working
gio.ffi			working
gtk2+.ffi		working

IN WORK:

