r *c, double &amp;d);
</pre>
</blockquote>

Here's how a wrapper function would be generated using the type generation functions above:

<blockquote>
<pre>
wrapper_foo() {
   lstr("int","result")
   lstr("int","arg0")
   lstr("double [20][30]", "arg1")
   lstr("const char *", "arg2")
   lstr("double &amp;", "arg3")
   ...
   get arguments
   ...
   result = (lcaststr("int"))  foo(rcaststr("int","arg0"),
                               rcaststr("double [20][30]","arg1"),
                               rcastst